![[从零开始搭一个企业级 Agent Harness] 10/10:2026年有哪些 Framework 和产品 API 可以直接实现这套架构?](/_next/image?url=%2Fblog%2Fagent-harness-covers%2Fpart-10.webp&w=3840&q=75&dpl=dpl_HKDZtjNTn1U2zk8pGrYRnYGkyGR9)
从零开始搭一个企业级 Agent Harness10/10:2026年有哪些 Framework 和产品 API 可以直接实现这套架构?
前九章已经把企业Agent Harness需要的部件一块块装齐了。现在我把2026年能用的Framework、SDK、模型API和托管Agent产品摊在桌面上,看它们分别能接走哪一段工作。读这一章时,可以一直带着那笔42美元退款:现在缺的是让模型调用工具的循环,还是等审批、恢复任务和查结果的能力?带着这个问题看产品,名字就容易对上用途。
先看清楚:现成工具到底有哪些?
写Agent的Framework、SDK和开源Harness
这一组是装进自己服务里的开发工具。Framework是替我们组织程序流程的框架;SDK是一套可以直接调用的开发组件。它们帮我运行“模型判断下一步—调用工具—把结果交回模型”这段循环;Harness则把上下文、工具、状态和审批一起包在循环周围。服务怎么部署、用户是谁、退款能不能执行,仍由企业应用决定。读表时先看“它具体替我做什么”,找到要省掉的那段工作;再看运行方式和模型绑定,判断它能否放进已有系统。
| 产品 | 它具体替我做什么 | 运行方式 / 何时用 | 是否绑定模型 |
|---|---|---|---|
| LangChain 技术栈(LangGraph / LangChain / Deep Agents) | LangGraph保存状态并控制每一步怎样跳转;LangChain提供模型与工具之间的标准循环;Deep Agents再装好规划、文件上下文和子Agent。 | 跑在自己的应用或Agent Server;按需要的控制深度选择入口。 | 否:支持多家模型供应商。 |
| OpenAI Agents SDK | 运行器接管多轮循环、工具调用、Agent交接、输入输出检查、会话状态和执行轨迹。 | 跑在自己的应用;适合已经使用OpenAI API但希望自己掌握部署与业务状态的团队。 | 否:支持非OpenAI模型、自定义模型接入和LiteLLM;平台自带工具会随模型变化。 |
| Claude Agent SDK | 在团队管理的进程里运行Claude Code的循环,并带来文件操作、命令执行、权限、会话和运行前后检查。 | 跑在自己的Python或TypeScript应用;适合需要读写文件、操作代码库或执行命令的任务。 | 是:Claude;Bedrock或Vertex只是改变部署入口。 |
| Google Agent Development Kit(ADK) | 提供多语言Agent组件、步骤路由、失败重试、人工输入、会话状态和评测。 | 可本地或云端运行;适合步骤明确或需要多个Agent协作的任务。 | 否:支持Gemini、Claude、OpenAI等模型。 |
| Microsoft Agent Framework | 提供基础Agent、装好规划与文件能力的Harness Agent、图工作流、会话状态、运行前后拦截逻辑和MCP工具连接。 | C#与Python可用,Go处于公开预览,也能部署到Foundry。1.0于2026年4月正式可用,Harness于7月22日发布。 | 否:支持Foundry、Anthropic、OpenAI、Ollama等模型。 |
| Strands Agents SDK | 提供模型—工具循环、会话状态、运行前后检查、人工干预、预算和取消控制。 | 跑在自己的Python或TypeScript进程;适合从一个小循环逐步增加生产控制。 | 否:Bedrock是默认入口,也支持Anthropic、OpenAI、Gemini等模型供应商。 |
| Pydantic AI | 用Python类型明确依赖、工具输入和结构化输出,让错误字段在执行前暴露。 | 跑在自己的Python服务;适合重视类型检查、测试和数据契约的团队。 | 否:支持多家模型供应商;专有参数需要重配。 |
直接调用模型与Agent能力的API
框架把Agent循环搭起来以后,每一轮仍要有一个模型调用入口。API就是程序向另一项服务发请求的接口。这些API负责接收输入、返回模型结果和工具请求;团队既可以直接调用,也可以把它们交给上一组SDK。
| 产品API | 它具体替我做什么 | 运行方式 / 何时用 | 是否绑定模型 |
|---|---|---|---|
| OpenAI Responses API | 接收文本、图片和文件,也能让模型请求函数、联网搜索、文件搜索或远程MCP工具。 | 模型在OpenAI运行;适合直接请求模型,或由团队自己编写运行循环。 | 是:OpenAI。 |
| Claude API:Messages API | 通过POST /v1/messages发送结构化消息;Claude用tool_use提出工具请求,应用执行后用tool_result交回结果。 | 模型在Anthropic平台运行;适合团队自己控制请求、客户端工具和业务状态。 | 是:Claude。 |
| Gemini API:Interactions API | 统一调用Gemini模型和专用Agent,能在服务端保存会话、后台运行长任务,并返回可展示的执行步骤。 | 模型或Agent在Google运行;2026年6月正式可用。 | 是:Gemini。 |
托管Agent运行的平台
模型与Agent循环接好以后,团队还要保存会话、维护运行环境、隔离不同用户的任务,并在请求变多时扩容。托管平台把其中一部分连同Harness一起接走,比较时直接看它实际承担了哪些运行工作。“托管”表示这部分程序由平台负责运行;把自己的Agent代码交给平台运行,与直接使用平台写好的Agent循环,是两种不同的交接范围。
| 产品 | 它具体替我做什么 | 运行方式 / 何时用 | 是否绑定模型 |
|---|---|---|---|
| Claude Managed Agents | Anthropic托管运行循环和会话;执行命令与处理文件的隔离环境可由Anthropic管理,也可由团队自托管。 | 运行在Anthropic托管服务;2026年4月公开,当前为Beta。 | 是:Claude。 |
| OpenAI Agents API | OpenAI运行Codex Harness、保存会话并整理长上下文;执行环境可选平台托管、团队自托管或不使用隔离环境。 | 运行在OpenAI托管Harness;2026年9月10日进入公开测试。 | 是:OpenAI托管模型与Harness。 |
| Amazon Bedrock AgentCore Runtime | 托管并扩缩团队带来的Agent容器,为不同会话提供隔离,并接上身份与运行记录;Agent循环仍是团队代码。 | 运行在AWS;已有Agent代码、只想交出运行基础设施时用。 | 否:模型可选;运行环境、AWS身份和观测依赖AWS。 |
| Amazon Bedrock AgentCore Harness | 直接提供由Strands驱动的托管循环;团队只声明模型、工具、技能和指令。 | 运行在AgentCore Runtime;2026年6月17日正式可用。 | 否:支持Bedrock、OpenAI、Gemini及LiteLLM兼容的模型供应商;平台依赖AWS。 |
| Gemini Enterprise Agent Platform | 用Agent Runtime部署Agent,并把身份、工具入口、记忆和运行观测接到同一平台。 | 运行在Google Cloud;2026年4月发布。 | 视支持目录而定:模型可选;运行依赖Google Cloud。 |
| Microsoft Foundry Agent Service | Prompt Agent直接按配置运行;Hosted Agent接收团队自己的framework或容器,并提供访问地址、自动扩缩、Entra身份、会话状态和观测。 | 运行在Microsoft Foundry;适合已有Azure身份与网络的组织。 | 视Foundry模型目录而定;运行依赖Azure。 |
给Agent补上持久执行与观测
无论Agent循环由团队运行还是交给托管平台,程序重启后从哪里继续、出错时怎样查清过程,都要落到具体系统。持久执行负责把进度保存下来,让任务跨重启继续;观测负责留下可追查的调用记录。下面这些配套产品分别接手其中的工作,表中不是每个产品都同时承担两项职责。
| 配套产品 | 它具体替我做什么 | 运行方式 / 何时用 | 是否绑定模型 |
|---|---|---|---|
| Temporal | 用执行历史恢复整个任务;模型调用和支付查询成为可重试步骤,持久定时器与外部通知负责等待审批。 | 可自托管或用Temporal Cloud;适合跨服务、跨天的关键业务流程。 | 否:不限定LLM。 |
| Restate | 记录已经完成的步骤和业务状态,能跨重启等待人工批准或外部系统回调。 | 可用Cloud、BYOC或自托管;2026年5月与Pydantic AI集成。 | 否:不限定LLM。 |
| DBOS | 用库和装饰器把整个任务、单个步骤和等待进度存入Postgres,重启后从已完成步骤继续。 | 跑在自己的应用与Postgres旁边;适合已有Postgres的团队。 | 否:不限定LLM。 |
| LangSmith | 收集模型调用、工具调用和错误记录,把线上失败整理成测试数据,并比较新版本是否退步。 | 可选Cloud、Hybrid或自托管;适合追查Agent路径并设置发布门。 | 否:不限定LLM。 |
换一家模型,需要换掉多少东西?
表里最后一列先回答模型适配。LangChain、OpenAI Agents SDK、ADK、Microsoft Agent Framework、Strands和Pydantic AI都能接多家模型供应商,原来的任务状态与大部分循环可以留下。比如“先等批准,再退款”这项业务规则仍然成立;需要适配的是程序怎样把请求发给新模型,又怎样读回它的结果。不过,工具参数格式、结构化输出、流式事件、模型为什么停止以及平台自带工具都会变化。换模型时我保留同一份业务工具契约,再为新模型接入重做适配与回归测试。
再看运行平台。AgentCore Harness可以在同一个AWS Harness里切换Bedrock、OpenAI、Gemini或LiteLLM兼容模型,这解决了模型选择;会话、隔离环境、身份、工具入口与执行记录仍由AWS承接。Claude Managed Agents、OpenAI Agents API、Gemini Enterprise Agent Platform和Foundry Agent Service同样会保存各自的平台状态。迁移方案要覆盖历史记录、状态重建、运行环境、凭证、审计记录和部署入口。所以“能换模型”与“能搬走整套运行系统”要分别判断。前者看模型接口能否适配,后者还要看历史记录和未完成任务能否一起迁走。
迁移成本看清以后,我把同一笔退款交给不同方案,看看它们各自接走哪些步骤。
把第一章那笔重复扣款放进去,差别马上出来
如果我用Responses API或Messages API调用基础模型与自定义业务工具,模型可以读取描述并提出退款工具调用;循环怎样继续、审批信息放在哪里、接口超时后怎样恢复,都由我的应用负责。Gemini Interactions API还能在服务端保存会话状态、后台运行,并调用Google提供的专用Agent;订单政策、支付工具和业务结果仍要接回我的系统。
如果我先要一个标准Agent循环,选择就跟着团队已有系统走。任务需要读写文件和执行命令,可以用Claude Agent SDK;已经使用OpenAI API,可以让OpenAI Agents SDK接管多轮执行、把任务转给另一个Agent,并在运行前后检查输入和输出;Python团队可以用Pydantic AI先验证退款意图。ADK、Microsoft Agent Framework和Strands则更容易接入各自熟悉的云与编程语言。
这笔退款一旦要求固定顺序,我把它写成“收集证据→提出具体退款金额→等待批准→执行→核验退款编号”。这时直接使用LangGraph最清楚:持久状态存储器按同一个thread_id保存进度。这里的thread_id是用来找回同一条工作流记录的标识,审批节点就是流程中负责等待与处理批准的一步。经理批准后,程序会重新进入这个节点处理批准结果,再走到单独的支付节点;支付调用始终携带同一个动作编号与幂等键。LangGraph保存程序做到哪里,支付系统确认退款是否真的发生。
LangChain技术栈从底到上分成三个层级:LangGraph控制复杂状态与确定步骤,LangChain提供标准循环,Deep Agents再补上任务规划、文件上下文、长任务和子Agent。要明确指定每一步和跳转条件,就从LangGraph进入;只需要标准循环,可以从LangChain进入;需要已经配好的规划、文件和子Agent能力,再看Deep Agents。LangSmith可以在旁边记录模型和工具每一次调用,再用旧的失败案例检查新版本有没有退步。
任务要跨多个服务等待几天,我再把Temporal、Restate或DBOS接进来。它们保存审批、定时等待和恢复位置;同一个退款有没有被执行两次,则由稳定动作编号、副作用账本和支付服务共同核对。
如果团队连会话、运行循环、隔离环境和扩缩容也不想运营,就选托管平台。Claude Managed Agents和OpenAI Agents API直接托管整个Harness;AgentCore Harness提供配置式Harness,AgentCore Runtime只托管团队带来的Agent代码;Foundry和Gemini Enterprise Agent Platform进一步把云身份、工具入口和运行记录接进调用路径。
为什么2026年可以少写不少接线
今年的变化集中在三件事。第一,托管产品开始明确接管Harness而不只提供模型:Claude Managed Agents与OpenAI Agents API进入公开阶段,AgentCore Harness正式可用,Foundry与Gemini Enterprise Agent Platform也把Agent运行、身份和工具入口放到同一产品面上。
第二,自己写的Agent更容易获得持久执行。Pydantic AI与Restate在5月提供直接集成;Temporal在2026年10月的Product Edition中把ADK、OpenAI Agents SDK、Strands和LangGraph等Agent集成列为正式可用。这里少写的“接线”,是把Agent每个步骤接到进度保存、等待通知和故障恢复上的代码。接线代码变少以后,团队更容易把注意力放回审批、幂等和权威结果核验。
Agent一旦要调用外部工具,或者把任务交给另一个Agent,连接方式就成为第三件事。A2A 1.0于2026年3月12日发布,用于独立Agent系统交换任务和产物;MCP 2026-07-28核心规范让工具请求携带明确的版本、身份和能力。MCP Tasks扩展截至2026年11月8日仍是Draft草案,可以表达单个长工具调用的查询、取消与等待输入。工具、运行和连接这三层都有了现成选择,我就可以把它们组合成几条清楚的起步路线。
四个可以直接开始的组合
组合一:最小自建Agent
我先用LangChain接上一个模型API和公司的工具入口。用户提交重复扣款后,LangChain让模型整理退款意图,也就是明确要处理的订单、金额与理由,再调用“查询订单”和“申请退款”两个工具;工具入口检查当前用户能不能退这张订单,支付服务用同一个动作编号避免重复退款。需要排查时,LangSmith把模型和工具的调用记录串起来。这一组保留自建空间,适合已经有后端、权限和日志系统,只想尽快把Agent循环跑起来的团队。
组合二:把退款步骤写清楚
退款顺序不能由模型临场决定时,我直接用LangGraph画出五个节点:查订单、提出退款金额、等经理批准、执行退款、核验结果。持久状态存储器把当前节点和任务数据写入可靠存储,因此服务进程退出后,仍能找回原来的位置。经理第二天批准后,程序会重新运行暂停所在的审批节点,所以我把实际支付放在批准后的独立节点,并一直使用同一个幂等键。公司的工具入口负责权限,副作用账本记录退款动作,支付服务给出最终结果。这一组适合步骤固定、需要暂停恢复和完整审计的财务、采购与合规任务。
组合三:先检查数据,再让长任务可靠运行
我用Pydantic AI把退款意图固定成订单、金额、原因三个字段,字段缺失或类型错误时先停下来,不让错误参数进入支付系统。比如金额应当是可计算的数值,模型却给了一段解释,程序就要求它修正;金额填写正确以后,是否允许退款仍由公司的权限与业务规则判断。Restate或Temporal再保存模型已经作出的决定、等待中的审批和完成过的步骤;程序重启后,它从最后一个可靠位置继续,而不是重新猜一次退款金额。批准到来后,调用仍经过公司的工具入口,再由支付服务返回最后的退款结果。这一组适合Python团队,也适合要跨天等待、跨多个服务完成的任务。
组合四:托管Harness加企业控制系统
团队不想维护Agent进程、会话保存、隔离环境和扩缩容时,我从Claude Managed Agents、OpenAI Agents API、AgentCore Harness、Gemini Enterprise Agent Platform或Foundry Agent Service中选一个托管平台。平台运行Agent,公司现有系统仍负责四件事:确认用户身份、判断这笔退款是否允许、执行支付调用、到支付系统核验最终退款编号。这一组适合已经确定云平台、希望把运行基础设施交出去的团队;选型时要同时计算模型绑定和平台迁移成本。
无论选哪一组,我都让第一章那笔重复扣款完整走一次:批准是否只对这一次具体退款金额有效;服务重启后是否读取同一份退款意图;支付超时后是否复用同一动作编号;公司的工具入口和支付服务是否分别检查权限;核验程序能否拿到唯一退款编号;调用记录能否把整个过程串起来。
选了支持多家模型的框架,我还让至少两家模型读取同一份任务契约和工具输入格式,比较生成合法退款意图的比例、人工介入次数、延迟和总成本。这样验收的是整套Agent换模型后的行为,而不只看某一次回答。
十篇走到这里,我们从一个最小Agent循环出发,逐个补上完成条件、上下文、工具边界、恢复、权限、评测与多Agent协作。现在再看这张产品目录,每个名字都有了位置:它接管哪一段、留下哪一段、出了问题该去哪里查。
新文章,直接发到你的邮箱。
AI、工程与实验,每月 1–2 封。
无垃圾邮件,随时取消。



