EasyAgent 是一个面向通用 Agent、Code Agent 和多 Agent 协作场景的 Python 框架。 它关注的不是“怎么调用一次模型”,而是“怎么把模型、工具、权限、会话、上下文、运行时和可观测性组装成可持续维护的 Agent 产品”。
这份 README 不是简介,而是整个框架文档体系的总入口。
如果你只读一个文件,请先读它;如果你要做真正的产品化集成,请顺着这里的主题索引继续读 docs/ 下的专题手册。
EasyAgent 适合构建:
- 单智能体对话助手
- 带工具调用的自动化助手
- 本地或远程运行的 Code Agent
- 带 Ask / Allow / Deny 权限模型的命令执行代理
- 带 Skill、MCP、CodeIntel、RAG、Memory 的工程助手
- 支持 Team / Task / Mailbox / background agent 的多 Agent 系统
核心安装:
pip install -e .可选扩展:
pip install -e ".[mcp]"
pip install -e ".[rag]"
pip install -e ".[memory]"
pip install -e ".[dev]"推荐:
- 只做工具型 Agent:核心安装即可
- 要接 MCP:加
.[mcp] - 要接知识库或检索:加
.[rag] - 要长期记忆:加
.[memory] - 要跑完整测试:加
.[dev]
from easyagent import BasicAgent, EasyLLM
llm = EasyLLM(
provider="openai",
base_url="http://127.0.0.1:5124/v1",
api_key="test",
model="qwen3.5-9b",
)
agent = BasicAgent(name="assistant", llm=llm)
print(agent.invoke("用一句话说明 EasyAgent 是什么。"))from easyagent import BasicAgent, Config, EasyLLM
from easyagent.tools import ToolRegistry, register_filesystem_tools, register_shell_tools
llm = EasyLLM(
provider="anthropic_native",
api_key="test",
base_url="http://127.0.0.1:5124",
model="deepseek-v4-flash:zenmux:claude",
)
config = Config(tool_schema_mode="deferred")
registry = ToolRegistry()
register_filesystem_tools(registry, workspace_root=".")
register_shell_tools(registry, workspace_root=".", expose_in_deferred=False)
agent = BasicAgent(
name="code-agent",
llm=llm,
enable_tool=True,
config=config,
tool_registry=registry,
)更完整的产品装配示例见:
新项目建议统一从 easyagent 或 easyagent.* 导入,而不是直接依赖内部目录。
常见导入:
from easyagent import BasicAgent, EasyLLM, Config
from easyagent.tools import ToolRegistry, register_filesystem_tools, register_shell_tools
from easyagent.permissions import PermissionContext, PermissionEngine, PermissionRule
from easyagent.callbacks import CallbackManager, StreamingCallback
from easyagent.prompting import PromptBlock, BasePromptComposer
from easyagent.reminders import RuntimeReminder, BaseRuntimeReminderSource完整公共 API 索引见:
- Runtime Collaboration Guide
- Tasks Guide
- Permissions Guide
- Hooks And Guardrails Guide
- Callbacks And Streaming Guide
BaseAgent 是运行时基座,BasicAgent 是默认可用的通用实现。
Agent 负责把 LLM、Tool、Skill、History、Callback、Hook、Permission、Runtime 组装起来。
详见:
EasyLLM 是统一的模型访问层。
框架通过 provider 适配不同协议,例如 openai、openai_responses、google_native、anthropic_native。
详见:
Tool 是 Agent 的执行能力。 EasyAgent 提供 Tool 基类、ToolRegistry、权限判定、确认中断、deferred schema、runtime/turn 可见性,以及大量 builtin tools。
详见:
EasyAgent 不把所有上下文都塞进 system prompt。 系统提示词、runtime reminder、on-demand expansion、dynamic tail 是不同层,目的包括更清晰的请求结构和更稳定的 cache 前缀。
详见:
Skill 是“能力包”,可以同时提供:
- prompt 片段
- tool
- context source
- 按需激活逻辑
详见:
Context 模块负责“请求时附加上下文”,Memory 模块负责“长期或工作记忆”,Compaction 负责“当上下文过长时如何压缩历史”。
详见:
Session 模块负责持久化 agent 快照和消息历史,并提供恢复报告。
详见:
Runtime 负责 subagent、background task、team 协作、mailbox 广播和执行上下文管理。
详见:
- Permission:决定某个工具调用是 Ask、Allow 还是 Deny
- Hook:在关键执行点阻塞、修改、放行 payload
- Callback:做非阻塞观测、UI 更新、日志采集
详见:
这些是更偏产品增强的扩展层:
- MCP:远程工具与资源接入
- CodeIntel:定义、引用、诊断、符号
- RAG:知识库与检索增强
- Worktree:隔离执行环境
详见:
如果你要从零做一个产品,推荐按这个顺序接模块:
EasyLLMBasicAgentConfigToolRegistry+ builtin toolsPermissionContext/PermissionEngineCallbackManagerPromptBlock/ runtime remindersSkillManagerSessionStore/ConversationStoreObservabilityRecorder- 视场景继续接
Runtime/MCP/CodeIntel/Memory/RAG
适合问答、工具调用和基本会话。
重点阅读:
适合本地仓库分析、读写文件、shell、子 agent、worktree。
重点阅读:
- Code Agent Product Quickstart
- Builtin Tools Catalog
- Deferred Tools Guide
- Permissions Guide
- Worktree Guide
- CodeIntel Guide
适合 manager + worker、广播、后台子任务、结构化任务推进。
重点阅读:
看:
看:
看:
看:
- Memory System Guide
- Session Restore Persistence Guide
- Callbacks And Streaming Guide
- Hooks And Guardrails Guide
看:
因为 EasyAgent 不是单一功能库。 Agent、Tool、Prompt、Permission、Runtime、Session、MCP、Memory、Cache 都是独立主题;把所有细节都塞进一个 README 会不可维护。
README 是总入口,负责:
- 快速开始
- 核心概念
- 阅读路径
- 各主题索引
docs/ 负责:
- 参数逐项解释
- 内部机制说明
- 模块集成细节
- 自定义与扩展方式
通常推荐:
README.md- Framework API
- Agent Guide
- Config Reference
- 按你的场景继续看 Tool / Prompt / Runtime / Memory / Session