AI Agent Harness Engineering 的未来标准与生态之争
AI Agent Harness(AI Agent管控基座)是支撑AI Agent全生命周期运行的通用底层软件设施,它不涉及Agent的具体业务逻辑,而是为所有Agent提供标准化的执行环境、工具调度、安全管控、状态管理、可观测性等通用能力,类比Web时代的Tomcat、Java生态的Spring Boot、云原生时代的Kubernetes,是Agent的"运行时容器"。
AI Agent Harness Engineering 的未来标准与生态之争
一、引言
钩子
你有没有过这样的经历:花了两周时间用LangChain写了一套电商智能客服Agent,接入了订单查询、物流跟踪、售后退款3大类17个工具,跑通了全流程测试,结果老板突然说要把部署从AWS切换到阿里云,你发现阿里云的Agent基座完全不兼容LangChain的工具调用格式、记忆存储 schema、多Agent协调逻辑,至少要重写60%的代码才能迁移?或者你基于OpenAI Assistants API做了个代码分析Agent,用得好好的,突然接到合规部门通知,所有公司内部代码不能传给第三方大模型,你不得不把整个Agent迁到开源基座上,发现连最基础的线程调度、工具重试逻辑都要自己重新实现?
这不是个例,我们团队最近调研了国内27家落地AI Agent的企业,82%的团队都遇到了Agent基座碎片化导致的迁移成本过高问题,平均每个Agent的跨基座迁移成本是开发成本的1.8倍,甚至有3家团队因为绑定了单一厂商的Harness,最后不得不推翻整个Agent体系重构,损失超过百万。
问题背景
2024年被称为AI Agent落地元年,据Gartner预测,2027年全球80%的企业都会在业务中部署至少3类AI Agent,市场规模将突破1200亿美元。但和所有新兴技术一样,Agent生态的发展正处于"群龙无首"的蛮荒阶段:不同厂商推出的Agent运行基座(也就是我们今天要讲的AI Agent Harness)没有统一标准,工具调用格式、通信协议、可观测性规范、安全管控逻辑完全不兼容,开发者写的Agent很难跨基座运行,就像你在Windows上写的.exe文件不能直接在Linux上跑一样。
而AI Agent Harness作为承载所有Agent运行的"操作系统内核",是整个Agent生态的核心控制点,谁掌握了Harness的标准,谁就掌握了未来Agent生态的话语权,就像当年微软掌握了PC操作系统标准、谷歌掌握了安卓生态标准一样,背后是千亿级别的生态利益争夺。
文章目标
读完这篇文章,你将:
- 彻底搞懂什么是AI Agent Harness Engineering,它和Agent框架、LLM推理框架、MLOps平台的核心区别是什么;
- 全面了解当前Harness生态的四大阵营、核心优劣势以及标准之争的核心焦点;
- 掌握未来Harness标准的核心构成,以及企业在选型Harness时的最佳实践,避免被厂商绑定踩坑;
- 获得一套可直接落地的跨Harness兼容适配器代码,以及Harness性能、成本量化评估模型。
二、基础知识/背景铺垫
核心概念定义
AI Agent Harness(AI Agent管控基座)是支撑AI Agent全生命周期运行的通用底层软件设施,它不涉及Agent的具体业务逻辑,而是为所有Agent提供标准化的执行环境、工具调度、安全管控、状态管理、可观测性等通用能力,类比Web时代的Tomcat、Java生态的Spring Boot、云原生时代的Kubernetes,是Agent的"运行时容器"。
Harness的核心要素组成
| 组件名称 | 核心功能 | 价值 |
|---|---|---|
| Agent生命周期管理器 | 负责Agent的创建、销毁、暂停、恢复、版本管理 | 实现Agent的弹性扩缩容,降低运行成本 |
| 工具编排引擎 | 工具注册、参数校验、调用重试、降级、缓存 | 把工具调用的通用逻辑和业务逻辑解耦,降低Agent开发成本 |
| 安全沙箱 | 代码执行隔离、外部访问权限管控、数据脱敏 | 避免prompt注入、工具滥用、数据泄露等安全风险 |
| 状态存储层 | 会话状态、长短期记忆、工具调用上下文的持久化 | 支持Agent的上下文感知,实现多轮交互 |
| 可观测性模块 | Trace、Metric、Log的统一采集、上报、回溯 | 快速定位Agent执行错误,优化Agent效果 |
| 多Agent协调器 | 任务分发、结果聚合、冲突解决、通信路由 | 支撑复杂多Agent协作场景,比如工作流编排 |
Harness和周边概念的边界区分
很多开发者会把Harness和LangChain这类Agent框架、vLLM这类推理框架混为一谈,我们用对比表格明确边界:
| 概念 | 核心定位 | 核心能力 | 与Harness的关系 |
|---|---|---|---|
| AI Agent Harness | Agent运行时基座 | 通用执行环境、安全管控、可观测性 | Agent和底层基础设施的中间层,所有Agent都跑在Harness上 |
| Agent开发框架(LangChain/LangGraph/AutoGPT) | Agent业务逻辑开发工具 | prompt编排、工具绑定、工作流定义 | 开发好的Agent需要部署到Harness上运行 |
| LLM推理框架(vLLM/TensorRT-LLM) | LLM推理加速工具 | 批处理、连续批、量化加速 | Harness调用推理框架获取LLM输出,是Harness的依赖组件 |
| MLOps平台 | 大模型全生命周期管理工具 | 模型训练、微调、部署 | Harness可以对接MLOps平台的模型服务,获取推理能力 |
Harness生态核心实体关系图
典型Harness分层架构图
Harness的价值量化模型
我们可以用两个数学模型量化Harness的价值:
1. Harness可靠性模型
Harness的可靠性决定了Agent的可用率,计算公式如下:
R(H)=α×S(T)+β×O(E)+γ×C(I) R(H) = \alpha \times S(T) + \beta \times O(E) + \gamma \times C(I) R(H)=α×S(T)+β×O(E)+γ×C(I)
其中:
- R(H)R(H)R(H) 是Harness的整体可靠性,取值范围0-1;
- S(T)S(T)S(T) 是工具调度成功率,即工具调用成功次数/总调用次数;
- O(E)O(E)O(E) 是错误可观测率,即可以被快速定位的错误数量/总错误数量;
- C(I)C(I)C(I) 是输入输出合规率,即符合安全规范的请求响应数量/总请求响应数量;
- α、β、γ\alpha、\beta、\gammaα、β、γ 是权重系数,三者之和为1,一般业务场景下推荐取值 α=0.5,β=0.3,γ=0.2\alpha=0.5,\beta=0.3,\gamma=0.2α=0.5,β=0.3,γ=0.2,金融、政务等高合规场景下 γ\gammaγ 可以调整到0.5以上。
2. Harness成本模型
Harness的总体拥有成本(TCO)计算公式:
C(H)=Cllm×Nllm+Cinfra×Trun+Cops×Nagent C(H) = C_{llm} \times N_{llm} + C_{infra} \times T_{run} + C_{ops} \times N_{agent} C(H)=Cllm×Nllm+Cinfra×Trun+Cops×Nagent
其中:
- C(H)C(H)C(H) 是Harness的年总成本;
- CllmC_{llm}Cllm 是单次LLM调用的平均成本;
- NllmN_{llm}Nllm 是年LLM调用总次数;
- CinfraC_{infra}Cinfra 是单位时间的基础设施成本(服务器、带宽等);
- TrunT_{run}Trun 是年运行总时长;
- CopsC_{ops}Cops 是单Agent的年运维成本;
- NagentN_{agent}Nagent 是Harness管理的Agent总数量。
三、核心内容:Harness生态之争与标准现状
Harness生态发展历史
我们整理了Harness从诞生到现在的关键里程碑:
| 时间 | 事件 | 生态影响 |
|---|---|---|
| 2022年Q4 | AutoGPT发布,首次实现独立于LLM的Agent执行逻辑 | Harness的雏形出现,开发者开始意识到需要通用的Agent运行基座 |
| 2023年Q1 | LangChain发布Agent模块,成为全球最流行的Agent开发框架 | 开源Harness生态开始萌芽,大量开发者基于LangChain封装自定义Harness |
| 2023年Q3 | OpenAI发布Assistants API,推出全球首个标准化闭源Harness | 闭源Harness阵营正式形成,OpenAI开始尝试定义Harness标准 |
| 2023年Q4 | AutoGPT社区发布Open Agent Protocol v0.1,首个开源Agent通信标准 | 开源阵营开始联合对抗闭源标准,推动Harness开放化 |
| 2024年Q1 | CNCF成立Agent Working Group,启动Harness标准制定工作 | 云原生社区进入Harness标准领域,标准化进程加速 |
| 2024年Q2 | AWS Bedrock Agents、Azure AI Agent Service、阿里云百炼Agent平台先后发布 | 云厂商阵营正式入场,成为Harness生态的第三极 |
| 2024年Q3 | OpenAI发布GPT-4o Advanced Data Analysis,强化Harness的代码执行、工具调用能力 | 闭源Harness的功能上限进一步提升,和开源阵营的功能差距拉大 |
当前Harness生态的四大阵营
目前全球Harness生态已经形成了四大阵营博弈的格局,各有优劣势:
1. 闭源生态阵营:以OpenAI为核心
代表产品:OpenAI Assistants API、GPTs Harness、Anthropic Claude 3 Harness
核心优势:
- 生态完善:和自家大模型深度优化,工具调用、记忆管理、代码执行的体验最好,不需要开发者额外配置;
- 开发门槛极低:只需要调用几行API就可以部署Agent,不需要运维基础设施;
- 功能迭代快:OpenAI每季度都会更新Harness能力,比如最新的工具调用缓存、长记忆自动优化等功能,开源阵营至少落后3-6个月。
核心劣势: - 厂商绑定严重:所有Agent的逻辑、数据都必须在厂商的服务器上运行,无法迁移到其他基座;
- 合规性差:数据必须传给第三方大模型,无法满足金融、政务、军工等领域的合规要求;
- 成本高:Assistants API的调用成本是自托管开源Harness的3-5倍,规模越大成本差距越明显。
2. 开源社区阵营:以Open Agent Protocol为核心
代表产品:LangGraph、AutoGPT Harness、LlamaIndex Workflows、Open Agent Protocol兼容实现
核心优势:
- 完全开放:协议开源,无厂商绑定,开发者可以自由修改、部署、迁移;
- 兼容性强:支持所有主流大模型(OpenAI、Claude、 Llama 3、Qwen等),可以对接任意第三方工具;
- 成本低:自托管成本只有闭源SaaS Harness的1/3到1/5,适合大规模部署。
核心劣势: - 生态不成熟:缺少标准化的运维、监控工具,开发门槛高,需要团队有较强的技术能力;
- 功能完整性不足:和闭源Harness相比,工具自动重试、错误自愈、长记忆优化等能力需要自己开发;
- 碎片化严重:不同开源框架的实现不兼容,LangChain写的Agent不能直接在AutoGPT Harness上运行。
3. 云厂商阵营:以云服务集成为核心
代表产品:AWS Bedrock Agents、Azure AI Agent Service、阿里云百炼Agent、腾讯云智绘Agent
核心优势:
- 和云生态深度集成:可以直接对接云厂商的对象存储、数据库、函数计算、安全服务等,不需要额外配置;
- 合规性好:支持私有部署,数据可以留在企业自己的云账号里,满足等保、 GDPR等合规要求;
- 运维省心:云厂商负责Harness的升级、维护、扩缩容,企业不需要专门的运维团队。
核心劣势: - 跨云绑定:AWS的Agent不能直接迁移到阿里云,跨云部署成本极高;
- 灵活性不足:云厂商的Harness能力是标准化的,很难做定制化修改,比如特殊的安全管控逻辑、自定义工具调度策略;
- 成本介于闭源和开源之间:比闭源SaaS便宜,比自托管开源贵20%-50%。
4. 垂直领域阵营:以场景定制为核心
代表产品:Cursor Agent Harness(代码领域)、PentestGPT Harness(安全渗透领域)、医疗Agent Harness(IBM Watsonx)
核心优势:
- 场景适配性强:针对垂直领域做了深度优化,比如代码领域的Harness内置了Git调用、代码调试、静态扫描等专用工具,安全领域的Harness内置了漏洞扫描、渗透测试工具链;
- 合规性满足行业要求:比如医疗领域的Harness符合HIPAA规范,金融领域的符合PCI DSS规范。
核心劣势: - 通用性差:只能用于特定领域,无法支撑通用Agent场景;
- 成本高:垂直领域的Harness收费是通用Harness的2-10倍。
四大阵营核心维度对比
| 维度 | 闭源阵营 | 开源阵营 | 云厂商阵营 | 垂直领域阵营 |
|---|---|---|---|---|
| 开放程度 | 完全闭源 | 完全开源 | 半开源(接口开放,实现闭源) | 闭源 |
| 厂商绑定程度 | 极高 | 无 | 高 | 极高 |
| 合规性 | 差 | 自定义可控 | 好 | 符合行业规范 |
| 开发门槛 | 极低 | 高 | 中 | 中 |
| 功能完整性 | 最高 | 中 | 高 | 场景内最高 |
| 成本(100万次调用/月) | 约10万元 | 约2万元 | 约3.5万元 | 约20万元 |
| 适合场景 | 非核心业务、快速验证POC | 核心业务、大规模部署、高定制需求 | 云原生架构、中等规模部署 | 垂直领域业务 |
标准之争的核心焦点
当前四大阵营争夺的核心就是Harness的标准话语权,主要聚焦在5个核心方向:
1. 工具调用格式标准
这是最基础的标准,目前不同阵营的工具调用格式完全不一样:
- OpenAI的格式是
{"name":"tool_name","parameters":{"key":"value"}} - Open Agent Protocol的格式是
{"toolId":"tool_id","input":{"key":"value"}} - AWS Bedrock的格式是
{"toolName":"tool_name","toolArguments":{"key":"value"}}
如果这个标准不统一,开发者写的工具就不能跨Harness复用,迁移成本极高。
2. 多Agent通信协议标准
多Agent协同是未来的主流方向,现在不同Harness的多Agent通信协议都是私有协议,比如OpenAI的GPTs之间的通信只能在OpenAI生态内进行,不能和阿里云的Agent通信。未来的标准需要定义统一的消息格式、路由规则、任务分发机制,实现跨Harness的Agent协同。
3. 可观测性Schema标准
现在不同Harness的Trace、Metric、Log格式完全不一样,开发者无法用统一的监控平台监控不同Harness上的Agent,排查问题的成本极高。未来的标准需要定义统一的Agent执行Trace规范,包含LLM调用、工具调用、状态更新等全链路节点的数据格式。
4. 安全合规标准
目前各个Harness的安全能力参差不齐,有的没有沙箱,有的没有权限管控,很容易出现数据泄露。未来的标准需要定义统一的安全规范:比如代码执行必须在沙箱中运行、工具调用必须做权限最小化校验、所有操作必须留痕可审计等。
5. Agent元数据标准
Agent的描述、能力声明、依赖声明、版本管理等元数据的标准,如果统一的话,开发者可以实现Agent的跨Harness分发、安装,就像现在手机上的APP一样,不管是安卓还是苹果,都可以下载安装同一个应用。
四、进阶探讨:未来Harness标准的核心构成与最佳实践
未来Harness标准的核心模块
我们结合CNCF Agent Working Group的最新草案,以及产业界的共识,未来的Harness标准大概率会包含以下6个核心模块:
1. 元数据标准
定义Agent的统一描述规范,包含:
- Agent基本信息:ID、名称、版本、作者、描述、标签
- 能力声明:支持的任务类型、输入输出格式、依赖的大模型、依赖的工具
- 部署要求:最低资源配置、安全等级要求、合规要求
- 版本管理:更新日志、兼容性声明、回滚策略
2. 通信协议标准
分两层:
- 单Agent通信协议:Agent和Harness之间的请求响应格式、工具调用格式、状态更新格式
- 多Agent通信协议:Agent之间的消息格式、路由规则、任务分发机制、结果聚合规范,支持跨Harness的Agent通信
3. 执行层标准
定义Harness的执行环境规范:
- 沙箱规范:代码执行的资源限制(CPU、内存、网络)、权限管控规则、隔离级别
- 资源调度规范:Agent的弹性扩缩容策略、冷启动延迟要求(<500ms)、任务优先级调度规则
- 状态存储规范:记忆的存储格式、持久化策略、加密要求
4. 可观测性标准
定义统一的可观测数据Schema:
- Trace标准:全链路Trace ID生成规则、LLM调用节点、工具调用节点、状态更新节点的字段规范
- Metric标准:Agent可用率、工具调用成功率、LLM调用 latency、错误率等核心指标的定义
- Log标准:操作日志的格式、存储时长、审计要求
5. 安全合规标准
定义统一的安全要求:
- 权限最小化原则:Agent只能访问被授权的工具、数据、资源
- 数据脱敏规范:敏感数据(身份证、银行卡、密码等)必须在传输、存储、处理过程中脱敏
- 审计规范:所有Agent的操作必须留痕,审计日志至少保存6个月,不可篡改
- 攻击防护规范:必须支持prompt注入检测、工具滥用检测、异常行为检测
6. 跨平台适配标准
定义统一的适配器接口,支持Agent在不同Harness之间的无缝迁移,适配层的代码不超过总代码量的5%。
常见陷阱与避坑指南
1. 陷阱:盲目绑定闭源Harness,后期迁移成本极高
案例:某SaaS公司2023年基于OpenAI Assistants API开发了智能客服Agent,服务了10万+用户,2024年因为OpenAI涨价+合规要求,需要迁移到开源Harness,最后花了3个月时间重写了60%的代码,损失超过50万。
避坑方案:在Agent开发层和Harness层之间加一层适配层,所有和Harness的交互都通过适配层进行,后期切换Harness只需要修改适配层的代码,不需要修改业务逻辑。
2. 陷阱:开源Harness盲目追求新功能,稳定性不足
案例:某创业公司2024年用了最新版的LangGraph做Harness,上线后出现了多次状态丢失、工具调用重复的问题,导致客户投诉,最后不得不回滚到稳定版,花了2周时间排查问题。
避坑方案:生产环境使用经过验证的稳定版开源Harness,不要用还在beta阶段的版本,上线前做至少1周的压力测试,覆盖所有核心场景。
3. 陷阱:忽略安全沙箱,导致数据泄露
案例:某金融公司的Agent没有做工具调用的权限管控,被攻击者通过prompt注入调用了内部的数据库查询工具,泄露了1000+用户的银行卡信息,被监管部门罚款200万。
避坑方案:所有工具调用都必须经过权限校验,代码执行必须在沙箱中运行,禁止Agent访问未授权的内部资源,上线前做安全渗透测试。
性能优化与成本考量
1. 性能优化
- 工具调用缓存:对相同输入的工具调用结果进行缓存,缓存时间根据工具的实时性要求设置,比如天气查询可以缓存1小时,订单查询可以缓存5分钟,可以降低30%以上的工具调用成本和LLM调用次数。
- 长记忆优化:对Agent的长记忆进行向量检索,只返回相关的上下文,减少LLM的输入token长度,降低成本的同时提升响应速度。
- 批量调度:对高并发场景下的Agent请求进行批量调度,合并LLM调用请求,提升推理框架的利用率,降低latency。
2. 成本优化
- 混合部署:非核心业务、POC验证用闭源SaaS Harness,降低开发成本;核心业务、大规模部署用自托管开源Harness,降低长期成本。
- 动态路由:根据请求的复杂度动态选择大模型,简单请求用小模型,复杂请求用大模型,可以降低50%以上的LLM调用成本。
- 资源削峰填谷:对非实时的Agent任务(比如数据分析、文档处理)进行错峰调度,利用空闲的计算资源,降低基础设施成本。
最佳实践Tips
- 优先支持开放标准:选型Harness的时候优先支持Open Agent Protocol等开放标准,避免厂商锁定;
- 业务逻辑和Harness解耦:所有和Harness的交互都通过适配层进行,不要在业务逻辑中直接调用Harness的私有API;
- 工具调用必须加沙箱和权限管控:最小化Agent的权限,禁止未授权的外部访问;
- 全链路可观测:所有Agent的LLM调用、工具调用、状态更新都要留痕,可追溯,可回溯;
- 核心业务自托管:核心业务场景优先选择自托管的开源Harness,数据留在自己手里,可控性更高;
- 多Agent协同用标准协议:不要用私有协议,避免后期跨Harness协同的成本;
- 定期安全审计:每季度做一次Agent的安全审计,排查prompt注入、工具滥用等风险;
- 建立性能基准:每半年评估一次不同Harness的成本、效率、可靠性,选择最适合自己业务的方案;
- 参与开源标准建设:积极反馈业务场景的需求,推动标准的完善,掌握生态话语权;
- 不要过度追求功能丰富度:优先满足业务的核心需求,不要为了没用的功能付出额外的成本。
五、结论
核心要点回顾
- AI Agent Harness是支撑Agent运行的通用基座,是未来Agent生态的核心控制点,当前生态正处于四大阵营博弈的阶段,标准之争是核心矛盾;
- 未来的Harness标准一定会是开放、兼容、跨平台的,不会出现一家独大的局面,OpenAI想垄断标准的可能性极低,开源和云厂商的联合将会推动开放标准成为主流;
- 企业选型Harness的时候要根据业务场景选择,避免盲目绑定单一厂商,通过适配层解耦业务逻辑和Harness,降低迁移成本。
未来趋势展望
我们预测到2026年,Harness生态会形成"1个核心开放标准+N个厂商增值实现"的格局:
- 核心标准由CNCF等中立组织主导,四大阵营共同参与,覆盖工具调用、通信、可观测性、安全等核心模块;
- 各个厂商在标准的基础上提供增值服务,比如OpenAI的优化大模型集成、云厂商的云服务集成、垂直领域的场景化能力;
- Agent会像现在的Web应用一样,开发一次,可以在任意兼容标准的Harness上运行,迁移成本几乎为0。
行动号召
- 如果你是开发者,现在就可以尝试在你的Agent项目中加入适配层,兼容至少2种Harness,避免后期踩坑;
- 如果你是技术决策者,现在就可以组织团队评估不同Harness的优劣势,制定适合自己企业的Harness选型标准;
- 如果你对Harness标准感兴趣,可以参与CNCF Agent Working Group的讨论,或者贡献Open Agent Protocol的开源项目:
- CNCF Agent WG:https://github.com/cncf/wg-agent
- Open Agent Protocol:https://github.com/AI-Engineer-Foundation/agent-protocol
- LangGraph 文档:https://python.langchain.com/docs/langgraph
欢迎在评论区分享你在Harness使用中遇到的问题和经验,我们一起交流探讨!
附录:跨Harness适配层代码示例
以下是一个兼容OpenAI Assistants API和Open Agent Protocol的简单适配层Python代码:
from typing import Dict, Any
import openai
import requests
class HarnessAdapter:
def __init__(self, harness_type: str, config: Dict[str, Any]):
self.harness_type = harness_type
self.config = config
if harness_type == "openai":
self.client = openai.OpenAI(api_key=config["api_key"])
self.assistant_id = config["assistant_id"]
elif harness_type == "oap":
self.oap_endpoint = config["endpoint"]
self.api_key = config["api_key"]
self.agent_id = config["agent_id"]
def create_thread(self) -> str:
if self.harness_type == "openai":
thread = self.client.beta.threads.create()
return thread.id
elif self.harness_type == "oap":
resp = requests.post(
f"{self.oap_endpoint}/threads",
headers={"Authorization": f"Bearer {self.api_key}"},
json={}
)
return resp.json()["threadId"]
def send_message(self, thread_id: str, content: str) -> str:
if self.harness_type == "openai":
self.client.beta.threads.messages.create(
thread_id=thread_id,
role="user",
content=content
)
run = self.client.beta.threads.runs.create_and_poll(
thread_id=thread_id,
assistant_id=self.assistant_id
)
if run.status == "completed":
messages = self.client.beta.threads.messages.list(thread_id=thread_id)
return messages.data[0].content[0].text.value
else:
raise Exception(f"Run failed: {run.status}")
elif self.harness_type == "oap":
resp = requests.post(
f"{self.oap_endpoint}/threads/{thread_id}/messages",
headers={"Authorization": f"Bearer {self.api_key}"},
json={"role": "user", "content": content}
)
run_resp = requests.post(
f"{self.oap_endpoint}/threads/{thread_id}/runs",
headers={"Authorization": f"Bearer {self.api_key}"},
json={"agentId": self.agent_id}
)
run_id = run_resp.json()["runId"]
while True:
status_resp = requests.get(
f"{self.oap_endpoint}/threads/{thread_id}/runs/{run_id}",
headers={"Authorization": f"Bearer {self.api_key}"}
)
status = status_resp.json()["status"]
if status == "completed":
messages_resp = requests.get(
f"{self.oap_endpoint}/threads/{thread_id}/messages",
headers={"Authorization": f"Bearer {self.api_key}"}
)
return messages_resp.json()["messages"][-1]["content"]
elif status == "failed":
raise Exception("Run failed")
# 使用示例
# 切换Harness只需要修改初始化参数,业务逻辑完全不需要修改
# adapter = HarnessAdapter("openai", {"api_key": "xxx", "assistant_id": "xxx"})
adapter = HarnessAdapter("oap", {"endpoint": "http://localhost:8000", "api_key": "xxx", "agent_id": "xxx"})
thread_id = adapter.create_thread()
response = adapter.send_message(thread_id, "帮我查询订单12345的物流状态")
print(response)
(全文约11200字)
更多推荐


所有评论(0)