配置驱动、"一切皆为工具" (Everything is a Tool) 的多智能体框架
- 🧩 配置驱动架构 (Config-Driven):通过 YAML/JSON 定义 Agent 行为,无需修改代码。
- 🤖 多智能体协作 (Multi-Agent):Principal Agent 拆解任务,Specialist Agent 并行执行。
- 🛠️ 统一工具系统 (Unified Tool System):
- 原子工具 (Atomic Tools):内置文件、网页搜索、代码执行、终端操作等基础工具。
- 技能 (Skills):基于 Markdown 定义的复合能力,作为智能体的"专业技能蓝图"。
- MCP 集成 (MCP Integration):全面支持 Model Context Protocol (如 Chrome DevTools, Filesystem)。
- 🧠 可插拔范式 (Pluggable Paradigms):支持 ReAct, Plan-and-Solve, Reflection, Auto (Autonomous Loop) 等多种思考模式的即时切换。
- 🔌 接口导向 (Protocol-Oriented):基于 Python Protocol 的高度解耦架构。
- ⚡ 异步与流式 (Async & Streaming):专为高并发和流式输出设计的底层核心。
git clone https://github.com/freezesoul/common-agent-framework.git
cd common-agent-framework
pip install -r requirements.txt复制并配置环境变量:
cp .env.example .env
# 编辑 .env 文件,添加你的 API_KEY (如 OpenAI, DeepSeek 等)(可选) 在 mcp.json 中配置 MCP 服务器:
{
"mcp_servers": {
"chrome": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}使用 Unified Facade (统一门面) 的标准初始化模式:
import asyncio
from core.agents.factory import AgentFactory
from core.config import AgentConfig, AgentType
from tools import ToolFacade
from skills import SkillFacade
async def main():
# 1. 初始化能力层 (Unified API)
ToolFacade.initialize() # 加载内置工具 & MCP 服务
await SkillFacade.initialize() # 加载 Markdown 定义的技能
# 2. 创建 Agent
factory = AgentFactory()
config = AgentConfig(
name="Assistant",
type=AgentType.WORKER,
model="deepseek-chat",
tools=["web_search", "file_read"] # 按名称引用工具
)
agent = factory.create_agent(config)
# 3. 执行任务
result = await agent.run("调研 2025 年最新的 AI 趋势")
print(result.result)
if __name__ == "__main__":
asyncio.run(main())深入了解框架的各个方面:
- 整体架构 (Architecture) - 设计理念、架构图与核心组件。
- 智能体 (Agents) - Principal/Worker 模式与 ReAct/Plan/Reflection 范式说明。
- 工具系统 (Tools) - 原子工具、MCP 集成与会话管理。
- MCP 集成 (MCP) - Model Context Protocol 的配置与使用。
- 技能系统 (Skills) - Markdown 驱动的技能定义与 Facade 模式。
- 协议 (Protocols) - 核心接口定义与交互协议。
common-agent-framework/
├── core/ # 核心内核: Agent, Config, Context, Paradigms, LLMs
│ ├── agents/ # Agent 实现
│ ├── paradigms/ # 认知架构 (ReAct, Plan, etc)
│ ├── llms/ # LLM 接口封装
│ ├── context/ # 记忆与上下文管理
│ └── interfaces.py # 核心协议定义
├── protocols/ # 交互协议实现 (MCP, A2A)
├── tools/ # 工具定义 & MCP 集成
│ ├── builtin/ # 原子工具 (File, Web, Code...)
│ └── facade.py # ToolFacade 入口
├── skills/ # 技能定义 & Facade
├── examples/ # 示例与测试脚本
└── docs/ # 详细文档
欢迎提交代码!请确保遵循 "Everything is a Tool" 的设计哲学。
MIT License