开源 Agent 框架架构对比技术报告

开源 Agent 框架架构对比技术报告

对象: 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 元数据、本机源码核对;关键事实带编号引用。


0. 执行摘要

三个项目经常被并列为“开源 Agent 框架”,但它们解决的不是同一层问题。

一句话选型:

GitHub API 在本研究拉取时刻返回的 star 数为:Hermes 232,691、AutoGPT 186,683、LangChain 144,518、LangGraph 39,987。[23][24][25][26] 星标只说明关注度,不能单独代表架构成熟度或生产可靠性。


1. 研究范围、方法与交叉验证协议

1.1 为什么是这三个

用户给定样例为 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]

1.2 证据层级

  1. 官方文档全文:Hermes Architecture / Agent Loop / Memory / Skills;LangChain Agents / Middleware / Products;LangGraph Persistence;AutoGPT Platform 与 Self-host。
  2. 仓库与 API:README、LICENSE、GitHub REST 元数据、AutoGPT Classic agent.py、Platform executor/manager.py。
  3. 本机源码:对当前 VPS 上已安装的 Hermes v0.20.4 直接读 run_agent.py、agent/iteration_budget.py、toolsets.py、LICENSE。这一层用于发现“文档口径”和“已部署代码”的偏差。

1.3 不在范围内的事


2. 产品定位:框架、运行时、Harness、平台

2.1 LangChain 自己的三层模型

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]

2.2 Hermes:可运行的闭环 Agent,而不是 SDK

官方文档首页自称 “the only agent with a built-in learning loop”:从经验写 skill、使用中改 skill、主动把知识写入记忆、用 FTS5 搜历史会话、并对用户建模。[5][30]

架构页给出的入口不是 pip install 后自己 invoke,而是:

全部汇入同一个 AIAgent(run_agent.py)。[1]

本机 LICENSE 为 MIT,版权行是 Copyright (c) 2025 Nous Research。仓库创建于 2025-07-22。[6][26]

2.3 AutoGPT:从“自主循环实验”到“工作流平台”

官方 README 把产品写成四块表面:AutoPilot、Agents、Marketplace、Build。托管平台管基础设施、模型访问、凭据、可靠性和更新;自建则自己提供机器和模型 key。[16]

平台文档把架构收成两块:[17]

  1. AutoGPT Server:核心逻辑、基础设施、Marketplace。
  2. AutoGPT Frontend:Agent Builder、工作流、部署控制、现成 agent、监控。

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]

2.4 定位对照(文字矩阵)

你买到的东西

默认用户

开源纯度


3. 执行环与编排模型

这是三者差异最大的一层。

3.1 Hermes:同步 ReAct 环 + 三套 API 适配

官方把 AIAgent 定义为同步编排引擎,职责包括:拼系统提示、选 provider/API mode、可中断模型调用、执行工具、维护 OpenAI 风格消息、压缩、重试、fallback、刷记忆。[1][2]

一回合生命周期(官方):[2]

  1. 生成 task_id,追加 user 消息
  2. 构建或复用 system prompt
  3. 超过上下文 50% 则预压缩
  4. 按 API mode 转消息格式
  5. 注入临时层(预算警告等)
  6. Anthropic 上打 cache breakpoint
  7. _interruptible_api_call
  8. 有 tool_calls 则执行并回到第 4 步;否则落盘并返回

三种 API mode 最后都收敛到内部 OpenAI 风格 {role, content, tool_calls}:[2]

工具执行:单工具主线程;多工具 ThreadPoolExecutor 并发,交互式工具(如 clarify)强制串行;结果按原始顺序回填。[2]
部分工具在 registry 之前被 run_agent.py 截获:todo、memory、session_search、delegate_task。[2]

中断模型:API 在后台线程跑,主线程等 response / interrupt / timeout。用户新消息或 /stop 会丢弃未完成响应,不把半截内容写进历史。[2]

数据流入口(官方):[1]

本机核对: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 为准,不能只信文档或构造器默认值。

3.2 LangChain:循环被编译成图,Middleware 是改环的旋钮

官方定义: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]

3.3 AutoGPT Classic:组件管道 + 多种 prompt strategy

Classic Agent.propose_action() 仍是“想一步、做一步”的自主环,但实现已经组件化:[21]

  1. 跑 DirectiveProvider 管道,收集 resources / constraints / best_practices
  2. 跑 CommandProvider 得到命令列表并剔除禁用项
  3. history.prepare_messages()(可跳过,例如 ReWOO 的 EXECUTING 阶段)
  4. MessageProvider 组消息
  5. prompt_strategy.build_prompt(...)
  6. 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]

3.4 AutoGPT Platform:图执行器,不是单进程 thought 环

autogpt_platform/backend/backend/executor/manager.py 导出 ExecutionProcessor 与 ExecutionManager。[22]

从 import 即可还原运行时形状:

这是分布式工作流引擎:节点是 Block,边是数据/控制链接,执行被切成可排队的 node execution。它和 Hermes 的“一个同步循环打工具”不是同一算法,也和 LangGraph 的“进程内状态机 + checkpointer”不同——更接近带计费与市场的自动化平台。

Block SDK 要求每个 Block 声明 Input/Output schema,run() 里 yield 输出销;ProviderBuilder 管 API key / OAuth / 成本。[27]

3.5 执行模型对照


4. 工具、集成与扩展面

4.1 Hermes:注册表 + toolset + 多后端

官方:中央 tools/registry.py,文档口径 70+ tools / ~28 toolsets;终端后端 local / Docker / SSH / Daytona / Modal / Singularity / Vercel Sandbox(架构页也写过 6–7 个)。[1][30]

本机 toolsets.py 交叉验证(v0.20.4):

文档 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]

4.2 LangChain:工具是函数,能力靠组合

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]

4.3 AutoGPT:Block 市场与集成目录

平台把集成做成 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]

4.4 扩展哲学


5. 记忆与上下文工程

5.1 Hermes:有界策展记忆 + 无限会话检索 + Skill 渐进披露

官方记忆是两个有硬顶的文件,注入系统提示的冻结快照(为了 prefix cache,当轮写入要到下次会话才出现在 system prompt):[3]

本机当前配置把上限调到了 6,600(用户画像与记忆均是),说明这两个数字是 config.yaml 可改的,不是协议常数。写满不会自动压缩,memory 工具直接报错,要求模型当轮 replace/remove 腾位。[3]

另有:

这是一条明确的学习闭环:执行 → 评价 → 沉淀 skill/memory → 下次按需加载。[5][30]

5.2 LangChain / LangGraph:Checkpointer + Store + 可选摘要中间件

官方把持久化分成两种:[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 的记忆是策展过的人格/环境摘要 + 独立检索库。前者强在工作流正确性,后者强在“下次打开还认识你”。

5.3 AutoGPT

Classic:EpisodicActionHistory + ActionHistoryComponent(按 token 预算准备消息),工作区文件、todo、以及 ~/.autogpt/skills 的 SKILL.md。[21]
Platform:执行状态是 GraphExecution / 节点结果,属于工作流持久化,不是 Hermes 那种跨会话 USER.md。长期“记得用户是谁”要靠你在图里自己接存储 Block。文档主叙事是 continuous agents、触发器、可靠长跑,而不是人格记忆。[17]

5.4 上下文策略对照


6. 多 Agent、委派与人机协同

6.1 Hermes

人机:clarify、危险命令 approval、可中断 API。[2]

6.2 LangChain 多 Agent 模式库

官方列出五种,并给了调用次数/token 的粗算:[14]

Deep Agents 把 subagents、todo、filesystem 预装进 harness。[13][14]

HITL:LangGraph interrupt;LangChain HumanInTheLoopMiddleware 可按工具名拦截。[8][10]

6.3 AutoGPT

Classic:ExecutionContext + DefaultAgentFactory,root agent 可 spawn 子 agent(parent_agent_id / depth)。[21]
Platform:图里的 AgentExecutorBlock 等于“图中嵌 agent”;Marketplace 提供现成团队/专家向工作流。执行器自带审核、余额、凭据租约,这是运营型多租户,而不是研究型辩论环。[22]

6.4 协作语义


7. 部署、许可、观测与生产化

7.1 部署形态

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]

7.2 许可

若产品形态接近“托管 agent 平台”,AutoGPT Platform 的许可证必须做法务审阅,不能因为它的 GitHub 星星多就当 Apache/MIT 用。

7.3 观测与评测

7.4 仓库元数据(GitHub API,2026-08-19)

Hermes 提交极密(本机文档树写过约 25,000 tests / 1,250 files;GitHub 页面同时显示上万 commit)。这支持“产品型单体仓库”判断,也解释了文档数字(70+ tools)会落后于 toolsets.py。


8. 交叉验证:一致点、矛盾点、过时叙事

8.1 三方都承认的结构事实

  1. 2026 年的主流 Agent 都是 模型 + 工具循环 + 某种外围 harness,不再是纯 chain。[7][9][12]
  2. Skills 渐进披露同时出现在 Hermes 与 Deep Agents / LangChain multi-agent 文档,并指向 agentskills.io 一类标准。[4][13][14]
  3. 子代理用来隔离上下文,不是为了“看起来更智能”。LangChain 甚至量化了 subagents 在多领域任务上更省 token、在单次任务上多一次模型调用。[14]
  4. 持久化必须分清“线程内状态”和“跨会话知识”。LangGraph 用 checkpointer/store 说这件事;Hermes 用 session DB + MEMORY.md 说这件事。[3][11]

8.2 必须丢掉的过时叙事

8.3 文档与本机 Hermes 的硬差异

对照项:工具数量。官方文档 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 迭代快,架构页数字会旧。对比报告若只抄官网会低估工具面、误报默认预算。

8.4 AutoGPT 许可字段

GitHub API 给 AutoGPT 的 license.spdx_id 是 NOASSERTION。[23] 打开仓库 LICENSE 才能看到双许可正文。[19] 任何自动化“按 SPDX 过滤 MIT 仓库”的脚本都会把 AutoGPT 整库误判。

8.5 第三方对比文的可用性

检索中大量 2026 年博客把 Hermes 写成“只有记忆、多 Agent 还在路线图”,或把 LangChain 写成“没有持久记忆”。这与三方自己的文档冲突。[3][11][14][30] 本报告不以这类二手表为证据。


9. 架构级权衡与选型

9.1 控制权 vs 完成时间

9.2 状态语义

需要“跑了 40 分钟、进程死了、从节点 17 续上”:LangGraph checkpointer 或 AutoGPT GraphExecution。[11][22]
需要“三个月后还记得我用 zsh、讨厌逐步确认”:Hermes USER.md + session_search。[3]

两者可以叠:用 Hermes 当操作员,用 LangGraph 当你业务里那条必须可恢复的核心工作流。

9.3 推荐场景

选 LangChain / LangGraph / Deep Agents,若:

选 Hermes,若:

选 AutoGPT Platform,若:

不要选 Classic 上生产。[20]

9.4 组合拳(实践上更常见)

  1. Hermes 作外壳 + LangGraph 作内核:人从 Telegram 下指令,Hermes 调内部 LangGraph 服务跑可恢复业务流。
  2. Deep Agents 作研究/编码 harness,Hermes 作日常网关:两套 harness,职责分开。
  3. AutoGPT 画布产出的图,只作为业务自动化;人格助手仍用 Hermes。

10. 风险、局限与后续可验证项

10.1 已标明的风险

10.2 本报告未做、但会影响最终拍板的验证

  1. 同一任务(例如“读仓库写修复 PR”)三条栈的美元成本与人工介入次数。
  2. AutoGPT 自建一套的真实运维成本(Postgres/Redis/Rabbit/Frontend)。
  3. LangGraph PostgresSaver 在长线程下的 checkpoint 膨胀(官方已警告需清理)。[11]
  4. Hermes 默认迭代的解析优先级:本机已核实生效值为 config.yaml 的 agent.max_turns=120,高于构造器 90 与文档 500;Gateway 是否另有覆盖仍未逐行追完。

10.3 对“自动续跑测试”的元结论

三套架构里,只有带外部持久编排的系统适合“断点续跑”:LangGraph thread checkpoint、AutoGPT GraphExecution、Hermes session lineage / kanban 任务卡。纯内存 while-loop(早期 AutoGPT 印象、未加 checkpointer 的 create_agent)在进程被杀后无法诚实续跑。

若测试目标是“报告完成前不得结束”,Hermes 这种同步长循环能撑完一次研究写作;若测试目标是“机器重启后从第 7 章接着写”,应把大纲与引用账本落盘(本报告已落在 /root/workspace/j-agent-frameworks-report/),这是上下文外置,不是框架魔法。


11. 最终对照结论(交付口径)

三条栈不要互相替代,按层选。

编排层 - 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]


附录 A. 本机 Hermes 核对摘录

附录 B. 关键源码锚点


Sources

[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