Hello-Agents task4---构建你的智能体框架
本章文章地址:
hello-agents/docs/chapter7/第七章 构建你的Agent框架.md at main · datawhalechina/hello-agents
前言:这次的学习是通过hello-agents学习智能体的设计,课程有一定的难度,重点放在分析框架的组成,本人是学习一些的核心概念,希望以后可以模仿写出一个适配的Agent。
目录结果
├── .env.example # 环境变量示例文件
├── my_advanced_search.py # 高级搜索工具实现
├── my_calculator_tool.py # 计算器工具实现
├── my_llm.py # 自定义LLM客户端实现
├── my_main.py # 主程序入口
├── my_react_agent.py # ReAct智能代理实现
├── my_simple_agent.py # 简单对话代理实现
├── test_advanced_search.py # 高级搜索工具测试
├── test_my_calculator.py # 计算器工具测试
├── test_plan_solve_agent.py # 计划解决代理测试
├── test_react_agent.py # ReAct代理测试
├── test_reflection_agent.py # 反思代理测试
└── test_simple_agent.py # 简单代理测试
概要说明
1. LLM 客户端(my_llm.py)
`my_llm.py` 实现了自定义的语言模型客户端,主要功能包括:
- 支持 ModelScope 平台的模型集成
- 动态配置 API 密钥、基础 URL 和模型参数
- 支持 OpenAI 兼容接口的模型调用
- 继承了框架的基础功能,如流式输出等
2. 智能代理实现 简单对话代理(my_simple_agent.py)
`my_simple_agent.py` 实现了基础的对话代理功能:
- 支持简单对话模式和工具调用模式
- 提供增强的系统提示词构建
- 实现多轮工具调用支持
- 支持流式响应输出
- 提供工具注册和管理的便捷方法 ReAct 智能代理(my_react_agent.py)
`my_react_agent.py` 实现了推理与行动相结合的智能代理:
- 严格遵循 "思考-行动-观察" 流程
- 支持自定义提示词模板
- 实现最大步数限制
- 提供工具执行结果的收集和处理
3. 工具实现 计算器工具(my_calculator_tool.py)
`my_calculator_tool.py` 实现了数学计算功能:
- 支持基本四则运算(+、-、*、/)
- 支持简单数学函数(如 sqrt、pi)
- 使用 AST 安全解析数学表达式
- 提供工具注册表创建函数 高级搜索工具(my_advanced_search.py)
`my_advanced_search.py` 实现了多源搜索功能:
- 支持 Tavily 和 SerpAPI 两个搜索源
- 自动检测和配置可用的搜索源
- 提供智能搜索结果整合
- 支持 API 配置检查和错误处理
4. 测试模块
项目包含多个测试文件,用于验证各组件的功能:
- `test_react_agent.py` - 测试 ReAct 代理的推理和工具调用能力
- `test_advanced_search.py` - 测试高级搜索工具的功能
- `test_my_calculator.py` - 测试计算器工具的计算能力
技术栈
- Python - 主要开发语言
- hello_agents - 基础框架库
- OpenAI API - LLM 接口
- Tavily API - 可选搜索源
- SerpAPI - 可选搜索源
- ModelScope - 可选模型平台
- dotenv - 环境变量管理
- AST - 数学表达式安全解析
功能特点
1. 模块化设计 - 代理、工具和 LLM 客户端解耦,易于扩展
2. 多平台支持 - 支持多个 LLM 平台和搜索 API
3. 工具集成 - 提供多种实用工具并支持自定义工具扩展
4. 灵活配置 - 通过环境变量和代码配置支持不同场景
5. 安全性考虑 - 如使用 AST 安全解析数学表达式
6. 详细日志 - 提供清晰的日志输出便于调试
