Repository navigation
0.5.0
Pre-releaseHighlights
Typed agent sessions for React and Svelte
Build a product UI on a harness agent without writing protocol code. useAgentSession<MyAgent>() (React) or new AgentSession<MyAgent>() (Svelte) gives you one reactive object holding the session's messages, state, subagent tree, approvals and callbacks. Types are generated from the agent's Python class, so sendMessage("play", { cell: 5 }) and agent.states.board are checked at compile time. Sessions survive reloads, stay live across tabs, and pick up where they left off after a server restart. Published to npm as @temporalio/agent-harness-client, @temporalio/agent-harness-react and @temporalio/agent-harness-svelte. Declare observable state on the agent with agent.state(...), and print an agent's schema with temporal-agent-harness schema.
Auto mode for tool approvals
Approve tool calls automatically based on their arguments, using named rule sets you write (AutoApprovalCriteria) and a swappable evaluator. Jev is built in (agent.jev_evaluator(), in the new jev extra). Auto mode only adds calls to the allow list, so a call it doesn't approve still goes to a person. Policies and rules can change per session or mid-conversation, and the console's new decision audit panel shows each verdict, its confidence, and the outcome.
A simpler way to define agents, with typed init data
An agent is now defined entirely with agent.* decorators: @agent.defn, @agent.init, and optional @agent.setup / @agent.teardown hooks. An agent can take typed pydantic init data, which is validated however it's started: the web API, the console, the TypeScript client, AgentClient, or as a subagent.
One path for every message
Everything a caller sends goes to an @agent.accepts handler, and each handler declares what happens when a message arrives mid-turn (MidTurn.ENQUEUE, REJECT or ACCEPT). Every event in the stream carries a message_id, so each event can be traced to the message that caused it.
Console upgrades
Answer callback tools like ask_user right from the chat, using forms built from their schema. Approval cards are clearer, and the Session Manager is now a resizable drawer that doubles as a quick switcher (press S), with many more replay and Logs improvements.