项目快照:datawhalechina/hello-agents,约 73,329 个 Star,9,126 个 Fork;最新推送时间 2026-08-14T11:23:24Z。本文基于仓库公开资料撰写。
项目地址:https://github.com/datawhalechina/hello-agents · https://hello-agents.datawhale.cc

Hello-Agents:从零开始构建智能体的系统性教程
项目速览(TL;DR)
hello-agents 是 Datawhale 社区维护的中文开源智能体(Agent)学习教程,项目描述为“从零开始的智能体原理与实践教程”。仓库以 Python 作为主要语言,默认分支为 main;根据给定 GitHub 元信息,项目拥有 73329 个 Star 和 9126 个 Fork。
教程覆盖智能体基础、语言模型、经典范式、低代码平台、代码框架、自研框架、记忆与检索、上下文工程、通信协议、训练、评估及综合案例。它不是一个已经给出完整产品化部署参数的单一应用仓库,而是一套从原理到实践的课程资料集合,具体可运行代码、依赖版本和环境变量需要以仓库当前内容为准。
- 项目类型:中文智能体系统学习教程。
- 主要语言:Python。
- 默认分支:
main。 - 许可证字段:GitHub 元信息显示为
NOASSERTION。 - 在线文档:Hello-Agents 在线文档。
定位与目标用户
本项目的核心定位是“系统性智能体学习教程”,重点不只是调用大语言模型(Large Language Model,LLM),而是帮助读者理解智能体的组成、推理范式、工具调用、记忆、通信、评估和多智能体协作。README 将软件工程类智能体与人工智能原生(AI Native)智能体区分开来,并明确教程侧重后者的原理与实现。
目标用户需要能够阅读基础技术材料,并愿意通过代码和案例理解系统行为。仓库没有在给定资料中声明最低 Python 版本、操作系统要求、模型服务供应商或硬件门槛,因此不能据此推断具体的运行环境门槛。
学习路径的组织方式
内容按五个部分编排。第一部分建立智能体和语言模型基础;第二部分进入经典范式、低代码平台、框架应用和框架自研;第三部分处理记忆、检索、上下文、协议、训练与评估;第四部分通过旅行助手、深度研究智能体和赛博小镇进行综合实践;第五部分以毕业设计收束。
这种编排适合需要从概念过渡到系统实现的读者。对于只想复制一个现成聊天机器人、且不准备阅读原理或修改框架的读者,教程的覆盖范围会超出其直接需求。
核心功能
教程的核心价值在于把智能体拆成可学习、可实现和可评估的模块。每项能力都对应明确的章节或案例,读者可以从单轮模型调用逐步进入具有规划、工具使用和多智能体协作能力的系统。
智能体概念、历史与基础模型
第一章解释智能体的定义、类型、范式与应用,第二章梳理从符号主义到大语言模型驱动智能体的演进,第三章介绍 Transformer、提示方法、主流大语言模型及其局限。其输入是理论概念、模型机制和应用问题,输出是对智能体系统边界及其工作基础的认识。
这些内容构成后续实现的前置知识。教程资料没有在给定 README 中列出第三章使用的具体模型名称、模型版本或推理服务地址,相关实验条件应根据对应章节内容核对。
经典智能体范式实现
第四章列出 ReAct、Plan-and-Solve 和 Reflection 三种经典范式,并说明将以手把手方式进行构建。ReAct 将推理与行动交替组织;Plan-and-Solve 先形成计划,再执行步骤;Reflection 则引入对结果的反思环节。上述机制的具体提示模板、循环条件、工具接口和输出格式不在 README 摘要中展开。
从系统角度看,这些范式的输入通常包括用户任务、模型上下文和可用工具描述,输出包括中间推理过程对应的行动决策以及最终结果。这里的“通常”属于对范式的一般性解释,不作为本仓库具体实现接口的事实;仓库实现细节应以第四章源码和正文为准。
低代码平台与代码框架实践
第五章覆盖 Coze、Dify 和 n8n 等低代码智能体平台,侧重平台使用方式;第六章覆盖 AutoGen、AgentScope 和 LangGraph 等代码框架,侧重框架开发实践。低代码路径将流程配置与模型调用结合,代码框架路径则把智能体状态、节点、消息或协作逻辑放入程序中管理。
README 没有提供这些平台或框架的具体版本、安装命令、认证方式和兼容矩阵,因此本文不填写版本号,也不把目录中的名称解释为当前最新版本。选择路径时,可按学习目标判断:需要理解可视化流程时阅读第五章,需要研究程序化编排或框架抽象时阅读第六章。
自研 HelloAgents 框架
第七章的目标是从零开始构建智能体框架,README 还将 HelloAgents 描述为基于 OpenAI 原生应用程序编程接口(Application Programming Interface,API)构建的自研框架。这里的“自研框架”是教程收获之一,不等同于当前仓库本身已经声明提供一个独立、稳定、可直接用于生产的 Python 软件包。
该部分的学习重点是理解框架层如何封装模型调用、消息处理、工具调用和智能体循环。给定资料没有提供该框架的包名、版本、公开接口签名或发布渠道,安装与调用方式必须以对应章节和相关仓库的最新说明为准。
记忆、检索与上下文工程
第八章覆盖记忆系统、检索增强生成(Retrieval-Augmented Generation,RAG)和存储,第九章讨论持续交互中的上下文工程。记忆解决跨轮次信息如何保存和读取,检索解决外部知识如何进入模型上下文,上下文工程则关注在持续任务中如何组织情境信息。
这三类能力的触发条件并不相同:用户历史或任务状态可触发记忆读写,知识查询可触发检索,长流程交互可触发上下文整理。README 没有声明具体数据库、向量库、分词器或召回算法,因此不能补写具体依赖。
协议、训练与评估
第十章解析模型上下文协议(Model Context Protocol,MCP)、智能体到智能体协议(Agent2Agent,A2A)和智能体网络协议(Agent Network Protocol,ANP);第十一章覆盖 Agentic-RL,并以从监督微调(Supervised Fine-Tuning,SFT)到群体相对策略优化(Group Relative Policy Optimization,GRPO)的训练流程为主题;第十二章讨论指标、基准测试和评估框架。
这些章节将系统从“能够运行”推进到“能够连接、训练和衡量”。评估章节的价值不在于给出一个预先承诺的性能数字,而在于建立任务成功率、过程质量和系统成本等问题的测量意识;给定资料没有提供任何基准结果、延迟、吞吐量或服务等级协议(Service Level Agreement,SLA)。
系统架构与关键模块
从仓库内容导航可以抽象出“基础模型—智能体循环—工具与协议—记忆与上下文—多智能体应用—评估”的学习架构。这是根据 README 章节组织方式做出的结构化归纳,不代表仓库声明了一张固定的软件部署架构图。
| 层次 | 对应内容 | 输入 | 输出或职责 |
|---|---|---|---|
| 基础层 | 智能体概念、发展史、语言模型基础 | 理论、模型机制、提示 | 建立系统设计所需的概念基础 |
| 执行层 | ReAct、Plan-and-Solve、Reflection | 任务、上下文、工具描述 | 规划、行动、反思和最终响应 |
| 编排层 | 低代码平台、AutoGen、AgentScope、LangGraph | 流程或程序定义 | 组织节点、消息、状态和协作流程 |
| 能力层 | 记忆、RAG、上下文工程、通信协议 | 历史信息、外部知识、协议消息 | 提供持久信息、检索结果和跨智能体通信能力 |
| 质量层 | Agentic-RL、性能评估 | 训练数据、任务结果、评估指标 | 改进模型行为并衡量系统效果 |
| 应用层 | 旅行助手、深度研究、赛博小镇、毕业设计 | 真实任务和多智能体角色 | 形成综合应用或毕业项目 |
该分层可以帮助读者定位问题:回答质量不足时,问题可能位于提示或模型基础;行动路径错误时,应检查规划和执行范式;跨轮次信息丢失时,应检查记忆、检索和上下文;多角色协作失败时,应检查消息协议、状态管理与评估指标。
依赖与运行环境
给定仓库元信息只明确主要语言为 Python,并未提供 Python 版本、操作系统、包管理器、锁定文件、容器镜像或硬件要求。README 的导航提到多个平台、框架和协议,但“提及名称”不能替代依赖声明。
因此,下面的环境结论仅限于资料可核查范围:
- 可确认的主要语言是 Python。
- 默认分支是
main。 - 官方在线阅读入口已提供。
- 未提供可核查的 Python 版本和依赖版本。
- 未提供统一的安装脚本、启动命令、端口或容器编排文件。
准备复现实验时,应先阅读目标章节及仓库当前 README,再确认对应代码目录中的依赖说明。官方仓库未提供该信息,建议以最新 README 为准。
快速开始
当前给定资料没有提供完整的“安装依赖—启动应用—访问端口”命令链,因此不能虚构一个可运行服务的启动方式。下面的最小闭环只完成仓库获取、分支核验和文档入口验证,适用于本地阅读,不宣称已启动智能体应用。
最小本地阅读示例
git clone https://github.com/datawhalechina/hello-agents.git
cd hello-agents
git branch --show-current
git remote -v第一步从官方 GitHub 仓库获取资料,第二步进入项目目录,第三步核验当前分支,第四步核验远程仓库地址。由于资料只明确默认分支为 main,实际命令输出应由本地 Git 状态确认,不在文章中预设输出内容。
在线阅读验证
python -c "from urllib.request import urlopen; print(urlopen('https://hello-agents.datawhale.cc', timeout=10).status)"该命令仅向资料中给出的官网发起读取请求,用于验证本机是否能够访问在线文档;它不是教程运行依赖,也不会提交个人数据或调用模型服务。若网络环境无法访问,仍可使用已克隆的仓库阅读 Markdown 文件。
资料没有给出某一章示例的正式安装命令、模型密钥字段或运行入口。涉及模型服务的实验必须使用自己的测试凭据;本文不填入真实密钥,也不建议将密钥写入 Git 仓库。
配置说明
给定资料未包含 pyproject.toml、package.json、docker-compose.yml、.env.example 或配置样例,因此无法列出真实的环境变量和默认值。下表用于明确配置核查结果,字段名并非仓库已经声明的配置接口。
| 字段名 | 类型 | 默认值 | 作用 |
|---|---|---|---|
| Python 版本 | 版本字符串 | 未提供 | 解释器兼容范围未在给定资料中声明 |
| 模型服务地址 | URL | 未提供 | 模型调用端点未在 README 摘要中声明 |
| 模型 API 密钥变量 | 字符串 | 未提供 | 认证字段名称未在给定资料中声明 |
| 服务端口 | 整数 | 未提供 | 仓库未提供统一应用启动端口 |
| 存储或向量数据库 | 配置对象或字符串 | 未提供 | 第八章涉及存储与 RAG,但具体实现未在摘要中给出 |
| 日志级别 | 字符串 | 未提供 | 可观测性配置未在给定资料中声明 |
如果对应章节要求设置 API 密钥,应把占位符替换为授权模型服务提供的测试密钥,并通过本地环境变量或未提交到版本库的配置文件管理。具体变量名、格式和加载方式必须以章节实际代码为准,不能根据平台名称推断。
进阶用法
进阶学习应围绕一个可验证的任务逐层增加能力,而不是同时引入所有框架、协议和训练组件。建议先完成单智能体范式,再加入记忆或检索,最后进入多智能体案例和评估。
- 使用第一至第三章明确任务边界、模型能力和限制。
- 使用第四章分别实现 ReAct、Plan-and-Solve 与 Reflection,并记录每种范式的输入、行动和最终输出。
- 使用第六章比较程序化框架对状态、消息和流程的组织方式。
- 使用第七章拆解自研框架,理解模型调用与智能体循环之间的封装关系。
- 使用第八、九章加入记忆、RAG 和上下文工程,检查历史信息是否被正确读取。
- 使用第十章研究 MCP、A2A、ANP 等协议在智能体通信中的职责。
- 使用第十二章设计评估指标,再进入第十三至第十五章的综合案例。
第十三章以 MCP 与多智能体协作为旅行助手案例,第十四章复现并解析自动化深度研究智能体,第十五章把智能体与游戏结合以模拟社会动态。案例名称和主题来自 README;具体数据源、模型、工具权限和部署方式未在给定资料中提供。
可观测性与运维
给定 README 没有声明日志格式、指标系统、链路追踪、告警规则、重试策略、限流参数、持久化策略或服务等级目标。不能把第十二章的“性能评估”直接等同于生产环境可观测性,也不能据此推断仓库已经提供运维组件。
在本地实验中,应至少保留任务输入、模型响应、工具调用结果、异常信息和评估结果,并对敏感字段进行脱敏。上述属于根据本文作者的经验判断,不是仓库已声明的实现能力;若要形成生产运维方案,应以实际代码和部署环境为依据。
- 运行记录:区分用户输入、模型输出、工具输入和工具返回值。
- 错误定位:记录失败发生在模型调用、规划、工具执行、记忆读写还是协议通信。
- 结果评估:使用第十二章涉及的指标、基准测试和评估框架进行任务级验证。
- 数据治理:限制日志访问范围,避免将 API 密钥、个人信息或业务机密写入日志。
安全与合规边界
教程涉及智能体、自动化深度研究、Web Agent 社区扩展、GUI Agent 社区扩展和工具协议。此类系统可能读取外部内容、调用工具或处理用户资料,因此必须在获得授权的环境中实验,不能将示例直接用于未授权目标、账号自动化、规避检测或访问受限制系统。
安全边界应由任务权限、工具权限、网络隔离和数据范围共同定义。尤其在配置模型服务、浏览器工具、文件系统工具或外部协议服务时,应使用测试账号、最小权限和隔离环境;资料没有提供具体工具白名单、沙箱策略或审计实现,不能宣称项目已经具备这些控制措施。
- 只处理获得合法授权的数据、网页、文件和接口。
- 不要提交真实个人敏感信息、生产密钥或未脱敏业务数据。
- 将模型生成的计划视为待审核内容,不直接授予不可逆的高权限操作。
- 涉及支付、账号变更、删除数据或外部发布时,增加人工确认。
- 阅读社区中的 Web Agent、GUI Agent 和自进化内容时,遵守目标站点规则及适用法律。
许可证与商用条款
给定 GitHub 元信息将仓库许可证显示为 NOASSERTION,资料中没有提供 LICENSE 文件正文或可核验的许可名称。因此,无法确认复制、修改、再分发、商用、版权声明保留和衍生作品发布等具体条件。
在许可证正文得到核验前,不应把“开源免费学习”扩大解释为“允许无条件商用或再分发”。商业使用、培训材料再发布、代码修改后分发以及第三方内容集成均应以仓库实际 LICENSE 文件、相关子目录声明和所使用依赖的许可证为准;官方仓库未提供该信息,建议以最新 README 和 LICENSE 为准。
局限性与已知限制
本项目资料覆盖面较广,但给定摘要没有提供完整工程运行信息。对于希望直接部署应用的读者,以下缺口会影响复现,需要在具体章节中逐项核验。
- 未提供统一 Python 版本和完整依赖锁定信息。
- 未提供统一启动命令、服务端口和生产部署文件。
- 未提供模型供应商、模型版本、接口签名和费用说明。
- 未提供性能、并发、延迟、吞吐量或可用性数据。
- 未提供统一的日志、监控、权限和数据删除方案。
- 许可证元信息为
NOASSERTION,许可证条款需要进一步核验。
这些限制不是对教程内容质量的评价,而是根据当前给定资料能够确认的边界。教程中的章节状态均标为已完成,但“已完成”表示内容导航状态,不等于所有案例都具备相同的依赖、模型服务和部署条件。
适合谁
如果读者的目标是理解智能体从模型调用到多智能体应用的完整知识链路,本项目具有明确的学习顺序。以下信号表明它与需求匹配:
- 希望从大语言模型使用者转向智能体系统构建者,并愿意阅读理论与代码。
- 需要系统学习 ReAct、Plan-and-Solve、Reflection,而不是只使用现成流程模板。
- 计划研究记忆、RAG、上下文工程、MCP、A2A 或 ANP 等组成部分。
- 需要通过旅行助手、深度研究智能体或赛博小镇等综合案例练习多智能体协作。
- 希望为毕业设计、Agent 岗位面试或社区共创项目建立知识框架。
不适合谁
如果需求是立即获得带有明确部署参数和商业支持的生产系统,当前资料不足以证明本项目能直接满足。以下信号表明应先寻找更具体的工程方案,或只把本项目作为学习材料:
- 团队要求固定版本、容器镜像、SLA、监控告警和厂商支持,但仓库资料未提供这些承诺。
- 项目必须在离线环境运行,而目标章节又依赖外部模型服务或在线工具,且尚未完成替换验证。
- 团队没有 Python 开发能力,只接受可视化配置;此时应先评估 README 提到的 Coze、Dify 或 n8n 路径。
- 业务需要处理高敏感生产数据,却没有权限控制、审计、脱敏和隔离方案。
- 项目只需要单一固定流程,不需要理解智能体循环、记忆、协议和评估,完整教程的学习成本不符合目标。
这里涉及 Coze、Dify 和 n8n 的选择,仅限于 README 明确提到的替代路径。根据本文作者的经验判断,替代方案是否合适仍需结合数据、模型、部署和合规要求验证,不能仅依据名称做结论。
常见问题与排查(FAQ / Troubleshooting)
排查的第一原则是区分“文档阅读问题”“依赖安装问题”和“模型或工具运行问题”。资料未提供统一命令时,应先定位具体章节,再查看该章节的代码和说明。
问:项目是应用程序还是课程资料
答:根据 README,它是 Datawhale 社区的系统性智能体学习教程,包含 Markdown 文档、章节导航、社区精选和综合案例。它不应被直接理解为一个已经声明完整生产部署能力的单体应用。
问:应该从哪里开始
答:可以从“前言”开始,然后依次阅读第一章至第三章,再进入第四章的经典范式。若目标是快速了解平台使用,可阅读第五章;若目标是理解代码框架,可阅读第六章和第七章。
问:为什么无法直接给出安装命令
答:给定资料没有列出依赖文件、版本、安装脚本或统一入口。为避免虚构,本文只给出官方仓库克隆和在线文档访问的本地验证命令;具体实验命令以目标章节和最新仓库内容为准。
问:Python 版本和 API 密钥变量是什么
答:给定资料只确认主要语言为 Python,没有确认 Python 版本,也没有提供环境变量样例。API 密钥应使用授权服务提供的测试凭据,字段名和加载方式必须查阅对应章节,不能使用本文自行推测的名称。
问:如何确认获取的是默认分支
答:执行快速开始中的 git branch --show-current 查看当前分支。仓库资料声明默认分支为 main,但本地是否处于该分支仍以命令输出为准。
问:如何判断实验结果是否可靠
答:不要只看一次最终回答。应记录任务输入、规划过程、工具调用、最终输出和失败原因,并结合第十二章关于核心指标、基准测试与评估框架的内容建立重复测试方案。
问:社区精选与正文是什么关系
答:README 将社区贡献精选单独列出,内容包括面试题、上下文工程补充、Dify 操作流程、环境配置、Skill、GUI Agent、Web Agent 和旅行助手后训练等。它们是社区补充材料,阅读时仍应区分正文章节和扩展内容的适用范围。
社区贡献与扩展资料
项目允许社区通过 Pull Request(PR)贡献学习总结和实践内容,README 特别提到独立于正文的内容可以投稿至 Extra-Chapter。社区材料覆盖从面试问题到环境配置、Skill 写作、Agent 自进化和 Web Agent 实战等主题,适合在完成主线章节后按问题选择阅读。
- 共创毕业设计:面向社区协作的毕业设计项目。
- Agent 面试题总结与参考答案:面向岗位准备的问答材料。
- 上下文工程补充知识:扩展第九章相关内容。
- Dify 智能体创建流程:补充低代码平台实践。
- 环境配置:补充环境准备相关信息。
- Agent Skills、GUI Agent、Web Agent 与自进化:覆盖扩展主题和实践经验。
社区材料的具体代码、依赖和适用版本不在本文给定摘要中逐项展开。使用这些材料时,应检查其页面更新时间、引用的组件版本和与主线章节的兼容关系。
内容导航与学习成果
章节导航显示前言及第一章至第十六章的状态均为已完成。学习成果不是单一 API 的记忆,而是能够从任务定义出发,选择执行范式,组织记忆与上下文,接入协议,建立评估方法,并通过综合案例验证设计。
| 阶段 | 章节范围 | 可核查主题 | 产出方向 |
|---|---|---|---|
| 基础 | 前言至第三章 | 智能体、发展史、Transformer、提示和模型局限 | 概念模型和问题边界 |
| 构建 | 第四章至第七章 | 经典范式、低代码平台、代码框架、自研框架 | 可运行的学习型智能体实现 |
| 扩展 | 第八章至第十二章 | 记忆、RAG、上下文、协议、训练和评估 | 可解释、可连接、可评估的系统设计 |
| 案例 | 第十三章至第十五章 | 旅行助手、自动化深度研究、赛博小镇 | 综合应用原型 |
| 毕业设计 | 第十六章 | 完整多智能体应用 | 个人或社区共创项目 |
引用与事实边界
下述描述直接对应 README 对项目目标的表述:
“从基础理论到实际应用,全面掌握智能体系统的设计与实现。”
来源:README。
“全面掌握”是项目 README 中的课程定位表达,不是对读者学习结果、应用性能或工程交付的保证。本文涉及版本、端口、依赖、性能、SLA 和许可证条款时,均以给定资料能够确认的内容为边界;缺失信息明确保留为未提供。
项目地址与资源
以下链接均来自仓库资料或项目元信息,适合用于获取源码、阅读在线文档和查看官方项目页面。
- hello-agents GitHub 仓库:源码、章节文档、社区贡献和默认分支信息。
- Hello-Agents 国内加速文档:项目官网及在线阅读入口。
- Hello-Agents 国外访问文档:README 提供的在线阅读站点。
- Hello-Agents 文档导航:章节目录、学习路径和社区精选入口。
- HelloAgents 自研框架仓库:README 在自研框架条目中提供的相关仓库地址。
- Hello-Agents Trendshift 项目页面:README 中出现的项目统计页面。



