#Python#AI Agent#OpenAI#多智能体
VvAgent:从基础 Agent 到工程化多智能体系统
2026-07-04·7 min read·--- viewsLearning
一 项目概述
VvAgent 是一个基于 OpenAI 兼容 API 构建的多智能体框架,覆盖 LLM 适配、Agent 范式、工具调用、上下文工程、会话持久化、子代理、Skills、可观测性和流式输出等核心能力。它适合用来系统学习 Agent 框架设计,也适合作为个人 Agent 项目的二次开发骨架。
通过这个项目,你可以系统掌握:
- VvAgent 核心:LLM 统一接口、消息模型、配置系统、Agent 基类
- Agent 范式:SimpleAgent、ReActAgent、ReflectionAgent、PlanSolveAgent
- 工具系统:Tool 基类、ToolRegistry、ToolResponse 协议、函数式工具、可展开工具
- 上下文工程:历史管理、Token 计数、工具输出截断、上下文构建
- 多智能体能力:TaskTool 子代理、ToolFilter 权限控制、轻量模型委托
- 工程化能力:会话持久化、TraceLogger、CircuitBreaker、TodoWrite、DevLog
- 扩展能力:Skills 知识外化、自定义工具、SSE 流式输出、异步生命周期
二 能力地图
| 模块 | 核心内容 | 适合学习的问题 |
|---|---|---|
| vv_agent.core | LLM、Agent 基类、配置、消息、生命周期、会话 | 一个 Agent 框架的底座如何设计 |
| vv_agent.agents | Simple / ReAct / Reflection / PlanSolve | 不同 Agent 推理模式如何实现 |
| vv_agent.tools | Tool、ToolRegistry、ToolResponse、熔断器 | 如何让 LLM 稳定调用外部能力 |
| vv_agent.context | HistoryManager、TokenCounter、Truncator | 长对话和工具输出如何控成本 |
| vv_agent.skills | SkillLoader、SkillTool | 如何把领域知识外化成可加载技能 |
| vv_agent.observability | TraceLogger | 如何记录 Agent 执行轨迹并排查问题 |
| docs/ | 主题文档 | 按专题深入理解框架能力 |
| examples/ | 示例脚本 | 快速运行和改造功能案例 |
| tests/ | 单元测试 | 理解行为边界和回归保障 |
三 学习路径建议
1、基础入门
文档
示例
学习目标:理解 VvAgentLLM、Message、Config、ToolResponse
2、工具与 Agent
文档
示例
学习目标:对比 SimpleAgent 和 ReActAgent 的执行流程
3、上下文工程与状态
文档
示例
4、多智能体与任务管理
文档
示例
5、工程化与可观测性
文档
示例
6、扩展与应用
文档
示例
四 快速开始
1、环境准备
# Python 3.10+
python3 --version
# 推荐使用 uv
brew install uv
uv venv
source .venv/bin/activate
# 安装当前源码项目
uv pip install -e .
2、配置环境变量
在项目根目录创建 .env:
LLM_MODEL_ID=your-model-name
LLM_API_KEY=your-api-key
LLM_BASE_URL=your-api-base-url
LLM_TIMEOUT=60
VvAgent 通过 LLM_BASE_URL 自动选择适配器,支持 OpenAI 兼容接口、Anthropic Claude 和 Google Gemini。
3、运行最小示例
from vv_agent import ReActAgent, VvAgentLLM, ToolRegistry
from vv_agent.tools.builtin import ReadTool, WriteTool, TodoWriteTool
llm = VvAgentLLM()
registry = ToolRegistry()
registry.register_tool(ReadTool())
registry.register_tool(WriteTool())
registry.register_tool(TodoWriteTool())
agent = ReActAgent("assistant", llm, tool_registry=registry)
result = agent.run("分析项目结构并生成报告")
print(result)
五 LLM 提供商
| 类型 | 示例 | 配置方式 |
|---|---|---|
| OpenAI 兼容接口 | OpenAI、DeepSeek、Qwen、Kimi、智谱、Ollama、vLLM | LLM_BASE_URL=https://... |
| Anthropic | Claude | LLM_BASE_URL=https://api.anthropic.com |
| Gemini | Google Gemini | LLM_BASE_URL=https://generativelanguage.googleapis.com |
核心依赖保持轻量,额外提供:
pip install "vv-agent[anthropic]"
pip install "vv-agent[gemini]"
六 项目结构
vv-agent/
├── vv_agent/ # 主包
│ ├── core/ # LLM、Agent 基类、配置、消息、会话、流式
│ ├── agents/ # Simple / ReAct / Reflection / PlanSolve
│ ├── tools/ # 工具系统、ToolResponse、熔断器、内置工具
│ │ └── builtin/ # 文件、任务、技能、TodoWrite、DevLog、计算器
│ ├── context/ # 历史、Token、截断、上下文构建
│ ├── observability/ # TraceLogger
│ └── skills/ # SkillLoader
├── docs/ # 专题文档
├── examples/ # 可运行示例
├── skills/ # 示例 Skills
├── tests/ # 测试用例
├── pyproject.toml # 包配置
└── README.md
七 学习建议
- 先跑 examples,再读源码:框架类项目最怕只看不动手
- 读 tests/:可以更快理解边界条件和设计意图
- 自定义工具建议从 ToolResponse 协议开始学:少走很多弯路
- 多智能体部分建议先理解 ToolFilter,再看 TaskTool
- 可观测性优先接入 TraceLogger:调试 Agent 时会省很多时间
八 贡献与反馈
如果你在学习过程中发现问题或有改进建议,欢迎:
- 提交 Issue 描述问题
- 提交 Pull Request 修复 bug
- 分享学习经验和最佳实践
九 许可证
本项目 Fork / 参考自以下开源项目:HelloAgents。在学习与调试过程中,对部分代码和内容进行了修改与补充,仅用于个人学习与实践。如涉及转载,请参考原项目说明。
◆AI Assistant
◆Comments (0)
Sign in to leave a comment
No comments yet. Be the first to comment!