v3.3.0
OpenBB-finance/OpenBBv3.3.0Mar 15, 2026by kichanyurd
AI Summary
This release introduces per-agent planners, custom tag support for guidelines, and transient guidelines, alongside SDK updates for Customer and Session management. It also deprecates OpenAPI tool services in favor of SDK services.
Key Highlights
- Introduces per-agent planners allowing custom implementation per agent.
- Adds comprehensive custom tag support for guidelines, journeys, and dependencies.
- Enables transient guidelines for dynamic behavioral injection.
- Updates SDK with Customer and Session management capabilities.
- Deprecates OpenAPI tool services requiring migration to SDK tools.
Breaking Changes
- Changed `tags` field type from `Sequence[TagId]` to `Sequence[Tag]`.
- Changed `reevaluate_after()` signature to accept multiple tools.
- Changed `Tag.preamble()` return type from `TagId` to `Tag`.
- OpenAPI tool services are now deprecated.
New Features
- Add per-agent planners via `Server.create_agent(planner=...)`
- Accept `Tag` as a target in dependency methods
- Add `Tag.reevaluate_after()` method
- Add `Agent.utter()` for programmatic message generation
- Add `Customer.update()` and `Session.update()` methods
- Add `Server.get_tag()` method
- Enforce tag name uniqueness in `TagStore`
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