首先介绍下hello agents项目
项目主页hello agents:
项目初心:希望能为社区提供一本从零开始、理论与实战并重的智能体系统构建指南。
项目介绍:Hello-Agents 是 Datawhale 社区的系统性智能体学习教程。如今 Agent 构建主要分为两派,一派是 Dify,Coze,n8n 这类软件工程类 Agent,其本质是流程驱动的软件开发,LLM 作为数据处理的后端;另一派则是 AI 原生的 Agent,即真正以 AI 驱动的 Agent。本教程旨在带领大家深入理解并构建后者——真正的 AI Native Agent。教程将带领你穿透框架表象,从智能体的核心原理出发,深入其核心架构,理解其经典范式,并最终亲手构建起属于自己的多智能体应用。我们相信,最好的学习方式就是动手实践。希望这本教程能成为你探索智能体世界的起点,能够从一名大语言模型的"使用者",蜕变为一名智能体系统的"构建者"。
第七章各小节内容速览
第七章内容粗略总结
- 为何需要自建框架:
- 市面框架的快速迭代与局限性:
- 快速迭代导致不稳定、维护成本高
- 过度抽象导致不易理解、深入掌握有一定难度
- 黑盒:难以理解、难以根据实际需要进行修改定制等
- 依赖关系复杂:依赖冲突、安装包体积庞大
- 从使用者到构建者的能力跃迁:使用框架->了解框架->定制框架
- 深度理解Agent工作原理
- 获得完全的控制权
- 培养系统设计能力:框架构建过程涉及模块化设计、接口抽象、错误处理等软件工程核心技能,这些能力对开发者的长期成长具有重要价值。
- 定制化需求与深度掌握的必要性:通用性框架往往未必能很好地应对你的需求
- 特定领域的优化需求:金融、医疗、教育等垂直领域往往需要针对性的提示词模板、特殊的工具集成、以及定制化的安全策略。
- 性能与资源的精确控制:生产环境中,对响应时间、内存占用、并发处理能力都有严格要求,通用框架的"一刀切"方案往往无法满足精细化需求。
- 学习与教学的透明性要求:在我们的教学场景中,学习者更期待的是清晰地看到智能体的每一步构建过程,理解不同范式的工作机制,这要求框架具有高度的可观测性和可解释性。
- 市面框架的快速迭代与局限性:
- HelloAgents框架的设计理念
- 轻量、教学友好:易理解、拓展性强
- 基于标准API:保证兼容性、降低学习成本
- 渐进式学习路径:层层推进、登堂入室、方便回顾
- 万物皆为工具
- 除了核心的Agent类,一切皆为Tools。
- 在许多其他框架中需要独立学习的Memory(记忆)、RAG(检索增强生成)、RL(强化学习)、MCP(协议)等模块,在HelloAgents中都被统一抽象为一种“工具”。
- 本章学习内容
hello-agents/
├── hello_agents/
│ │
│ ├── core/ # 核心框架层
│ │ ├── agent.py # Agent基类
│ │ ├── llm.py # HelloAgentsLLM统一接口
│ │ ├── message.py # 消息系统
│ │ ├── config.py # 配置管理
│ │ └── exceptions.py # 异常体系
│ │
│ ├── agents/ # Agent实现层
│ │ ├── simple_agent.py # SimpleAgent实现
│ │ ├── react_agent.py # ReActAgent实现
│ │ ├── reflection_agent.py # ReflectionAgent实现
│ │ └── plan_solve_agent.py # PlanAndSolveAgent实现
│ │
│ ├── tools/ # 工具系统层
│ │ ├── base.py # 工具基类
│ │ ├── registry.py # 工具注册机制
│ │ ├── chain.py # 工具链管理系统
│ │ ├── async_executor.py # 异步工具执行器
│ │ └── builtin/ # 内置工具集
│ │ ├── calculator.py # 计算工具
│ │ └── search.py # 搜索工具
└──
学习路径:先体验后实现,即1)使用pip安装框架,运行示例代码,快速体验各种功能;2)从零开始实现每个组件,深入理解框架的设计思想和实现细节
4. HelloAgentsLLM扩展
* 多提供商支持:实现对 OpenAI、ModelScope、智谱 AI 等多种主流 LLM 服务商的无缝切换,避免框架与特定供应商绑定。
* 本地模型集成:引入 VLLM 和 Ollama 这两种高性能本地部署方案,作为对第 3.2.3 节中 Hugging Face Transformers 方案的生产级补充,满足数据隐私和成本控制的需求。
* 自动检测机制:建立一套自动识别机制,使框架能根据环境信息智能推断所使用的 LLM 服务类型,简化用户的配置过程。
# ============================================================================
# HelloAgents 统一环境变量配置文件
# ============================================================================
# 复制此文件为 .env 并填入你的API密钥
# 系统要求:Python 3.10+ (必需)
# ============================================================================
# 🚀 统一配置格式(推荐)- 框架自动检测provider
# ============================================================================
# 只需配置以下4个通用环境变量,框架会自动识别LLM提供商:
# 模型名称
LLM_MODEL_ID=MiniMax-M2
# API密钥
LLM_API_KEY=eyJhbGciO
# 服务地址
LLM_BASE_URL=https://api.minimaxi.com/v1
# minimax变量
MINIMAX_API_KEY=eyJhbGciO
MINIMAX_BASE_URL=https://api.minimaxi.com/v1
MINIMAX_MODEL_NAME=MiniMax-M2
# 超时时间(可选,默认60秒)
LLM_TIMEOUT=60
# ============================================================================
# 🛠️ 工具配置(可选)
# ============================================================================
# Tavily搜索(推荐)- 获取API密钥:https://tavily.com/
# TAVILY_API_KEY=tvly-your_tavily_key_here
# SerpApi搜索(备选)- 获取API密钥:https://serpapi.com/
SERPAPI_API_KEY=21a15e0b9
增加了对minimax的支持:
重写了think方法,使得文本和推理部分分开返回。