对象: AutoGPT、LangChain(含 LangGraph / Deep Agents)、Hermes Agent
性质: 官方文档 + 仓库源码 + 本机安装交叉验证
研究日期: 2026-08-19(UTC)
本机对照基线: Hermes Agent v0.20.4(标签 2026.8.18),安装路径 /usr/local/lib/hermes-agent
方法: 多轮官方检索、全文抽取、GitHub API 元数据、本机源码核对;关键事实带编号引用。
三个项目经常被并列为“开源 Agent 框架”,但它们解决的不是同一层问题。
create_agent 负责模型/工具/中间件循环,底层跑在 LangGraph 上;复杂长任务再叠 Deep Agents 这套现成 harness。[7][8][12][13]AIAgent 循环、内置工具与 skills、跨会话记忆、消息网关、cron、子代理。它不是“先写 Python 再拼出一个 agent”,而是装完就能从 CLI / Telegram / Discord 对话。[1][5][30]一句话选型:
GitHub API 在本研究拉取时刻返回的 star 数为:Hermes 232,691、AutoGPT 186,683、LangChain 144,518、LangGraph 39,987。[23][24][25][26] 星标只说明关注度,不能单独代表架构成熟度或生产可靠性。
用户给定样例为 AutoGPT、LangChain、Hermes。2026 年的 LangChain 不能再被简化成“Chain 拼接库”:官方已把产品线拆成 framework / runtime / harness 三层,对比时必须同时读 LangChain、LangGraph 与 Deep Agents,否则会把 2023 年的印象套到 1.0 之后的实现上。[12][15]
AutoGPT 同理:仓库里同时存在 classic/ 与 autogpt_platform/,许可证也不同。只读 2023 年博客会得到错误结论。[19][20]
agent.py、Platform executor/manager.py。v0.20.4 直接读 run_agent.py、agent/iteration_budget.py、toolsets.py、LICENSE。这一层用于发现“文档口径”和“已部署代码”的偏差。LangChain 官方把生态拆成三档:[12]
官方原话把公式写成 Agent = Model + Harness。create_agent 是“最小但可高度配置的 harness”:提示词、工具、以及改写循环行为的 middleware。[7][9]
2025 年 10 月,LangChain 与 LangGraph 同时到 v1.0。1.0 的核心卖点是:create_agent 建立在 LangGraph runtime 上,并用 middleware 做逐步控制。[15][28]
官方文档首页自称 “the only agent with a built-in learning loop”:从经验写 skill、使用中改 skill、主动把知识写入记忆、用 FTS5 搜历史会话、并对用户建模。[5][30]
架构页给出的入口不是 pip install 后自己 invoke,而是:
cli.py)gateway/run.py)全部汇入同一个 AIAgent(run_agent.py)。[1]
本机 LICENSE 为 MIT,版权行是 Copyright (c) 2025 Nous Research。仓库创建于 2025-07-22。[6][26]
官方 README 把产品写成四块表面:AutoPilot、Agents、Marketplace、Build。托管平台管基础设施、模型访问、凭据、可靠性和更新;自建则自己提供机器和模型 key。[16]
平台文档把架构收成两块:[17]
Agent 在这里的定义已经变了:agent 本质是你设计的自动化 workflow;Block 才是可连接的动作单元(外部服务、数据处理、模型、脚本、条件)。[17][27]
Classic 官方说得很硬:
This project is unsupported, and dependencies will not be updated.
If you want to use AutoGPT, you should use the AutoGPT Platform.[20]
Classic 的历史价值仍在:它是最早一批把“拆目标 → 调工具 → 根据结果再规划”做成可跑系统的实现之一。[20][21]
你买到的东西
默认用户
开源纯度
autogpt_platform/ 为 Polyform Shield,其余(含 Classic)为 MIT。[19]这是三者差异最大的一层。
官方把 AIAgent 定义为同步编排引擎,职责包括:拼系统提示、选 provider/API mode、可中断模型调用、执行工具、维护 OpenAI 风格消息、压缩、重试、fallback、刷记忆。[1][2]
一回合生命周期(官方):[2]
task_id,追加 user 消息_interruptible_api_calltool_calls 则执行并回到第 4 步;否则落盘并返回三种 API mode 最后都收敛到内部 OpenAI 风格 {role, content, tool_calls}:[2]
chat_completions:OpenAI 兼容codex_responses:Responses APIanthropic_messages:原生 Anthropic工具执行:单工具主线程;多工具 ThreadPoolExecutor 并发,交互式工具(如 clarify)强制串行;结果按原始顺序回填。[2]
部分工具在 registry 之前被 run_agent.py 截获:todo、memory、session_search、delegate_task。[2]
中断模型:API 在后台线程跑,主线程等 response / interrupt / timeout。用户新消息或 /stop 会丢弃未完成响应,不把半截内容写进历史。[2]
数据流入口(官方):[1]
HermesCLI.process_input() → AIAgent.run_conversation() → SessionDBAIAgent → 经 adapter 回传AIAgent,注入 attached skills,跑完投递本机核对:run_agent.py 第 412 行确有 class AIAgent,文件约 9051 行;构造器默认参数写的是 max_iterations: int = 90。与此同时,agent/iteration_budget.py 注释仍写父代理默认 500、子代理 delegation.max_iterations 默认 50,且 parent+children 总和可以超过父上限。官方 Agent Loop 文档也写默认 500。[2]
续跑二次核对(本机 /root/.hermes/config.yaml,2026-08-19):agent.max_turns: 120,delegation.max_iterations: 100,memory.memory_char_limit: 6600,memory.user_char_limit: 6600。
交叉验证结论: 文档/注释口径是 500;源码构造器字面量是 90;本机生效配置是 120 / 100。部署时必须以实际 config.yaml 为准,不能只信文档或构造器默认值。
官方定义:agent 是“模型在循环里调工具直到任务完成”;harness 是循环周围的一切——prompt、tools、middleware。[9]
最小形态:
from langchain.agents import create_agent
agent = create_agent(model="...", tools=tools, system_prompt="...")create_agent 返回的是编译好的 LangGraph。Middleware 不是另一套运行时,而是插在这张图上的 hook:before_model / after_model 以及工具前后。整颗 agent(含 middleware)可以再作为更大 StateGraph 的一个 node。[10][28]
1.0 的设计意图写得很明确:核心仍是 model node + tool node,但 middleware 可以在每一步改 state、换模型、过滤工具、提前跳转。[15][28]
预置 middleware 覆盖:工具错误转消息、工具重试、模型重试/fallback、摘要、HITL、PII、限流等。[10][28]
LangGraph 这一层提供的是编排原语,而不是再包一层 prompt 框架。官方强调可以在同一张图里混 确定性手写步骤 与 LLM 决策步骤,并给出持久化、HITL、流式、长任务恢复。[8] 灵感来自 Pregel / Beam,公共接口像 NetworkX。[8]
状态模型:AgentState 至少有 append-only 的 messages;可用 state_schema 加字段。调用时用 thread_id 续写同一对话,前提是编译了 checkpointer。[9][11]
Classic Agent.propose_action() 仍是“想一步、做一步”的自主环,但实现已经组件化:[21]
DirectiveProvider 管道,收集 resources / constraints / best_practicesCommandProvider 得到命令列表并剔除禁用项history.prepare_messages()(可跳过,例如 ReWOO 的 EXECUTING 阶段)MessageProvider 组消息prompt_strategy.build_prompt(...)complete_and_parse 调模型,cycle_count += 1源码里 union 的提案类型包括:OneShot、PlanExecute、ReWOO、Reflexion、TreeOfThoughts、LATS、Debate。[21] ReWOO 的 EXECUTING 阶段会抛 UseCachedActionException,跳过 LLM,直接用计划里缓存的动作。[21]
组件侧已经很“现代”:文件、Docker 代码执行、Git、Playwright、搜索、todo、skills(SKILL.md)、watchdog,以及可选的 Platform Blocks。[21] 这说明 Classic 后期并不是纯 2023 年的 JSON-thought 循环,但官方仍把它标成研究结束、依赖不再更新。[20]
autogpt_platform/backend/backend/executor/manager.py 导出 ExecutionProcessor 与 ExecutionManager。[22]
从 import 即可还原运行时形状:
GraphExecution / GraphExecutionEntry / NodeExecutionEntry / NodeExecutionResultLink、Node、get_blockpika(RabbitMQ)、redis、ExecutionQueueInsufficientBalanceError)、审核(ModerationError)、凭据租约、Prometheus、SentryAgentExecutorBlock、MCPToolBlock这是分布式工作流引擎:节点是 Block,边是数据/控制链接,执行被切成可排队的 node execution。它和 Hermes 的“一个同步循环打工具”不是同一算法,也和 LangGraph 的“进程内状态机 + checkpointer”不同——更接近带计费与市场的自动化平台。
Block SDK 要求每个 Block 声明 Input/Output schema,run() 里 yield 输出销;ProviderBuilder 管 API key / OAuth / 成本。[27]
谁决定下一步
Hermes / LangChain create_agent / Classic one-shot:模型。
LangGraph 自定义图 / AutoGPT Platform:图拓扑 + 条件边 / 链接;模型只出现在 AI Block 或 agent node。
失败后能否从中间恢复
LangGraph checkpointer 与 AutoGPT GraphExecution 是为此设计的。[8][11][22]
Hermes 按 session 落盘整段对话,中断当前 API 调用但不把半截写进历史;压缩会生成 child session lineage。[2]
确定性步骤
LangGraph 与 AutoGPT Block 图一等公民。
Hermes 靠 skill 文档、插件 hook、以及你自己在工具里写死的逻辑,而不是一张显式状态机。
官方:中央 tools/registry.py,文档口径 70+ tools / ~28 toolsets;终端后端 local / Docker / SSH / Daytona / Modal / Singularity / Vercel Sandbox(架构页也写过 6–7 个)。[1][30]
本机 toolsets.py 交叉验证(v0.20.4):
web、search、x_search、vision、video、image_gen、video_gen、bfl、computer_use、terminal、skills、browser、cronjob、file、tts、todo、memory、context_engine、session_search、project、desktop_ui、clarify、code_execution、delegation、homeassistant、kanban、discord、discord_admin、yuanbao、feishu_doc、feishu_drive、spotify、debugging、safe、codingtools/ 下约 122 个 .py 文件(含辅助模块,不等于 122 个对外工具)文档 70+/28 已经落后于本机 94/35。 写方案时以本机 hermes tools / toolsets.py 为准。
扩展通道:MCP 动态接入、插件 hook(pre_tool_call / post_tool_call)、skill 脚本、execute_code 里用 RPC 调工具。[1][2][4]
危险命令走 tools/approval.py,等 approval_callback。[2]
create_agent(..., tools=[...]) 接受 Python callable、LangChain tool 或 dict。[9]
MCP、文件系统、沙箱、解释器出现在 Deep Agents 层:ls / read_file / write_file / edit_file / glob / grep / execute,后端可换 memory / disk / store。[13]
这意味着:LangChain 核心很瘦,“像 Hermes 那样开箱即用的 90+ 工具”不是框架默认值,而是你或 Deep Agents 装上去的。换来的是:同一套 agent 可以嵌进任意业务 API,而不必接受 Hermes 的工具世界观。
中间件还可以在运行期过滤工具、做模型 fallback、HITL 拦截特定 tool name。[10]
平台把集成做成 Block,官方宣传托管面有 “45+ connected platforms and hundreds of AI models”。[16]
模型目录在仓库内 autogpt_platform/backend/backend/data/llm_registry/catalog.py,文档点名 OpenAI、Anthropic、Groq、Llama、AI/ML API 等。[17]
Classic 则是组件式 Command:WebSearch、Playwright、CodeExecutor(Docker 容器名带 agent_id)、Git、ImageGen、Skills 等。[21]
新 Block 放在 backend/blocks/,用 schema + run() 注册,可接 webhook / OAuth。[27]
官方记忆是两个有硬顶的文件,注入系统提示的冻结快照(为了 prefix cache,当轮写入要到下次会话才出现在 system prompt):[3]
MEMORY.md:环境/惯例/教训,文档默认 2,200 字符USER.md:用户画像,文档默认 1,375 字符本机当前配置把上限调到了 6,600(用户画像与记忆均是),说明这两个数字是 config.yaml 可改的,不是协议常数。写满不会自动压缩,memory 工具直接报错,要求模型当轮 replace/remove 腾位。[3]
另有:
skills_list → L1 skill_view(name) → L2 读 references/。复杂任务后可自动写 skill,使用中可 patch。[4][5]这是一条明确的学习闭环:执行 → 评价 → 沉淀 skill/memory → 下次按需加载。[5][30]
官方把持久化分成两种:[11]
内存实现(InMemorySaver)重启即丢;生产应换 Postgres / SQLite。[11]
create_agent 本地必须显式传 checkpointer 才能按 thread_id 续上;部署到 LangSmith Agent Server 时平台代管。[9]
Deep Agents 再叠:SummarizationMiddleware、MemoryMiddleware(如 AGENTS.md)、SkillsMiddleware、虚拟文件系统卸载大结果。[9][13]
对比 Hermes: LangGraph 的记忆是图状态基础设施(可恢复、可时间旅行);Hermes 的记忆是策展过的人格/环境摘要 + 独立检索库。前者强在工作流正确性,后者强在“下次打开还认识你”。
Classic:EpisodicActionHistory + ActionHistoryComponent(按 token 预算准备消息),工作区文件、todo、以及 ~/.autogpt/skills 的 SKILL.md。[21]
Platform:执行状态是 GraphExecution / 节点结果,属于工作流持久化,不是 Hermes 那种跨会话 USER.md。长期“记得用户是谁”要靠你在图里自己接存储 Block。文档主叙事是 continuous agents、触发器、可靠长跑,而不是人格记忆。[17]
delegate_task:隔离上下文的子代理;官方预算子代理默认 50 轮,独立于父预算。[2]hermes(tmux / hermes chat -q)做更长任务。HERMES_HOME,记忆/技能/网关隔离。[30]人机:clarify、危险命令 approval、可中断 API。[2]
官方列出五种,并给了调用次数/token 的粗算:[14]
Deep Agents 把 subagents、todo、filesystem 预装进 harness。[13][14]
HITL:LangGraph interrupt;LangChain HumanInTheLoopMiddleware 可按工具名拦截。[8][10]
Classic:ExecutionContext + DefaultAgentFactory,root agent 可 spawn 子 agent(parent_agent_id / depth)。[21]
Platform:图里的 AgentExecutorBlock 等于“图中嵌 agent”;Marketplace 提供现成团队/专家向工作流。执行器自带审核、余额、凭据租约,这是运营型多租户,而不是研究型辩论环。[22]
delegate_task 或 Deep Agents subagents。Hermes
单进程即可:CLI、gateway systemd、desktop、dashboard、ACP。终端后端可把执行甩到 Docker/SSH/Modal/Daytona。官方强调 5 美元 VPS 也能跑,闲时 serverless 接近零成本。[30]
本机即是 DigitalOcean VPS + hermes-gateway.service 的活体样本。
LangChain / LangGraph
库嵌入你的服务。生产向能力在 LangSmith:trace、eval、Agent Server 代管 checkpointer、LangSmith Engine 读 trace 提修复。[7][8][9]
这意味着“开源核心 + 商业控制面”是一等公民,不是事后插件。
AutoGPT
托管:platform.agpt.co,按 run 计费。[16]
自建:官方警告不要跟外部过时教程;依赖 Node、Docker、Docker Compose;可用 setup.agpt.co/install.sh。[18]
autogpt_platform/,限制与许可方竞争的商业使用;Classic / Forge / Benchmark 仍 MIT。[19]若产品形态接近“托管 agent 平台”,AutoGPT Platform 的许可证必须做法务审阅,不能因为它的 GitHub 星星多就当 Apache/MIT 用。
save_trajectories)、batch runner;官方还提研究向 trajectory 生成。[1][30]NousResearch/hermes-agent:创建 2025-07-22,Python,MIT,stars 232,691,forks 46,470。[26]Significant-Gravitas/AutoGPT:创建 2023-03-16,Python,license 字段 NOASSERTION(与双许可一致),stars 186,683,forks 46,053。[23]langchain-ai/langchain:创建 2022-10-17,Python,MIT,stars 144,518,forks 24,065。[24]langchain-ai/langgraph:创建 2023-08-09,Python,MIT,stars 39,987,forks 6,733。[25]Hermes 提交极密(本机文档树写过约 25,000 tests / 1,250 files;GitHub 页面同时显示上万 commit)。这支持“产品型单体仓库”判断,也解释了文档数字(70+ tools)会落后于 toolsets.py。
create_agent 就建在 LangGraph 上。[12][15]对照项:工具数量。官方文档 70+ / 约 28 个 toolset。[1] 本机 v0.20.4 的 toolsets.py 为 35 个 toolset、声明 94 个工具名。
对照项:迭代上限。官方文档默认 500。[2] 源码构造器字面量 90;IterationBudget 注释仍写 500/50。本机生效配置 agent.max_turns=120、delegation.max_iterations=100。
对照项:记忆容量。官方文档 2200 / 1375。[3] 本机 config.yaml 为 6600 / 6600。
对照项:终端后端数。架构图写 6、正文写 7。[1] 本机列举集合与文档一致,只是计数口径不统一。
这些差异不是否证文档,而是说明 Hermes 迭代快,架构页数字会旧。对比报告若只抄官网会低估工具面、误报默认预算。
GitHub API 给 AutoGPT 的 license.spdx_id 是 NOASSERTION。[23] 打开仓库 LICENSE 才能看到双许可正文。[19] 任何自动化“按 SPDX 过滤 MIT 仓库”的脚本都会把 AutoGPT 整库误判。
检索中大量 2026 年博客把 Hermes 写成“只有记忆、多 Agent 还在路线图”,或把 LangChain 写成“没有持久记忆”。这与三方自己的文档冲突。[3][11][14][30] 本报告不以这类二手表为证据。
需要“跑了 40 分钟、进程死了、从节点 17 续上”:LangGraph checkpointer 或 AutoGPT GraphExecution。[11][22]
需要“三个月后还记得我用 zsh、讨厌逐步确认”:Hermes USER.md + session_search。[3]
两者可以叠:用 Hermes 当操作员,用 LangGraph 当你业务里那条必须可恢复的核心工作流。
选 LangChain / LangGraph / Deep Agents,若:
选 Hermes,若:
选 AutoGPT Platform,若:
不要选 Classic 上生产。[20]
config.yaml 的 agent.max_turns=120,高于构造器 90 与文档 500;Gateway 是否另有覆盖仍未逐行追完。三套架构里,只有带外部持久编排的系统适合“断点续跑”:LangGraph thread checkpoint、AutoGPT GraphExecution、Hermes session lineage / kanban 任务卡。纯内存 while-loop(早期 AutoGPT 印象、未加 checkpointer 的 create_agent)在进程被杀后无法诚实续跑。
若测试目标是“报告完成前不得结束”,Hermes 这种同步长循环能撑完一次研究写作;若测试目标是“机器重启后从第 7 章接着写”,应把大纲与引用账本落盘(本报告已落在 /root/workspace/j-agent-frameworks-report/),这是上下文外置,不是框架魔法。
三条栈不要互相替代,按层选。
编排层 - AutoGPT Platform:分布式图执行(GraphExecution / NodeExecution + RabbitMQ/Redis),节点是 Block。[22] - LangChain / LangGraph:进程内状态机;create_agent 编译成图,可混确定性节点与模型节点,checkpointer 负责续跑。[8][9][11] - Hermes:单进程同步 AIAgent 环,工具循环直到文本回复;压缩产生 session lineage,不把图当一等公民。[1][2]
产品层 - AutoGPT:低代码平台 + 市场 + 可托管;Classic 研究结束。[16][17][20] - LangChain:给工程师的库与商业控制面(LangSmith)。[7][15] - Hermes:装完即用的助手运行时(CLI / Gateway / Desktop / ACP)。[5][30]
知识层 - Hermes:有界策展 MEMORY/USER + FTS5 + 自动写 skill。[3][4] - LangGraph:线程 checkpoint + 跨线程 store;Deep Agents 再叠 skill/摘要/虚拟文件系统。[11][13] - AutoGPT:工作流状态持久化为主,人格记忆不是主叙事。[17][21]
许可层 - Hermes / LangChain / LangGraph:MIT。[6][24][25] - AutoGPT Platform:Polyform Shield,不能当纯 MIT。[19]
本机交叉验证后的 Hermes 生效数字(覆盖文档) - 版本:v0.20.4(2026.8.18) - 工具:35 toolset / 94 个声明工具名 - 轮次:max_turns=120,子代理 max_iterations=100 - 记忆:6600 / 6600
选型一句话 - 做可恢复的业务编排:LangGraph。 - 做会记、会学、挂在消息软件上的个人/小团队助手:Hermes。 - 做可视化自动化与商店运营:AutoGPT Platform。 - 不要用 AutoGPT Classic 上生产。[20]
run_agent.py:class AIAgent,默认 max_iterations=90agent/iteration_budget.py:父 500 / 子 50 的注释与独立预算语义toolsets.py:35 组,94 个工具名LICENSE:MIT,2025 Nous ResearchHermes Agent v0.20.4 (2026.8.18)classic/original_autogpt/autogpt/agents/agent.py → propose_action[21]autogpt_platform/backend/backend/executor/manager.py → ExecutionManager / ExecutionProcessor[22]docs.langchain.com/oss/python/langchain/agents[9]/docs/developer-guide/agent-loop[2][1] https://hermes-agent.nousresearch.com/docs/developer-guide/architecture — Hermes Architecture [2] https://hermes-agent.nousresearch.com/docs/developer-guide/agent-loop — Hermes Agent Loop Internals [3] https://hermes-agent.nousresearch.com/docs/user-guide/features/memory — Hermes Persistent Memory [4] https://hermes-agent.nousresearch.com/docs/user-guide/features/skills — Hermes Skills System [5] https://hermes-agent.nousresearch.com/docs — Hermes Docs Home [6] https://github.com/NousResearch/hermes-agent — NousResearch/hermes-agent [7] https://docs.langchain.com/oss/python/langchain/overview — LangChain overview [8] https://docs.langchain.com/oss/python/langgraph/overview — LangGraph overview [9] https://docs.langchain.com/oss/python/langchain/agents — LangChain Agents [10] https://docs.langchain.com/oss/python/langchain/middleware/overview — LangChain Middleware [11] https://docs.langchain.com/oss/python/langgraph/persistence — LangGraph Persistence [12] https://docs.langchain.com/oss/python/concepts/products — Runtimes frameworks harnesses [13] https://docs.langchain.com/oss/python/deepagents/overview — Deep Agents overview [14] https://docs.langchain.com/oss/python/langchain/multi-agent — LangChain multi-agent [15] https://www.langchain.com/blog/langchain-langgraph-1dot0 — LangChain LangGraph 1.0 [16] https://github.com/Significant-Gravitas/AutoGPT — Significant-Gravitas/AutoGPT [17] https://agpt.co/docs/platform/what-is-autogpt-platform.md — What is AutoGPT Platform [18] https://agpt.co/docs/platform/self-hosting/getting-started.md — AutoGPT Self-Host [19] https://raw.githubusercontent.com/Significant-Gravitas/AutoGPT/master/LICENSE — AutoGPT LICENSE [20] https://raw.githubusercontent.com/Significant-Gravitas/AutoGPT/master/classic/README.md — AutoGPT Classic README [21] https://raw.githubusercontent.com/Significant-Gravitas/AutoGPT/master/classic/original_autogpt/autogpt/agents/agent.py — AutoGPT Classic Agent.py [22] https://raw.githubusercontent.com/Significant-Gravitas/AutoGPT/master/autogpt_platform/backend/backend/executor/manager.py — AutoGPT ExecutionManager [23] https://api.github.com/repos/Significant-Gravitas/AutoGPT — GitHub API AutoGPT [24] https://api.github.com/repos/langchain-ai/langchain — GitHub API LangChain [25] https://api.github.com/repos/langchain-ai/langgraph — GitHub API LangGraph [26] https://api.github.com/repos/NousResearch/hermes-agent — GitHub API Hermes [27] https://agpt.co/docs/platform/building-blocks/new_blocks.md — AutoGPT Build Blocks [28] https://www.langchain.com/blog/agent-middleware — LangChain Agent Middleware blog [30] https://raw.githubusercontent.com/NousResearch/hermes-agent/main/README.md — Hermes README