hello agents第七章 构建你的智能体框架

68 阅读5分钟

首先介绍下hello agents项目

项目主页hello agents:
项目初心:希望能为社区提供一本从零开始、理论与实战并重的智能体系统构建指南。
项目介绍:Hello-Agents 是 Datawhale 社区的系统性智能体学习教程。如今 Agent 构建主要分为两派,一派是 Dify,Coze,n8n 这类软件工程类 Agent,其本质是流程驱动的软件开发,LLM 作为数据处理的后端;另一派则是 AI 原生的 Agent,即真正以 AI 驱动的 Agent。本教程旨在带领大家深入理解并构建后者——真正的 AI Native Agent。教程将带领你穿透框架表象,从智能体的核心原理出发,深入其核心架构,理解其经典范式,并最终亲手构建起属于自己的多智能体应用。我们相信,最好的学习方式就是动手实践。希望这本教程能成为你探索智能体世界的起点,能够从一名大语言模型的"使用者",蜕变为一名智能体系统的"构建者"。

第七章各小节内容速览

第七章内容粗略总结

  1. 为何需要自建框架:
    • 市面框架的快速迭代与局限性:
      • 快速迭代导致不稳定、维护成本高
      • 过度抽象导致不易理解、深入掌握有一定难度
      • 黑盒:难以理解、难以根据实际需要进行修改定制等
      • 依赖关系复杂:依赖冲突、安装包体积庞大
    • 从使用者到构建者的能力跃迁:使用框架->了解框架->定制框架
      • 深度理解Agent工作原理
      • 获得完全的控制权
      • 培养系统设计能力:框架构建过程涉及模块化设计、接口抽象、错误处理等软件工程核心技能,这些能力对开发者的长期成长具有重要价值。
    • 定制化需求与深度掌握的必要性:通用性框架往往未必能很好地应对你的需求
      • 特定领域的优化需求:金融、医疗、教育等垂直领域往往需要针对性的提示词模板、特殊的工具集成、以及定制化的安全策略。
      • 性能与资源的精确控制:生产环境中,对响应时间、内存占用、并发处理能力都有严格要求,通用框架的"一刀切"方案往往无法满足精细化需求。
      • 学习与教学的透明性要求:在我们的教学场景中,学习者更期待的是清晰地看到智能体的每一步构建过程,理解不同范式的工作机制,这要求框架具有高度的可观测性和可解释性。
  2. HelloAgents框架的设计理念
    • 轻量、教学友好:易理解、拓展性强
    • 基于标准API:保证兼容性、降低学习成本
    • 渐进式学习路径:层层推进、登堂入室、方便回顾
    • 万物皆为工具
      • 除了核心的Agent类,一切皆为Tools。
      • 在许多其他框架中需要独立学习的Memory(记忆)、RAG(检索增强生成)、RL(强化学习)、MCP(协议)等模块,在HelloAgents中都被统一抽象为一种“工具”。
  3. 本章学习内容
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的支持: image.png 重写了think方法,使得文本和推理部分分开返回。 image.png