0.12.1
letta-ai/letta0.12.1Oct 9, 2025by carenthomas
Full Release Notes
## Major Features ### New Agent Architecture: `letta_v1_agent` The new recommended agent architecture with significant improvements over the legacy agent system. What's Different: * No `send_message` tool required * Works with any chat model, including non-tool-calling models * No heartbeat system * Simpler base system prompt - agentic control loop understanding is baked into modern LLMs * Follows standard tool calling patterns (auto mode) for broader compatibility Provider Support: * Compatible with all inference providers (OpenRouter, Azure, Together, Ollama, etc.). * Works with non-tool-calling models. * Supports OpenAI's [Responses API](https://platform.openai.com/docs/api-reference/responses) for drastically improved performance with GPT-5 models. Trade-offs: * No heartbeats: Agents won't independently trigger repeated execution. If you need sleep-time compute or periodic processing, implement this through your own prompting or scheduling. * Tool rules on messaging: Cannot apply tool rules to agent messaging, i.e. you cannot require a particular tool to be followed by an assistant message. * Reasoning visibility: Non-reasoning models (GPT-4.1, GPT-4o-mini) will no longer generate explicit reasoning output. * Reasoning control: Less control over reasoning tokens, which are typically encrypted by providers and cannot be passed between different providers. **Recommendation**: Create all new agents as `letta_v1_agent`. The expanded provider compatibility and simpler architecture make this the best choice for most use cases. Use legacy agents only if you specifically need heartbeats or tool rules on messaging. ### Human-in-the-Loop (HITL) Tools can now require human approval before execution. Set approval requirements via API or in the ADE for greater control over agent actions. š [Documentation](https://docs.letta.com/guides/agents/human-in-the-loop) ### Parallel Tool Calling Agents now execute multiple tool calls simultaneously when supported by the inference provider. Each tool runs in its own sandbox for true parallel execution. See the [Claude](https://docs.claude.com/en/docs/agents-and-tools/tool-use/implement-tool-use#parallel-tool-use) documentation for examples on parallel tool calling. ### Runs API New tracking system providing substantially improved observability and debugging capabilities. Documentation coming soon. ### Enhanced Archival Memory (Letta Cloud only) * **Hybrid search**: Combines full-text and semantic search * **DateTime filtering**: Query memories by time range * **Search API endpoint**: [Documentation](https://docs.letta.com/api-reference/agents/passages/search) ### Improved Pagination Cursor-based pagination now available across many endpoints for handling large result sets. ## New Tools ### Memory Omni-Tool Unified memory interface for more intuitive agent memory management. š [Blog post](https://www.letta.com/blog/introducing-sonnet-4-5-and-the-memory-omni-tool-in-letta) | [YouTube demo](https://youtu.be/0nfNDrRKSuU) ### `fetch_webpage` Tool Utility tool for retrieving LLM-friendly webpage content. ## Agent Configuration ### Templates & Agentfiles * **Template updates**: Templates can now be [updated via agentfiles](https://docs.letta.com/api-reference/templates/updatecurrenttemplatefromagentfile) * **Agentfile v2 schema**: Now supports groups, folders, etc. ## Breaking Changes ### Deprecated APIs * **`get_folder_by_name`**: Use `client.folders.list(name=...)` instead * **`sources` routes**: All routes renamed to `folders` ## What's Changed * fix: summarization_agent unknown attribute bug by @carenthomas in https://github.com/letta-ai/letta/pull/3028 * fix: open router invalid model id bug by @carenthomas in https://github.com/letta-ai/letta/pull/3028 * chore: bump version 0.12.1 by @carenthomas in https://github.com/letta-ai/letta/pull/3029 **Full Changelog**: https://github.com/letta-ai/letta/compare/0.12.0...0.12.1