🌏 中文版
Release Info
| Item | Value |
|---|---|
| Framework | Agno |
| Version | v3.1.11 |
| Previous | v3.1.10 |
| Released | 2026-10-27 |
| Release Notes | v3.1.11 |
| GitHub | agno-agi/agno |
| Stars | 43k |
Why this version matters
Multi-agent teams have had a persistent gap: every member of a Team had to be defined with Agno's own primitives, so dropping in an external coding agent like Claude Code or Codex — something with its own full toolchain, sandbox, and conversation state — meant hand-rolling an adapter layer. This release makes ClaudeAgent/CodexAgent first-class Harness Agents that can become formal Team members or a step in a Workflow, including inside control flows like Parallel, Loop, Condition, and Router. The team leader delegates to them with the same delegate_task_to_member it uses for any other member; the difference is that this particular member is running an entire independent coding agent with its own workspace and sandbox, and it keeps its own conversation history across turns of the same session. In effect, an external coding agent goes from being a black box you had to wire in by hand to a first-class citizen you can delegate to and compose with in multi-agent orchestration.
Simplified: only the delegation relationship is shown; Workflow's Parallel/Loop/Condition/Router control flows are omitted.
Key changes
- Harness Agents as Team members or Workflow steps:
ClaudeAgent/CodexAgentcan be aTeammember or a step insideParallel/Loop/Condition/Routerin aWorkflow; a harness agent withsandbox=runs each turn in its own container as a member or step, and AgentOS lists harness members on the team page → no more hand-rolling an adapter to wire an external coding agent into multi-agent orchestration; the team leader delegates with the existingdelegate_task_to_member - Advanced Session Search: new
GET /sessions/filter-schemaandPOST /sessions/searchsupport nested AND/OR/NOT filters on session name, session/user/component IDs, session type, and created/updated timestamps, matching the existing Traces API's filtering logic; PostgreSQL and SQLite apply predicates before counting and pagination, with a batched fallback for other adapters, and both sync and async client methods are included → deployments with large numbers of sessions can query with structured filters instead of fetching everything and filtering in the application layer - Company Task lifecycle management across every stage:
POST /company/tasksnow acceptsstatus, so a Task can be created in Backlog, Ready, or Cancelled; Tasks can move between any stages, Done or Cancelled Tasks can be reopened, and title and brief can be edited at any stage — though In Progress still only starts from a run, and moving a Task out of In Progress while that run is executing or paused is refused → more complete Task lifecycle management while keeping the "can't be bypassed while running" safety boundary - Company Routine operations API: new
POST /company/routines/{id}/cancel,/archive,/restore, and an admin-onlyDELETE /company/routines/{id};GET /company/routinessupportssort_by/sort_order; pausing or resuming an already-paused on-demand Routine now returns409, and scheduled runs no longer bumpupdated_at→ Routine lifecycle management finally catches up to Tasks
Breaking Changes
No breaking changes in this release. A few fixes do tighten edge-case behavior:
ReaderFactory.create_reader()now returns a fresh reader configured per call instead of a cached singleton, so overrides likechunk_sizereliably take effect and mutations no longer leak acrossKnowledgeinstancesStepOutput.to_dict()now preserves int/float/bool/str values as their own types instead of stringifying them, so a step that returned0orFalseno longer comes back as"0"/"False"after an HITL resume or a session reload
Migration guide
No code changes needed — just upgrade:
pip install --upgrade agno==3.1.11
# Wire Claude Code or Codex into a Team and delegate to them like any other member
from agno.agent import ClaudeAgent, CodexAgent
from agno.team import Team
team = Team(members=[
ClaudeAgent(sandbox=my_sandbox),
CodexAgent(sandbox=my_sandbox),
# other regular Agno Agent members
])
Comparison with other frameworks
On the same day (2026-10-27), Pydantic AI's v2.63.0 added IPythonCodeMode, evolving its own execution layer with another code-execution environment. Agno took the opposite route, absorbing mature external coding agents like Claude Code and Codex directly into the Team/Workflow orchestration layer as formal members that can be delegated to. Both frameworks are grappling with the same question at the same time — where to draw the line between an agent framework and an external coding agent — just from opposite directions: one builds its own execution environment, the other orchestrates existing toolchains directly.
Takeaway
I used to think wiring Claude Code into a multi-agent Team meant having some Agent's tool shell out to the Claude Code CLI. Seeing Agno make it a Harness Agent that's a first-class Team member — one the leader can delegate to and compose with Parallel/Loop control flow — made it clear that the difference between an external coding agent and a framework-native Agent can just be "this member runs on a different, complete agent runtime," and the orchestration layer's delegation logic doesn't need to know or care where that difference lives.