v3.3.0
tokio-rs/axumv3.3.0Mar 15, 2026by kichanyurd
AI Summary
A major update adding per-agent planners, comprehensive tag-based relationships, transient guidelines, and SDK enhancements for session and customer management, while deprecating OpenAPI tool services.
Key Highlights
- Added per-agent planners via `Server.create_agent(planner=...)`
- Added tag-based dependencies, exclusions, and prioritization methods
- Added transient guidelines allowing tools to dynamically inject behavioral guidelines
- Deprecated OpenAPI tool services in favor of SDK tool services
Breaking Changes
- Change `reevaluate_after()` on `Tag` and `Guideline` to accept multiple tools (`*tools`) and return `Sequence[Relationship]`
- Change `tags` field type from `Sequence[TagId]` to `Sequence[Tag]` in SDK
- OpenAPI tool services are now deprecated; please migrate to SDK tool services
New Features
- Per-agent planners
- Tag-based relationships (depend_on, exclude, prioritize_over)
- Transient guidelines
- Session and Customer update methods (update, metadata, labels)
- Name-based filtering for tags
Full Release Notes
## [3.3.0] - 2026-03-15 ### Added - Add per-agent planners via `Server.create_agent(planner=...)`, allowing each agent to use a custom `Planner` implementation - Accept `Tag` as a target in `depend_on()`, `exclude()`, and `prioritize_over()` on both `Guideline` and `Tag`, enabling relationships that target all guidelines sharing a custom tag - Add `Tag.depend_on()`, `Tag.exclude()`, and `Tag.prioritize_over()` methods to the SDK, enabling tag-based dependency and priority relationships with guidelines and journeys - Support custom TAG as source for DEPENDENCY relationships in the relational resolver - Add `tags` parameter to `create_guideline`, `create_observation`, and `create_journey` on both `Agent` and `Journey`, allowing custom tags to be attached to entities at creation time - Add `Tag.reevaluate_after()` method to the SDK, enabling tag-based reevaluation relationships with tools - Add tag-based reevaluation support in the engine: when a tool fires, all guidelines carrying a tag that has a reevaluation relationship with that tool are now re-evaluated - Add staged_events to GuidelineMatchingContext in SDK - Add `priority` property to guidelines and journeys for priority-based filtering in the relational resolver - Add transient guidelines (renamed from tool-provided guidelines), allowing tools to dynamically inject behavioral guidelines into the agent's context - Add `Agent.utter()` to the SDK, enabling programmatic agent message generation with transient guidelines - Add `Customer.update()` and `CustomerMetadata` to the SDK, allowing tools to update customer name and metadata - Add `Session.update()`, `SessionMetadata`, and `SessionLabels` to the SDK, allowing tools to update session properties, metadata, and labels - Add `customer`, `agent`, `mode`, and `title` properties to SDK `Session` class - Add `Server.get_tag()` to the SDK, supporting lookup by either `id` or `name` - Add name-based filtering to `TagStore.list_tags()` and the `GET /tags` API endpoint via an optional `name` query parameter - Enforce tag name uniqueness in `TagStore`, raising an error when creating a tag with a duplicate name ### Changed - Made extended thinking indicator optional in perceived performance policy - Change `reevaluate_after()` on `Tag` and `Guideline` to accept multiple tools (`*tools`) and return `Sequence[Relationship]` - Change `tags` field type from `Sequence[TagId]` to `Sequence[Tag]` on `Guideline`, `Journey`, `Capability`, `Term`, `Variable`, `Customer`, and `Agent` in the SDK - Change `Tag.preamble()` to return a full `Tag` object instead of a `TagId` - Upgrade MCP service and bump dependency versions to resolve security vulnerabilities ### Deprecated - OpenAPI tool services are now deprecated; please migrate to SDK tool services ### Fixed - Fix deadlock when sending a new message right after a preamble - Fix transitive filtering in relational resolver for custom tag dependency targets (guidelines depending on a custom tag are now correctly deactivated when a tagged member is deprioritized) - Fix SSE `read_event` endpoint stalling after first streaming chunk until full completion - Fix response analysis logs not always reaching the integrated UI - Fix guideline formatting in canned response and streaming modes when condition is absent - Fix AzureService small text embedding dimension size - Fix onnxruntime compatibility with Python 3.10 and transformers 5.x type changes - Fix agent intention proposer prompt clarification - Fix embedding LRU cache eviction corrupting the length index when entries share the same text length - Fix LiteLLMEmbedder failing to resolve via lagom container when LITELLM_EMBEDDING_MODEL_NAME is set - Fix non-consequential tool calls being rejected when optional parameters are missing ### Removed - Remove stale `parlant-test` entry point and testing framework documentation from README