Skip to main content

A governed agent runtime for local-first, private-first, embeddable AI agents.

Project description

Agentao (Agent + Tao)

   ___                      _
  / _ \ ___ _ ___  ___  ___| |_  ___  ___
 /  _  // _` / -_)| _ \/ _ \  _|/ _` / _ \
/_/ |_| \__, \___||_// \___/\__|\__,_\___/
        |___/        (The Way of Agents)

"Order in Chaos, Path in Intelligence."

Agentao is a Governed Agent Runtime — a local-first, private-first, embeddable agent harness for Python hosts. Permissions, protocols, memory, plugins, and multi-session control are all first-class.

中文版本 README.zh.md


📚 Documentation — read this first

The full handbook lives in developer-guide/ (VitePress, bilingual). Production site: agentao.cn.

Audience Read Site
CLI users — driving agentao in the terminal developer-guide/en/cli/ (12 chapters: slash commands · plan mode · memory · replay · …) agentao.cn/en/cli/
Embedding developers — building Agentao into your app developer-guide/en/ (Parts 1–7 + Appendix) agentao.cn
中文 developer-guide/zh/cli/ · developer-guide/zh/ agentao.cn/zh/cli/ · agentao.cn/zh/

Browse locally:

cd developer-guide && npx vitepress dev

For schema-level reference (every config file, every env var, every public API), the canonical doc is docs/CONFIGURATION.md. Everything else is in the Developer Guide.


Embed in 30 lines

pip install agentao
from pathlib import Path
from agentao import Agentao
from agentao.llm import LLMClient
from agentao.transport import NullTransport

agent = Agentao(
    working_directory=Path("/tmp/agent-run-1"),
    llm_client=LLMClient(
        api_key="sk-...",
        base_url="https://api.openai.com/v1",
        model="gpt-5.4",
    ),
    transport=NullTransport(),
)
reply = agent.chat("Summarize today's logs.")
print(reply)
agent.close()

This constructs an agent with no env-discovery, no implicit network, no global state — the host owns every input. For env-driven discovery (the path the CLI uses), call agentao.embedding.build_from_environment(working_directory=...) instead.

Embedding details: Developer Guide · Part 2 (Lifecycle) and Part 4 (Host Contract).


CLI Quickstart

pip install 'agentao[cli]'

# .env in your project (all three are required):
printf "OPENAI_API_KEY=sk-your-key\nOPENAI_BASE_URL=https://api.openai.com/v1\nOPENAI_MODEL=gpt-5.4\n" > .env

# Smoke test — non-interactive
agentao -p "Reply with the single word: OK"

# Interactive REPL
agentao

Upgrading from 0.3.x? From 0.4.0 the CLI deps moved into the [cli] extra. Use pip install 'agentao[full]' for zero behaviour change. See docs/migration/0.3.x-to-0.4.0.md.

First commands once the REPL is up:

/help       Every slash command + tools the agent has
/status     Model, mode, tokens, active skills
/model      Switch model on the current provider
/mode       Switch permission mode (read-only · workspace-write · full-access · plan)
/plan       Enter plan mode (read-only thinking with .agentao/plan.md)
/memory     Inspect persistent memory
/mcp list   MCP server status
/exit       Leave cleanly (don't Ctrl+C)

CLI handbook: agentao.cn/en/cli/ — 12 chapters covering every slash command and the mental model behind them.


Why Agentao?

The name encodes the design: Agent (capability) + Tao (governance). Three pillars of a governed runtime:

Pillar What it means How Agentao implements it
Constraint (约束) Agents must not act without consent Tool confirmation · permission modes (read-only / workspace-write / full-access / plan) · macOS sandbox-exec
Connectivity (连接) Agents must reach the world beyond training MCP (stdio / SSE) · ACP (full-agent JSON-RPC) · plugins · hooks
Observability (可观测性) Agents must show their work Live thinking display · streaming tool output · full LLM logging · JSONL replay

Feature Overview

Area What you get Deep dive
Governance Tool confirmation, four permission modes, plan mode, macOS sandbox CLI ch. 3 · ch. 4
Context Token tracking, LLM-summarized compaction, overflow recovery, file re-injection CLI ch. 7
Memory SQLite-backed persistent memory with two scopes (user / project), automatic recall, jieba 中文 segmentation CLI ch. 6
Skills Auto-discovered from skills/, GitHub-installable (agentao skill install owner/repo[:path][@ref]), plus /crystallize workflow CLI ch. 5
Protocols MCP (stdio / SSE) for tools · ACP (stdio JSON-RPC) for full agents · plugin lifecycle CLI ch. 8
Sub-agents Built-in codebase-investigator / generalist · custom .agentao/agents/<name>.md · foreground/background dashboard CLI ch. 11
Replay & Output JSONL session recordings under .agentao/replays/ · markdown-toggle · /copy last reply CLI ch. 9
Embedding Agentao(...) constructor · events() stream · active_permissions() · capability injection · ACP Pydantic schemas DG Part 2 · Part 4

Installation

# Embedding host (Python `from agentao import Agentao`) — smallest closure
pip install agentao

# CLI user (`agentao` console script) — adds rich/prompt-toolkit/readchar/pygments
pip install 'agentao[cli]'

# Zero-behaviour-change upgrade from 0.3.x — full closure
pip install 'agentao[full]'

Required Python: 3.10+. Required env: OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL — all three, or startup raises ValueError.

For Anthropic / Gemini / DeepSeek / any OpenAI-compatible provider, set <NAME>_API_KEY + <NAME>_BASE_URL + <NAME>_MODEL and pick it via LLM_PROVIDER or /provider at runtime. Full list: docs/CONFIGURATION.md.


For contributors

git clone https://github.com/jin-bo/agentao
cd agentao
uv sync
cp .env.example .env

# Run the CLI from source
uv run agentao
# or
./run.sh

# Tests
uv run python -m pytest tests/

Contributor entry points:

What Where
Project layout, code conventions CLAUDE.md
Adding a tool / agent / skill Developer Guide · Part 5
Plugin author guide Developer Guide · §5.7
Embedding contract & ACP schemas Developer Guide · Part 4
Examples (skills · personas · integration blueprints) examples/

Design Principles

  1. Minimalism (极简)pip install agentao and you're running. No databases, no cloud dependencies.
  2. Transparency (透明) — Reasoning chain on screen in real time. Every LLM call and tool call logged to agentao.log.
  3. Integrity (完整) — Context never silently dropped: LLM-summarized compaction, automatic memory recall, conversation continuity across restarts.

Etymology

Agentao = Agent + Tao (道) — the natural order that underlies all things. Three intertwined meanings:

  • Laws (法则) — rules that constrain and shape behavior
  • Methods (方法) — paths and techniques for accomplishing goals
  • Paths (路径) — routes through which things flow and connect

An agent without Tao is powerful but unpredictable. Agentao is the structure that makes that power trustworthy.


License

Open source. Use and modify as needed.

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentao-0.4.6.tar.gz (897.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentao-0.4.6-py3-none-any.whl (661.8 kB view details)

Uploaded Python 3

File details

Details for the file agentao-0.4.6.tar.gz.

File metadata

  • Download URL: agentao-0.4.6.tar.gz
  • Upload date:
  • Size: 897.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agentao-0.4.6.tar.gz
Algorithm Hash digest
SHA256 6dd971447cde5a0166b72f58849b052e77a6b1fc5a4169a0a997c42a10e025f8
MD5 5e10f43ff00159c92c41e1a1aa358929
BLAKE2b-256 e1ed098f4f22c09a2f5b3df113b821d9cb5c387ccc6dbc2b33149cb1e8f6f374

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentao-0.4.6.tar.gz:

Publisher: publish.yml on jin-bo/agentao

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentao-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: agentao-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 661.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agentao-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2a1dbaf7a3e5e21e1c99c43ff9c6b0968d682bd9fe961539cca859cebf46bd1e
MD5 3b0ed64f16b8a429774fe4581d7497c4
BLAKE2b-256 2607110db71a9943ea33c10ca8acd9c6b999d9c139d05b226363e16893002476

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentao-0.4.6-py3-none-any.whl:

Publisher: publish.yml on jin-bo/agentao

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page