GitHub 项目与开源生态:Hermes Agent 学习地图
Agent 工程的学习曲线,一半在 Prompt 与编排,一半在 上游模型、工具协议与评测基准。本篇从 Hermes Agent 课程视角,把开源生态整理成 可执行的阅读顺序,避免「收藏 200 个 repo 却写不出一个稳定 Tool Call」。
一、模型与 Tool Use 基座
1.1 Nous Hermes 系列
| 项 | 说明 |
|---|---|
| 是什么 | Nous Research 发布的 Hermes 系列指令模型,强调 Function Calling / JSON 工具格式 与角色一致性,是本站「Hermes Agent」命名的灵感来源之一。 |
| 为什么值得学 | 开源权重可本地部署;工具调用格式与 OpenAI Tools 接近,便于迁移课表代码;社区有大量 fine-tune 与量化版本。 |
| Hermes 实践 | Day 1 用 Hermes 3 / Hermes 2 Pro 跑 快速开始 的 @tool 循环;对比同一 prompt 在 GPT-4o-mini 上的 TSA 差异。 |
| 典型链接 | NousResearch/Hermes-3-Llama-3.1-70B · Hermes-2-Pro · Nous GitHub |
阅读顺序: Model Card → Chat template → 是否支持 tools 参数 → 社区 GGUF(配合 Ollama)。
1.2 Qwen2.5(通义千问开源)
| 项 | 说明 |
|---|---|
| 是什么 | 阿里云开源的 Qwen2.5 系列,含 Instruct 与 Tool Call 优化 变体,中英文与代码能力均衡。 |
| 为什么值得学 | 国内部署友好;工具调用文档完善;长上下文适合 Day 4 记忆实验。 |
| Hermes 实践 | 用 Qwen2.5 复现 Day 3 DevOps Agent,对比 Hermes 模型在 中文 Active description 下的工具选择率。 |
| 典型链接 | QwenLM/Qwen2.5 · Hugging Face Qwen · Function calling 文档 |
1.3 Llama Tool Use(Meta)
| 项 | 说明 |
|---|---|
| 是什么 | Meta Llama 3.x 及生态中的 工具使用 训练与模板(含 JSON、自定义 tag)。 |
| 为什么值得学 | 工业界部署最广的开源基座;vLLM / Ollama 一等公民;理解官方 tool template 可减少解析 bug。 |
| Hermes 实践 | Day 1 对比 OpenAI Functions / Hermes tag / Llama 3 JSON 三种格式(见 intro);写统一 parse_tool_call() 适配层。 |
| 典型链接 | meta-llama/llama-models · Llama Recipes |
1.4 闭源参考(格式标准)
| 资源 | 学什么 |
|---|---|
| OpenAI Function Calling | JSON Schema 工具标准、parallel tool calls |
| Anthropic Tool Use | XML / structured tool 块、computer use 边界 |
这些不是 GitHub 项目,但是 BFCL / ToolBench 的判分依据,Day 6 必读。
二、编排框架:LangChain / AutoGen / CrewAI
2.1 LangChain
| 项 | 说明 |
|---|---|
| 是什么 | langchain-ai/langchain — 连接模型、工具、检索与 Agent 执行器的 Python/JS 生态;LangGraph 提供状态图编排。 |
| 为什么值得学 | 文档量大、社区示例多;bind_tools + AgentExecutor 与 Hermes 课表 Day 1 一致;LangSmith 可观测。 |
| Hermes 实践 | 实现 开发指南 §四 线性/条件/并行链;Inspector 字段对齐 LangSmith trace。 |
| 典型链接 | langchain · langgraph · langchain-community |
读 repo 技巧: 先看 libs/core 的 tool 抽象,再看 langgraph/prebuilt 的 create_react_agent,避免陷入旧版 Agent API。
2.2 AutoGen(Microsoft)
| 项 | 说明 |
|---|---|
| 是什么 | microsoft/autogen — 多 Agent 对话、群聊、代码执行与工具注册。 |
| 为什么值得学 | Day 2 专家委员会 / Handoff 的参考实现;ConversableAgent 显式 message passing。 |
| Hermes 实践 | 心理咨询工作室:Reception + Specialist + Supervisor 三 Agent;对比自研 Handoff JSON(development §3.2)。 |
| 典型链接 | autogen · autogen-studio |
注意: 多 Agent 易 对话振荡;必须设 max_round、终止词与工具权限差分。
2.3 CrewAI
| 项 | 说明 |
|---|---|
| 是什么 | crewAIInc/crewAI — 角色(Role)+ 任务(Task)+ 流程(Process)的高层多 Agent 框架。 |
| 为什么值得学 | YAML 定义 Persona,接近本站 五层 Prompt 思想;适合 Day 2 快速原型。 |
| Hermes 实践 | 把 Crew 的 Role goal/backstory 映射到 Identity/Expertise/Constraints 三层;用 sequential process 模拟 Handoff。 |
| 典型链接 | crewAI · crewAI-tools |
| 框架 | 多 Agent | 工具链 | 学习曲线 | Hermes 课日 |
|---|---|---|---|---|
| LangChain | 需 LangGraph | 强 | 中 | Day 1, 3, 5 |
| AutoGen | 原生 | 中 | 中高 | Day 2, 6 |
| CrewAI | 原生 | 中 | 低 | Day 2 原型 |
三、工具协议与执行环境:MCP / E2B / Playwright
3.1 MCP(Model Context Protocol)
| 项 | 说明 |
|---|---|
| 是什么 | modelcontextprotocol — Anthropic 发起的 工具服务器标准,通过 stdio/SSE 暴露 resources、tools、prompts。 |
| 为什么值得学 | 工具与 Agent 解耦;Day 3 工具爆炸时的治理方案;与 Cursor、Claude Desktop 生态互通。 |
| Hermes 实践 | 将 GitHub / Postgres / Filesystem 拆成独立 MCP Server;Agent 仅保留 orchestrator + Hermes 模型。 |
| 典型链接 | spec · servers · python-sdk · typescript-sdk |
3.2 E2B(代码沙箱)
| 项 | 说明 |
|---|---|
| 是什么 | e2b-dev/e2b — 云端 Firecracker 微 VM,为 Agent 提供隔离 Python/JS 执行。 |
| 为什么值得学 | Day 3/6 自定义工具安全 标配;替代危险 exec();可配网络隔离。 |
| Hermes 实践 | 实现 development §5.3 run_untrusted_python;红蓝对抗中限制蓝方只能跑 E2B。 |
| 典型链接 | e2b · E2B docs · code-interpreter |
3.3 Playwright
| 项 | 说明 |
|---|---|
| 是什么 | microsoft/playwright — 跨浏览器自动化,支持 headless、网络拦截、截图。 |
| 为什么值得学 | Day 3 多模态与感知工具;WebArena 类 benchmark 的底层;比纯 curl 更适合 SPA。 |
| Hermes 实践 | 封装 playwright_snapshot 工具(见 development §7.2);容器内跑,禁内网 URL。 |
| 典型链接 | playwright-python · playwright-mcp(MCP 桥接示例) |
四、记忆与知识存储:Pinecone / Milvus / Neo4j
4.1 Pinecone
| 项 | 说明 |
|---|---|
| 是什么 | 托管向量数据库,pinecone-io/pinecone-python-client。 |
| 为什么值得学 | Day 4 语义记忆 最快上手;免运维;适合毕业项目 MVP。 |
| Hermes 实践 | 用户画像 + RAG 文档双 namespace;会话结束写 episodic 摘要入 metadata。 |
| 典型链接 | pinecone-client · examples |
4.2 Milvus
| 项 | 说明 |
|---|---|
| 是什么 | milvus-io/milvus — 开源分布式向量库,适合大规模与私有化。 |
| 为什么值得学 | 生产可控;与 LangChain Milvus vectorstore 集成成熟;理解 HNSW/IVF 索引选项。 |
| Hermes 实践 | 自托管 Day 4 长期记忆 Agent;对比 Pinecone 延迟与 recall@k。 |
| 典型链接 | milvus · pymilvus · attu 可视化 |
4.3 Neo4j
| 项 | 说明 |
|---|---|
| 是什么 | neo4j/neo4j — 属性图数据库,适合 关系型知识 与 程序记忆 图谱。 |
| 为什么值得学 | Day 4 扩展:实体关系(用户—项目—工具链)比纯向量更可解释;GraphRAG 热点。 |
| Hermes 实践 | 存储成功 task_signature → tool_chain 边;相似任务时 graph 遍历 + 向量 hybrid。 |
| 典型链接 | neo4j · langchain-neo4j · LLM Graph Builder |
| 存储 | 擅长大头 | Hermes 记忆层 |
|---|---|---|
| Pinecone | 托管、快启动 | Semantic |
| Milvus | 规模、私有化 | Semantic |
| Neo4j | 关系、路径 | Procedural + 知识图谱 |
五、评测基准:BFCL / ToolBench / AgentBench / WebArena
5.1 Berkeley Function Calling Leaderboard (BFCL)
| 项 | 说明 |
|---|---|
| 是什么 | ShishirPatil/gorilla 生态中的 函数调用排行榜(BFCL V1–V3),测 AST 解析、多函数、并行调用。 |
| 为什么值得学 | Day 6 量化 TSA/AVR 的行业参考;改 tool description 后跑子集验证。 |
| Hermes 实践 | 选 50 条与业务接近的 BFCL 用例作为回归集;接入 CI。 |
| 典型链接 | gorilla · BFCL 页面 |
5.2 ToolBench
| 项 | 说明 |
|---|---|
| 是什么 | OpenBMB/ToolBench — 大规模 API 工具学习数据集与 ToolLLM 训练 pipeline。 |
| 为什么值得学 | 理解「工具数量 ↑ 时模型为何崩」;学习自动数据构造与 depth-first search 决策。 |
| Hermes 实践 | 借鉴其 Tool Graph 广度 思想 ,限制在线 Agent 同时暴露工具数 ≤8。 |
| 典型链接 | ToolBench · ToolEval |
5.3 AgentBench
| 项 | 说明 |
|---|---|
| 是什么 | THUDM/AgentBench — 多环境 Agent 能力评测(OS、DB、知识图谱等)。 |
| 为什么值得学 | Day 6 全链路能力对照;非单一 tool call,而是 长程任务成功率。 |
| Hermes 实践 | 选 OS 或 DB 子集,对比 Plan-and-Execute vs ReAct+ 步数与成功率。 |
| 典型链接 | AgentBench |
5.4 WebArena
| 项 | 说明 |
|---|---|
| 是什么 | web-arena-x/webarena — 真实网站环境下的 自主 Agent _benchmark(Shopping、Admin、GitLab 等)。 |
| 为什么值得学 | 结合 Playwright;测 感知+规划+工具 综合;接近生产 Web Agent。 |
| Hermes 实践 | 用 Playwright 工具复现简化版任务;红队注入恶意页面元素。 |
| 典型链接 | webarena · VisualWebArena |
| Benchmark | 测什么 | Hermes 课日 |
|---|---|---|
| BFCL | 函数调用正确性 | Day 1, 6 |
| ToolBench | 多 API 规划 | Day 3, 6 |
| AgentBench | 多环境长任务 | Day 5, 6 |
| WebArena | 真实 Web | Day 3, 6 |
六、推理 Serving:vLLM / Ollama
6.1 vLLM
| 项 | 说明 |
|---|---|
| 是什么 | vllm-project/vllm — 高吞吐 LLM 服务,PagedAttention,适合 Hermes / Qwen / Llama 批量 tool call 推理。 |
| 为什么值得学 | 毕业项目 Day 7 部署;OpenAI 兼容 API;多 GPU。 |
| Hermes 实践 | 本地起 vLLM → LangChain ChatOpenAI(base_url=...) → 对接 Inspector。 |
| 典型链接 | vllm · docs |
6.2 Ollama
| 项 | 说明 |
|---|---|
| 是什么 | ollama/ollama — 本地一键拉模型、REST API,开发机友好。 |
| 为什么值得学 | Day 1 零成本试 Hermes/Qwen GGUF;离线演示。 |
| Hermes 实践 | ollama run hermes3 后跑快速开始;对比 vLLM 延迟与 tool JSON 稳定性。 |
| 典型链接 | ollama · library |
七、索引与合集:Awesome Agents
| 项 | 说明 |
|---|---|
| 是什么 | 社区维护的 Agent 资源列表,如 e2b-dev/awesome-ai-agents、kaushikb11/awesome-llm-agents、WooooDyy/LLM-Agent-Paper-List。 |
| 为什么值得学 | 发现新框架与论文;但 易信息过载。 |
| Hermes 实践 | 仅订阅与课表相关的 4 类:编排、MCP、Benchmark、Sandbox;每类深入 1 个 repo 胜过浅读 50 个。 |
** disciplined 阅读法:**
- 从 Awesome 列表点进项目 → 看 README 是否含 限幅/评测/安全。
- 跑通 quickstart → 映射到 Hermes 七天某一天。
- 写 200 字笔记进学习日志,否则等于没读。
八、按 Hermes 七天串联开源学习路径
| 天数 | 优先 clone/阅读 | 验收动作 |
|---|---|---|
| Day 1 | LangChain, Ollama, Gorilla/BFCL | 本地 tool call 通过率 |
| Day 2 | AutoGen 或 CrewAI | 三 Agent 流水线 |
| Day 3 | MCP servers, Playwright, E2B | 1 MCP + 1 浏览器工具 |
| Day 4 | Pinecone/Milvus client | 跨会话 RAG 召回 |
| Day 5 | AgentBench 文档 | Plan-and-Execute 报告 |
| Day 6 | WebArena, ToolBench 论文 | 红蓝 + benchmark 表格 |
| Day 7 | vLLM | OpenAI 兼容 endpoint |
九、本站文档索引
| 文档 | 内容 | 建议读者 |
|---|---|---|
| 入门介绍 | 定位、架构、Tool Graph、七天地图 | 全员 Day 0 |
| 快速开始 | 首个 Agent、Inspector、Retry | Day 1 |
| 开发指南 | 工具描述、五层 Prompt、多 Agent、推理、记忆 | Day 2–6 |
| 最佳实践 | 生产、成本、审批、可观测 | Day 6–7 |
| 从零到一 | 7 天路径与验收 | 按课表 |
| 常见问题 | 格式混用、漂移、MCP | 遇错时 |
| GitHub 项目与资源 | 本文 |
文档 ZIP: 探索页 Hermes 卡片「文档」按钮可下载 hermes-docs.zip,便于离线阅读。
十、七天子站资源(https://hermes.chenxiaoshivivid.top/)
| 区块 | URL 锚点 | 作用 |
|---|---|---|
| 首页 | hermes.chenxiaoshivivid.top | 课程总览与导航 |
| 课表 Curriculum | #curriculum | Day 1–7 Morning/Afternoon/Evening |
| Persona Lab | 子站 labs | Day 2 五层 Prompt 与漂移实验 |
| Code Sandbox | 子站 labs | Day 3 自定义工具与 E2B |
| Tool Call Inspector | 子站 labs | 对齐 development §十一 trace 字段 |
| Memory Lab | 子站 labs | Day 4 向量记忆与压缩 |
| Research Sandbox | 子站 labs | Day 5 Plan-and-Execute |
| Red Team Deck | 子站 labs | Day 6 红蓝对抗 |
| 社区 | 子站 community | Evening 答疑与项目展示 |
文档 ↔ 子站原则: 文档站 = 可检索原理与检查表;子站 = 可点击实验。读完 BFCL 论文摘要不如在 Inspector 里改一行 description 看 TSA 变化。
十一、Contributing 与许可证提醒
- 许可证: 各 repo 以 MIT/Apache 2.0 为主;模型权重 另有 use policy(Llama、Qwen、Hermes 各不同),商用前必读 Model Card。
- 安全: 勿把 API Key 写进 fork 的示例;E2B/Playwright 沙箱仍需 网络与路径 allowlist。
- 贡献 upstream: 若你改进了 tool description 或 benchmark 用例,可向 Gorilla、MCP servers 提 PR;Hermes 课表欢迎在本站 community 分享笔记。
十二、小结:从收藏到能力
开源生态不是「星标排行榜」,而是 与 Hermes 七天课表对齐的能力栈:
- 模型层 — Nous Hermes / Qwen2.5 / Llama 选一个跑通 Tool Call。
- 编排层 — LangChain 打底,AutoGen/CrewAI 补多 Agent。
- 工具层 — MCP 解耦,E2B/Playwright 补安全与感知。
- 记忆层 — Pinecone 或 Milvus + 可选 Neo4j。
- 评测层 — BFCL 回归,AgentBench/WebArena 查长程短板。
- Serving — Ollama 开发,vLLM 上线。
下一步:打开 七天子站课表,选 Day 1 的 3 个 repo(LangChain、Ollama、Gorilla),在 快速开始 代码旁并排运行。当你能用一张表说清「这个 GitHub 项目对应 Tool Graph 的哪条边」,你就完成了本篇的学习目标。