nanobot v0.1.5

v0.1.5
Added 20
  • Official website at nanobot.wiki with multilingual documentation in English, Chinese, Japanese, Korean, Spanish, and French
  • Long-running tasks now handle CancelledError without orphaning subprocesses
  • Retry classification uses structured error metadata instead of regex-on-error-text
  • Dream two-stage memory system separating live conversation history from consolidated long-term knowledge
  • Git-versioned memory storage for recovery of every memory state
  • Jinja2 templating for controlling agent response and memory summary shaping
Changed 9
  • Containers run as non-root by default
  • API port binds to localhost by default
  • SDK-level auto-retries disabled to prevent request amplification
  • Azure retries no longer double-dip
  • Legacy HISTORY.md files migrate automatically to new memory system
  • Tool class refactored with proper JSON Schema for parameters
Fixed 6
  • Exec tool no longer leaks host environment variables to the LLM
  • Dashscope and ModelArk proper thinking parameter control
  • WhatsApp bridge gained automatic local auth
  • Feishu auto-removes reactions after processing
  • Telegram splits oversized streamed replies
  • WeChat multimodal alignment continued

🐈 nanobot v0.1.5 is here 🎉 — 66 PRs merged, 27 new contributors, and the first release with its own home.

We're excited to announce that nanobot now has an official website at nanobot.wiki, with multilingual documentation in English, Chinese, Japanese, Korean, Spanish, and French. Building it reminded us why we do this: nanobot has always belonged to the open-source community, and a proper home — one that speaks your language — felt overdue. Every doc page, every translation, every example is open and contribution-ready. That's not going to change.

Now, about the release itself. If v0.1.4.post6 was about decomposing the foundation, v0.1.5 is about making the building livable. The agent can now run for hours without losing its mind. Memory got a proper architecture. And running nanobot in production went from "possible" to "comfortable." This is the release where nanobot stops being a prototype and starts being infrastructure.

Highlights
  • Long-running tasks got more reliable — Long-running tasks received a ground-up reliability pass. The runtime now handles CancelledError without orphaning subprocesses, retry classification uses structured error metadata instead of regex-on-error-text (so a 429 quota exhaustion stops immediately while a rate limit waits and retries), SDK-level auto-retries were disabled to prevent request amplification, and Azure retries no longer double-dip. If your agent runs cron jobs, orchestrates tools overnight, or handles bursty traffic — this is the release that makes those sessions stick. (#2733, #2762, #2759, #2761, #2765)

  • Memory got an architecture — meet Dream — The new two-stage memory system separates live conversation history from consolidated long-term knowledge. Dream runs as a background consolidation pass — think of it as the agent sleeping on what it learned — backed by git-versioned storage so every memory state is recoverable. Legacy HISTORY.md files migrate automatically. Jinja2 templating arrived alongside Dream, giving you control over how the agent shapes its responses and memory summaries. This isn't a feature bolted on — it's the memory system nanobot should have had from day one. (#2717, #2779, and 10+ follow-up hardening commits)

  • Running nanobot in production got realexec calls are now sandboxed via bwrap and containers run as non-root by default. The exec tool no longer leaks host environment variables to the LLM. API port binds to localhost by default. Config secrets support ${VAR} interpolation so you never have to hardcode a key again. A new nanobot-api Docker service gives you an isolated OpenAI-compatible endpoint out of the box. WhatsApp bridge gained automatic local auth. These aren't glamorous changes — they're the reason you'll sleep through the night after deploying. (#1940, #2831, #2830, #2841, #2715)

  • Three new providers, and GPT-5 is ready — GPT-5 model family support landed with proper temperature handling. Xiaomi MiMo joined for on-device inference fans. Baidu Qianfan arrived for the Chinese ecosystem. Dashscope and ModelArk got proper thinking parameter control. And reasoning_content (chain-of-thought from DeepSeek-R1, Kimi, MiMo) is now visible and preserved through the full message pipeline. nanobot keeps meeting users wherever their models are. (#2788, #2495, #2811, #2840, #2770)

  • Channels kept getting better — Email now extracts attachments with MIME filtering and filename sanitization. WhatsApp gained voice transcription via Groq/OpenAI Whisper. Feishu auto-removes reactions after processing and supports video downloads. Telegram renders tool hints as collapsible blockquotes, supports DM threads, and splits oversized streamed replies. WeChat multimodal alignment continued. Langfuse integration landed for production observability. And /status now shows web search provider usage alongside cache hit rates. (#2815, #2530, #2812, #2810, #2793, #2520, #2659, #2832, #2703)

  • Developer experience, quietly — Built-in grep and glob tools give the agent native code search. The Tool class was refactored with proper JSON Schema for parameters. The Python SDK facade enables programmatic per-session isolation. The CLI gained --config for multi-instance setups. Web search was unified under WebToolsConfig with toggle controls. And the test suite grew to 1,142 tests, all green. (#2754, #2780, #2653, #2740, #2643)

Community

Welcome to our 27 new contributors who made their first contribution in this release.

v0.1.5 is shaped by a simple conviction: an AI agent framework earns trust not by adding features, but by being the kind of software you'd run unattended on a Friday night. Memory that doesn't forget. Retries that don't amplify. Sandboxes that don't leak. Every contributor who hardened a boundary, caught a race condition, or added a test — you made nanobot more trustworthy today than it was yesterday. That's the only metric that matters.

Full Changelog: https://github.com/HKUDS/nanobot/compare/v0.1.4.post6...v0.1.5

What's Changed
New Contributors

Full Changelog: https://github.com/HKUDS/nanobot/compare/v0.1.4.post6...v0.1.5

View original

Upgraded? How did it go?

Discussion