Skip to content
Blog

Nami: Building a Modular AI Bot with Rust and ADK

Discover Nami, a modular and extensible AI bot built with Rust, adk-rust, and teloxide, featuring persistent sessions and MCP integration.

Published on 2026-05-05

AI Assistant

In the rapidly evolving world of artificial intelligence, building agents that are not only powerful but also modular and extensible is a key challenge for developers. Enter Nami, a sophisticated AI bot built on the foundations of Rust, designed to demonstrate the potential of modern agentic frameworks.

What is Nami?

Nami is a modular, extensible AI-powered bot built using adk-rust and the teloxide framework. It serves as a prime example of how to leverage Rust’s performance and safety to create sophisticated AI agents with features like persistent sessions, filesystem sandboxing, and dynamic persona management.

Key Features at a Glance

Nami isn’t just a simple chatbot; it’s a multi-functional agent equipped with a rich suite of capabilities:

  • Multi-Platform LLM Support: Whether it’s Gemini, Anthropic, or OpenAI-compatible models (like ThaiLLM), Nami can be powered by your choice of LLM.
  • Modern TUI: For local interaction, Nami offers a rich CLI experience with custom ASCII banners, animated indicators, and structured layouts.
  • Model Context Protocol (MCP) Integration: Seamlessly connect to MCP servers to extend the bot’s capabilities with automatically namespaced tools.
  • Knowledge Management (Wiki KM): A transparent, human-readable KM system using Markdown files, featuring Obsidian-style links and graph generation.
  • Parallel Task Execution: Orchestrate multiple sub-agents simultaneously using a custom parallel_tasks tool.
  • Persistent Sessions: SQLite-backed conversation history, ensuring that context is maintained across interactions.
  • Sandboxed Environment: File operations are restricted to a workspace/ directory, protected by a .namiignore policy.

Architecture: The Engine Behind Nami

The system is designed to support multiple entry points while sharing a common core agent logic. This modularity allows Nami to run as a Telegram bot, an interactive CLI, or even an HTTP service.

Core Components:

  • teloxide: Manages Telegram polling and updates.
  • adk-rust: The backbone framework for AI logic and memory management.
  • SqliteSessionService: Handles long-term persistence of conversation state.
  • Tools & Extensions: A plug-and-play architecture for adding functionality like weather checks, web search (via Serper.dev), and task management.

Extending the Agent’s Soul

One of Nami’s most unique aspects is its “Soul” configuration. By editing AGENT.md and USER.md, you can define the bot’s personality and provide it with context about yourself. The bot even maintains its own MEMORIES.md, which it updates as it learns personal facts about you, creating a truly personalized experience.

Getting Started with Nami

For developers looking to dive in, Nami is easy to set up. With Rust installed, you can clone the repository, configure your environment variables in a .env file, and be up and running in minutes.

Build and Run

cargo build --release
nami cli

The application provides five primary run modes, including init for setup, bot for Telegram, and serve for API access.

Conclusion

Nami represents a significant step forward in building transparent and hackable AI agents. By combining the safety of Rust with the flexibility of adk-rust and modern knowledge management practices, it provides a robust blueprint for anyone looking to build the next generation of digital colleagues.

Whether you’re interested in the Agentic Mesh, Obsidian-style knowledge bases, or high-performance CLI tools, Nami is a project worth exploring.

Explore the full source code and documentation at the Nami Github Repository.