Architecture
Agno Deep Agent is an opinionated composition of Agno primitives.
Components
create_deep_agent()
|
v
Team(mode=TeamMode.tasks)
|
+-- Researcher
+-- Implementer
+-- Reviewer
|
+-- Skills(LocalSkills)
+-- SqliteDb
+-- CodingTools
+-- CompressionManager
+-- Media inputs
Leader
The Team acts as the leader. It:
- turns the user request into tasks;
- delegates to specialist members;
- stores context through the database;
- compresses large tool results when configured;
- forwards multimodal inputs to Agno-supported models;
- applies global instructions;
- exposes extra tools passed by the user.
Members
| Member | Role |
|---|---|
Researcher |
Reads the workspace and identifies requirements, risks, and relevant files. |
Implementer |
Makes changes and runs allowed verification commands. |
Reviewer |
Checks regressions, tests, risks, and clarity. |
Memory And Learning
All agents use the same SqliteDb. By default, the database lives at:
.deep-agent/agno.db
This allows sessions, memories, and learnings to persist between runs.
Context Compression
Agno Deep Agent enables Agno tool-result compression by default. Compression keeps long tool-heavy runs inside the model context by summarizing older tool outputs while preserving file paths, symbols, commands, errors, and decisions.
Use --no-compression to disable it or --compression-model to choose a
dedicated cheaper model.
Multimodal Input
The CLI and SDK accept images, audio, video, and files. These are converted into
Agno Image, Audio, Video, and File objects before the team run.
Model support still depends on the provider and selected model.
Workspace
File and shell tools use CodingTools with:
restrict_to_base_dir=True
The base directory is the configured workspace. The default is the current
directory.
Shell
The Implementer and Reviewer use shell tools with command allowlist and
timeout. This is useful for checks such as python, pytest, git, grep,
and ls.
To disable shell execution:
agno-deep-agent --no-shell "Review the project without running commands"
What This Harness Does Not Try To Be
- It is not a container.
- It is not an operating-system sandbox.
- It does not replace human review for destructive or production operations.
- It does not hide Agno primitives; it chooses useful defaults.