v3.3.0

mickael-kerjean/filestashv3.3.0Mar 15, 2026by kichanyurd

AI Summary

This release introduces per-agent planners, an advanced tagging system for guidelines, and new SDK methods for session and customer management. It also upgrades the MCP service and fixes various stability and security issues.

Key Highlights

  • Added per-agent planners via `Server.create_agent` for custom implementation
  • Enhanced tagging system with dependency and reevaluation relationships
  • SDK updates including `Session.update()`, `Customer.update()`, and `Agent.utter()`
  • Renamed 'tool-provided guidelines' to 'transient guidelines'
  • Upgraded MCP service and resolved security vulnerabilities

Breaking Changes

  • OpenAPI tool services are deprecated; please migrate to SDK tool services
  • Changed `Tag.preamble()` to return a full `Tag` object instead of `TagId`
  • Changed `reevaluate_after()` on `Tag` and `Guideline` to accept multiple tools
  • Changed `tags` field type from `Sequence[TagId]` to `Sequence[Tag]` on multiple entities

New Features

  • Per-agent planner implementation
  • Tag-based dependency and priority methods
  • Transient guidelines for dynamic behavioral injection
  • Agent.utter() method for programmatic message generation
  • Session and Customer update methods in SDK
  • Name-based filtering for tags
  • Priority property for guidelines and journeys

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