[3.3.0] - 2025-03-15
Added
- Add per-agent planners via
Server.create_agent(planner=...), allowing each agent to use a customPlannerimplementation - Accept
Tagas a target independ_on(),exclude(), andprioritize_over()on bothGuidelineandTag, enabling relationships that target all guidelines sharing a custom tag - Add
Tag.depend_on(),Tag.exclude(), andTag.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
tagsparameter tocreate_guideline,create_observation, andcreate_journeyon bothAgentandJourney, 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
priorityproperty 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()andCustomerMetadatato the SDK, allowing tools to update customer name and metadata - Add
Session.update(),SessionMetadata, andSessionLabelsto the SDK, allowing tools to update session properties, metadata, and labels - Add
customer,agent,mode, andtitleproperties to SDKSessionclass - Add
Server.get_tag()to the SDK, supporting lookup by eitheridorname - Add name-based filtering to
TagStore.list_tags()and theGET /tagsAPI endpoint via an optionalnamequery 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()onTagandGuidelineto accept multiple tools (*tools) and returnSequence[Relationship] - Change
tagsfield type fromSequence[TagId]toSequence[Tag]onGuideline,Journey,Capability,Term,Variable,Customer, andAgentin the SDK - Change
Tag.preamble()to return a fullTagobject instead of aTagId - 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_eventendpoint 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-testentry point and testing framework documentation from README