Hello-Agents 共创项目实战指南:从智能体应用开发到开源贡献的完整流程
【免费下载链接】hello-agents📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程项目地址: https://gitcode.com/GitHub_Trending/he/hello-agents
《从零开始构建智能体》(Hello-Agents)教程的Co-creation-projects共创项目区,是学习者将前十六章所学(智能体范式、工具系统、记忆机制、通信协议等)转化为真实作品的展示与协作空间。本文以该共创项目区规范为骨架,完整讲解从项目选题、命名、目录结构搭建、Notebook 开发、README 撰写,到 Fork 仓库并提交 Pull Request 的全流程,并结合仓库内的项目模板、框架源码与社区真实作品,给出可复制、可运行的实战方案。读完本文,你将掌握一套标准的智能体应用开源交付流程,能够独立完成一个符合规范的共创项目。
一、共创项目区是什么:学习者作品的展示与协作空间
Co-creation-projects目录是 Hello-Agents 仓库中专为学习者开辟的作品集区域,定位非常明确:这里是学习者展示自己多智能体应用的地方。与教程正文的code/(各章随堂代码)和docs/(章节文档)不同,这里的每个子目录都是一位社区成员从零开发、独立维护的完整项目。
从仓库目录结构可以看到,该区域已经沉淀了大量形态各异的作品,覆盖从单文件脚本到前后端分离的全栈应用:
- 基于 Notebook 的轻量项目:如 1zrj-DataAnalysisAgent(数据分析)、Henry2513-MeetingActionAgent(会议行动项提取)、jjyaoao-CodeReviewAgent(代码审查);
- 含完整后端与前端的项目:如 aatanxiao12-beep-YingQian(FastAPI 后端 + React/TypeScript 前端)、afei-GuessWhoAmI(猜人物游戏,前后端分离);
- 甚至自研框架级项目:如 YYHDBL-HelloCodeAgentCli(基于 HelloAgents 二次开发的 CLI 智能体框架)。
这些作品的共同点是:以 HelloAgents 框架(或其范式思想)为底座,解决一个具体问题,并且全部遵循统一的项目组织规范,这也是本文要展开的核心内容。
二、动手前的规划:选题与命名规范
2.1 项目命名规范
共创项目区对项目文件夹命名有硬性约束,格式固定为:
{GitHub用户名}-{项目名称}例如:
jjyaoao-CodeReviewAgentzhangsan-StudyBuddylisi-DataAnalyst
命名即身份:前缀绑定 GitHub 账号保证项目归属清晰、便于溯源;后缀描述项目功能,让读者仅凭目录名即可判断项目主题。这一点与 docs/chapter16/第十六章 毕业设计.md 中毕业设计项目的命名要求完全一致(第 16.1.2 节),共创项目本质上就是毕业设计作品的承载形态。
2.2 选题原则与推荐方向
毕业设计章节(16.2 节)给出了明确的选题原则:项目应具有实用性,解决真实问题而不是为了技术而技术,同时要在有限的时间和资源内可以完成,并能清晰展示技术能力。
共创项目区官方将作品划分为五大类,每一类都有对应的真实作品作为参考:
| 分类 | 方向举例 | 仓库中的代表项目 |
|---|---|---|
| 生产力工具 | 代码审查、文档生成、会议纪要、邮件助手 | jjyaoao-CodeReviewAgent |
| 学习辅助 | 学习伙伴、论文助手、编程导师、语言学习 | chengH425-PaperAssistant、chen070808-ProgrammingTutor |
| 创意娱乐 | 故事生成、游戏 NPC、音乐推荐、菜谱 | lgs-only-NovelGenerator |
| 数据分析 | 数据分析、股票分析、舆情监控、竞品分析 | 1zrj-DataAnalysisAgent、CC1227871-StockInsightAgent |
| 生活服务 | 健康助手、理财助手、购物助手、家居控制 | Shawnxyxy-HealthRecordAgent |
以毕业设计章节中的"智能代码审查助手(CodeReviewAgent)"选题示例来看,一个合格的选题需要同时想清楚三件事:
- 问题分析:代码审查是软件开发的重要环节,但人工审查耗时且易遗漏,静态分析工具只能发现语法错误、无法理解语义,因此需要一个能理解代码逻辑的 LLM 智能助手;
- 核心功能:代码质量分析(风格、命名、注释)、潜在 bug 检测、性能优化建议、最佳实践推荐;
- 预期成果:可运行的 Notebook 展示完整审查流程,输出结构化的 Markdown 审查报告。
社区真实项目 jjyaoao-CodeReviewAgent 正是该选题的落地:通过CodeAnalysisTool(Python AST 解析结构)与StyleCheckTool(PEP 8 风格检查)两个工具配合SimpleAgent,实现了代码结构分析、风格检查、LLM 深度建议与报告生成四合一的能力。
三、项目结构标准:最小必备三件套
共创项目区对每个项目的最基本要求是包含三个必备文件:
你的用户名-项目名称/ ├── README.md # 项目说明文档(必需) ├── requirements.txt # Python依赖列表(必需) ├── main.ipynb # 主要的Jupyter Notebook(必需) └── ... # 其他文件(可选)- README.md:项目的门面,承担"让读者三分钟看懂项目"的职责;
- requirements.txt:完整声明 Python 依赖,保证
pip install -r requirements.txt即可复现运行环境; - main.ipynb:可运行的 Jupyter Notebook,是项目功能的主载体,要求"打开即可运行、按序执行即可复现结果"。
除此之外,社区项目普遍还会补充以下可选目录(参见 jjyaoao-CodeReviewAgent 与毕业设计章节 16.3.3 节的推荐结构):
你的用户名-项目名称/ ├── .env.example # 环境变量示例(API 密钥占位) ├── .gitignore # Git 忽略规则(忽略 .env、大文件、输出) ├── data/ # 示例数据(只放小规模样例) ├── outputs/ # 输出结果(报告、截图、图表) └── src/ # 代码较多时拆分的源码包(agents/tools/utils)其中.env.example与.gitignore虽然不在"三件套"硬性要求中,但几乎所有高质量项目都会包含:前者让使用者知道需要配置哪些环境变量,后者防止 API 密钥与输出文件被误提交到仓库。
四、用官方模板快速起步
共创项目区提供了官方起点 EXAMPLE-ProjectTemplate,包含一份标准的 README 模板 与一份可直接套用的 main.ipynb。
4.1 README 模板的结构拆解
模板要求 README 至少覆盖以下板块,每个板块都有明确目的:
| 板块 | 目的 |
|---|---|
| 项目名称 + 一句话简介 | 让读者 3 秒内判断项目是否相关 |
| 项目简介 | 说明解决什么问题、特色功能、适用场景 |
| 核心功能 | 以勾选清单列出功能点 |
| 技术栈 | 声明使用的框架、范式(ReAct、Plan-and-Solve 等)、工具与 API |
| 快速开始 | 环境要求 → 安装依赖 → 配置 API 密钥 → 运行项目 |
| 使用示例 | 代码示例与运行结果 |
| 项目亮点 / 性能评估 | 突出技术特色;有评测数据则如实展示 |
| 未来计划 / 贡献指南 / 许可证 / 作者 / 致谢 | 项目的社区化收尾 |
其中"快速开始"是模板着墨最多的部分,标准流程为:
# 1. 安装依赖 pip install -r requirements.txt # 2. 创建 .env 文件并填入 API 密钥 cp .env.example .env # 编辑 .env 文件: # OPENAI_API_KEY=your_key_here # 3. 启动 Jupyter 并运行 main.ipynb jupyter lab环境要求模板中明确写有Python 3.10+,这也是 Hello-Agents 教程全书的运行基准版本。
4.2 Notebook 模板的六段式结构
模板 main.ipynb 将项目 Notebook 划分为六个逻辑段落,这套结构被社区大量作品沿用:
- 项目介绍(Markdown):项目名称、简介、作者信息(姓名、GitHub、日期);
- 环境配置:安装依赖、导入
hello_agents库、load_dotenv()加载环境变量; - 工具定义:继承
BaseTool编写自定义工具类; - 智能体构建:创建
HelloAgentsLLM、定义系统提示词、实例化SimpleAgent并注册工具; - 功能演示:多个示例输入验证基础功能与复杂场景;
- 性能评估(可选)+ 总结与展望:评测指标,以及实现的功能、遇到的挑战、未来改进方向。
模板中的核心代码骨架如下:
from hello_agents import SimpleAgent, HelloAgentsLLM from hello_agents.tools import BaseTool import os from dotenv import load_dotenv load_dotenv() class CustomTool(BaseTool): """自定义工具类""" name = "tool_name" description = "工具描述" def run(self, query: str) -> str: """工具执行逻辑""" return f"处理结果:{query}" llm = HelloAgentsLLM() system_prompt = """你是一个智能助手。 你的任务是: 1. 理解用户的需求 2. 使用合适的工具 3. 提供有帮助的回答 """ agent = SimpleAgent( name="示例智能体", llm=llm, system_prompt=system_prompt ) agent.add_tool(CustomTool()) result = agent.run("你的测试输入") print(result)五、框架源码层面的纵深:理解你正在使用的 API
共创项目的开发质量,取决于对 HelloAgents 框架核心 API 的理解程度。main.ipynb模板中的几行导入语句,背后是框架最核心的组件:
from hello_agents import SimpleAgent, HelloAgentsLLM, ToolRegistry from hello_agents.tools import Tool, ToolParameter5.1 SimpleAgent:范式封装与可扩展基类
SimpleAgent是教程第七章构建的框架核心类,封装了"接收输入 → 组装消息 → 调用 LLM → 返回响应"的基础对话链路,并支持工具注册与调用。框架同时开放了继承扩展的能力——code/chapter7/my_simple_agent.py 演示了如何基于SimpleAgent基类重写run()方法,实现带多轮工具调用(max_tool_iterations循环)与流式输出(stream_run)的自定义智能体。共创项目中,凡是需要非标准交互逻辑的场景,都可以参考这种"继承基类 + 重写运行方法"的模式。
5.2 Tool / BaseTool / ToolParameter:工具系统的三个层次
框架的工具体系存在两套 API 形态,共创项目中均有使用:
- 声明式:继承
BaseTool(模板所用),声明name、description类属性并实现run(query)方法,适合快速原型; - 参数化:继承
Tool并实现run(parameters: Dict)与get_parameters() -> List[ToolParameter](毕业设计章节示例所用),通过ToolParameter(name, type, description, required)显式声明参数 Schema,更适合工具需要结构化参数、可被 LLM 可靠调用的场景。
以 jjyaoao-CodeReviewAgent 的CodeAnalysisTool为例:工具在run()内部使用 Python 标准库ast解析代码,统计函数数、类数、代码行数并捕获SyntaxError;StyleCheckTool则逐行检查 79 字符上限与缩进规范。这两个工具没有调用任何 LLM,是纯确定性逻辑,恰好演示了共创项目中"确定性工具负责硬规则,LLM 负责语义理解"的分工原则——工具把客观事实(结构统计、风格问题)交给模型,模型基于这些事实生成深度审查意见,避免模型凭空编造代码指标。
5.3 ToolRegistry:工具注册与编排
tool_registry = ToolRegistry() tool_registry.register_tool(CodeAnalysisTool()) tool_registry.register_tool(StyleCheckTool()) agent = SimpleAgent( name="代码审查助手", llm=llm, system_prompt=system_prompt, tool_registry=tool_registry )ToolRegistry负责工具的注册、描述汇总(get_tools_description,用于注入系统提示词)与按名执行(execute_tool)。当智能体配置了tool_registry后,LLM 才能在对话中按需调用工具,形成"感知 → 决策 → 行动 → 观察"的闭环。
5.4 LLM 接入配置:以环境变量解耦
框架通过环境变量统一管理 LLM 接入,社区项目普遍遵循 ModelScope 兼容的配置范式:
LLM_MODEL_ID=Qwen/Qwen2.5-72B-Instruct LLM_API_KEY=your_api_key_here LLM_BASE_URL=https://api-inference.modelscope.cn/v1/ LLM_TIMEOUT=60推荐两种配置方式:
.env文件(推荐):cp .env.example .env后编辑,配合python-dotenv的load_dotenv()在 Notebook 首格加载;- Notebook 内直接设置:
os.environ["LLM_MODEL_ID"] = "..."等方式写入环境变量,适合快速演示。
.env文件必须加入.gitignore,仅提交.env.example占位模板,避免密钥泄露。
六、开发规范与质量门槛
6.1 提交前的自检清单
毕业设计章节(16.4.4 节)提供了一份提交前自检清单,可直接作为共创项目的验收标准:
- 代码能够正常运行,没有报错
- README 文档完整,说明清晰
- requirements.txt 包含所有依赖
- 有清晰的使用示例
- 代码有适当的注释
- 输出结果符合预期
- 处理了常见的异常情况
- 项目结构清晰,文件命名规范
- 大文件已妥善处理
6.2 大文件处理规范
为保持主仓库轻量化,共创项目对大文件有明确限制:
- 项目总大小不超过 5MB;
- 禁止直接提交视频文件、大型数据集、模型文件。
若项目确实包含大资源,官方提供三种处理方案:
- 外部链接(推荐):将数据集上传百度网盘、Google Drive、Kaggle、HuggingFace Datasets,视频上传 B 站、YouTube,模型上传 HuggingFace Models、ModelScope,在 README 中给出下载说明;
- 独立资源仓库:为资源较多的项目单独创建
项目名称-resources仓库,README 中给出git clone与数据摆放说明; - 仅提交示例数据:主仓库只放小规模样例(如 100 条记录的
sample.csv),README 中注明完整数据集的获取方式。
最佳实践形态是:data/下仅保留 <1MB 示例数据,outputs/下仅保留演示结果图片。
6.3 requirements.txt 编写要点
# 核心依赖 hello-agents[all]>=0.2.7 # 可视化(如果需要) matplotlib>=3.7.0 plotly>=5.14.0 # Web框架(如果需要) fastapi>=0.109.0 uvicorn>=0.27.0建议标注主版本下限(>=),按"核心依赖 → 可视化 → Web 框架"分组并加注释,便于维护者理解每个依赖的用途。可参考社区作品各自的 requirements.txt 实际写法。
七、从 Fork 到 Pull Request:完整的开源贡献流程
共创项目的提交完全走开源协作标准流程,以下按顺序展开(对应毕业设计章节 16.3~16.5 节)。
7.1 环境准备
# 安装 HelloAgents 框架(含全部可选依赖) pip install "hello-agents[all]" # 检查并配置 Git 用户信息 git config --global user.name "你的名字" git config --global user.email "你的邮箱" # 安装 JupyterLab(推荐) pip install jupyterlab jupyter lab7.2 Fork 与克隆
- 访问 Hello-Agents 仓库,点击右上角Fork,将副本创建到自己的账号下;
- 克隆自己 Fork 的仓库到本地,并添加上游仓库以便同步更新:
git clone git@github.com:你的用户名/hello-agents.git cd hello-agents git remote add upstream <Hello-Agents上游仓库地址> git remote -v- 创建独立开发分支,避免污染主分支:
git checkout -b feature/你的项目名称 # 例如: git checkout -b feature/code-review-agent7.3 在共创目录中开发
cd Co-creation-projects mkdir 你的用户名-项目名称 cd 你的用户名-项目名称在此目录内完成三件套开发、README 编写、自检与本地测试(jupyter lab运行main.ipynb逐格验证)。
7.4 提交与推送
# 查看改动 git status # 添加文件(推荐只添加项目目录) git add Co-creation-projects/你的用户名-项目名称/ # 提交,信息遵循 Conventional Commits 风格 git commit -m "feat: 添加XXX毕业设计项目" # 推送到自己的 Fork git push origin feature/你的项目名称提交信息类型规范:feat(新增功能或项目,毕业设计项目使用此类型)、fix(修复 bug)、docs(文档更新)、style(格式调整)、refactor(重构)、test(测试)、chore(其他修改)。
7.5 创建 Pull Request
PR 的关键约定有两点,务必遵守:
① PR 标题统一格式
[毕业设计] 项目名称 - 简短描述例如:
[毕业设计] CodeReviewAgent - 智能代码审查助手[毕业设计] StudyBuddy - AI学习伙伴[毕业设计] DataAnalyst - 智能数据分析师
统一标题格式是为了让所有毕业设计/共创项目在 PR 列表中可检索、可管理。
② PR 分支选择
- Base repository:
hello-agents主仓库,Base branch:main - Head repository:你自己的 Fork,Compare branch:
feature/你的项目名称
③ PR 描述建议包含:项目名称与作者、项目类型(生产力工具/学习辅助/创意娱乐/数据分析/生活服务)、项目简介、核心功能、技术亮点、演示效果截图、自检清单(代码可运行、README 完整、requirements.txt 完整、有使用示例、有注释)。
7.6 响应 Review 与合并
提交 PR 后,社区成员会进行代码 Review 并提出改进建议。正确应对方式是:查看评论 → 修改代码 → 以fix: 根据review意见修改XXX之类的提交信息推送更新 → 在 PR 中回复说明修改内容。通过评审后,项目会被合并进主仓库的Co-creation-projects目录,成为共创项目区的一员。
八、从模板到真实作品:社区项目赏析
模板是骨架,真实作品才是血肉。以下三个项目分别代表不同复杂度层级,可作为你创作时的对标参照。
8.1 标准形态:CodeReviewAgent(生产力工具)
jjyaoao-CodeReviewAgent 是毕业设计章节官方引用的完整示例:Notebook 内分 0~7 部分组织(快速演示、LLM 配置、工具定义、注册表构建、智能体创建、示例运行、报告落盘),将待审代码放入data/sample_code.py后运行,即可在outputs/review_report.md得到结构化审查报告。它的 README 严格遵循模板章节顺序(简介 → 功能 → 技术栈 → 快速开始 → 使用示例 → 亮点 → 结构 → 技术实现 → 示例输出 → 未来改进),是"README 规范"的范本。
8.2 数据驱动形态:DataAnalysisAgent(数据分析)
1zrj-DataAnalysisAgent 展示了另一类典型:数据清洗工具(DataCleaningTool,按用户指定规则清洗表格)与数据统计工具(DataStatisticsTool,提供描述性统计分析)配合SimpleAgent,将 Excel 数据转化为 ECharts 图表(outputs/echarts.html)与 Markdown 分析报告(outputs/report.md)。这类项目的价值在于演示了"LLM 决策 + 确定性工具执行"如何端到端打通数据流水线。
8.3 全栈形态:YingQian(后端 + 前端)
aatanxiao12-beep-YingQian 将共创项目的边界推到了工程化全栈:后端基于 FastAPI(backend/pyproject.toml、backend/run.py),前端基于 React + TypeScript + Vite(frontend/),并配有main.ipynb承载核心演示。它说明共创项目并不局限于 Notebook——只要"三件套"齐备、结构清晰、可复现运行,任何复杂度形态的作品都欢迎。
九、交流与许可证
9.1 交流与反馈渠道
共创项目区官方提供的交流方式包括:在 Issue 中提问、加入 Datawhale 社区讨论、参与社区项目的 Review。Review 既是他人帮你把关质量,也是你观摩学习其他作品实现思路的机会。
9.2 许可证
共创项目区所有作品统一遵循CC BY-NC-SA 4.0 License(知识共享-署名-非商业性使用-相同方式共享),欢迎学习与再创作,但需注明出处、不得用于商业用途、衍生作品需以相同许可协议发布。注意这与示例项目模板 README 中写的"MIT License"存在差异——提交共创项目时请以项目区统一的 CC BY-NC-SA 4.0 为准。
十、总结
从选题命名到三件套搭建,从模板套用到框架 API 的深度理解,从本地自检到 Fork-PR 开源协作,共创项目的完整链路并不复杂,但每一步都有明确的规范可循。核心要点可以浓缩为四句话:
- 命名即规范:
{GitHub用户名}-{项目名称},一眼可读; - 三件套兜底:README + requirements.txt + main.ipynb,缺一不可;
- 工具与 LLM 分工:确定性逻辑交给工具,语义理解交给 LLM,用
Tool/ToolParameter声明结构化接口; - 流程守约定:PR 标题
[毕业设计] 项目名称 - 简短描述,项目 ≤5MB、大文件走外部方案。
无论你的作品是几十行的原型,还是前后端齐全的全栈应用,只要亲自实现、结构合规、文档清晰,都值得被收录。正如毕业设计章节所言:"小的创意同样可以被收录,只要是自己动手的作品都是值得珍惜的。"现在,去Co-creation-projects目录下创建属于你的第一个共创项目吧。
【免费下载链接】hello-agents📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程项目地址: https://gitcode.com/GitHub_Trending/he/hello-agents
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考