首页/新闻资讯/正文详情

从 harness-sdk TypeScript SDK v0.5.0 看多智能体组件、结构化输出与 MCP 客户端重构

发布时间:2026/9/27 21:48:19 来源:云帆数科 栏目:资讯中心
从 harness-sdk TypeScript SDK v0.5.0 看多智能体组件、结构化输出与 MCP 客户端重构
人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务【免费下载链接】harness-sdkBuild an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python TypeScript - any model, any cloud.项目地址https://gitcode.com/GitHub_Trending/sdkpython13/harness-sdk点击查看免费下载本文基于 harness-sdk 仓库中 TypeScript SDK 的 v0.5.0 版本变更记录site/src/content/changelog/sdk/typescript-v0.5.0.md系统梳理该版本引入的 10 项改动多智能体组件体系落地、agent loop / app state 命名统一、结构化输出的单次调用覆盖、基于 OpenTelemetry 的遥测实现、MCP 客户端去 monkey patching 重构以及若干工程修复。读者可通过本文掌握 v0.5.0 的核心 API 变化、设计动机与迁移注意事项并能结合 strands-ts/src 源码进一步深入。版本概览一次以多智能体与可观测性为主题的迭代v0.5.0 发布于 2026-03-04是 strands-tsstrands-agents/sdk早期版本演进中承上启下的一环。从变更类型分布看功能新增feat5 项集中在多智能体组件、遥测、结构化输出与状态命名修复fix4 项涵盖构建、导入与文档规范重构refactor1 项即 MCP 客户端去 monkey patching。所有变更均标记为非破坏性breaking: false但其中event loop → agent loop与agent state → app state两处重命名属于符号级调整使用旧命名的下游代码在升级时需要留意详见下文命名统一一节。多智能体组件Graph、Swarm 与节点编排的完整落地v0.5.0 通过两个连续的 PR#574、#589实现了multiagents - components功能。从 strands-ts/src/multiagent/index.ts 的导出面可以看到该模块已经形成一套完整的组件化编排 API编排器接口MultiAgentmultiagent.ts定义了invoke()与stream()两个执行入口任何实现了该接口的自定义编排器都可以通过MultiAgentNode作为节点嵌套进其他编排器实现编排器的递归组合图编排 GraphGraph及其配置类型graph.ts负责按依赖关系解析节点执行顺序群组编排 SwarmSwarm提供基于交接handoff的动态路由模式swarm.ts节点体系Node/AgentNode/MultiAgentNode三种节点类型nodes.ts其中NodeType通过agentNode | multiAgentNode | (string {})保留了自定义节点类型的扩展空间边与事件流Edge承载节点间的边处理逻辑edge.tsevents.ts 定义了BeforeNodeCallEvent、AfterNodeCallEvent、NodeStreamUpdateEvent、MultiAgentHandoffEvent等 11 类流式事件供上层 UI 或监控消费状态与结果模型state.ts 定义了MultiAgentState、NodeState、NodeResult其中ResultStatus收敛为COMPLETED | FAILED | CANCELLED | INTERRUPTED四种终态。从 multiagent.ts 的MultiAgentInvokeOptions看单次编排调用还支持invocationState可变、按引用共享给所有节点的子 Agent前一个节点的 hooks/tools 写入的状态可被后续节点读取与cancelSignal取消信号编排器取消时以异常退出而非干净结果返回与单 Agent 路径的InvokeOptions.cancelSignal语义一致。这一设计让多智能体编排与单 Agent 的执行语义保持统一是 v0.5.0 组件化落地的重要基础。命名统一event loop → agent loopagent state → app statev0.5.0 完成了两处影响面较大的符号重命名分别对应 PR #570rename event loop to agent loop与 PR #591rename agent state to app stateevent loop → agent loop将原先描述 Agent 主循环的 event loop 术语统一为 agent loop。在源码中这一概念贯穿于 strands-ts/src/agent/agent.ts 的主执行流程、hooks/events.ts 的钩子事件体系以及 experimental/vended-tools/stop 等依赖循环语义的模块中agent state → app state将运行期共享状态从 agent state 更名为 app state。其在类型系统中的落点是 types/agent.ts 的InvocationState Recordstring, unknown这是每次invoke/stream调用时传入的可变共享存储被 hooks、工具与插件读写缺省值为{}且由调用方持有、不保证可序列化agent.ts 处的注释明确标注了这一点。两处重命名均为非破坏性变更但从源码结构看任何直接引用旧符号名如AgentState类型或event loop术语的代码在升级时都需要同步调整。结构化输出支持单次调用级 schema 覆盖PR #596 引入structured output - per invocation override即结构化输出 schema 不再局限于构造 Agent 时指定允许在每次调用时覆盖。这一能力在类型系统中有明确体现types/agent.ts 的InvokeOptions新增structuredOutputSchema?: z.ZodSchema注释说明覆盖本次调用中构造器提供的 schemaInvokableAgent.invoke()与stream()的签名均接受该选项types/agent.ts执行结果侧AgentResult携带只读的structuredOutput?: z.outputz.ZodTypetypes/agent.ts即经过 Zod 校验后的结构化输出其序列化遵循既定规则——存在structuredOutput时以 JSON 形式呈现types/agent.ts。同样的覆盖能力也同步到了多智能体节点层NodeInputOptions.structuredOutputSchemanodes.ts允许编排器为单个节点指定独立的输出 schema。这意味着在一个 Graph/Swarm 中不同节点可以产出不同结构的结果而最终统一由 Zod 校验收敛。遥测基于 OpenTelemetry 的 rebased 实现PR #579 为 v0.5.0 带来add rebased telemetry implementation将遥测实现基线对齐到 OpenTelemetry 生态。从 strands-ts/src/telemetry 模块看tracer.ts 提供AgentTrace本地追踪模型每条 trace 拥有独立 UUID、可嵌套子 trace、记录 duration 与 metadata同时通过opentelemetry/api的trace/context/propagation与外部追踪系统打通见 mcp/client.ts 中对 OpenTelemetry API 的直接引用config.ts 负责 TracerProvider 的初始化测试代码config.test.node.ts展示了基于opentelemetry/sdk-trace-node的NodeTracerProvider与ConsoleSpanExporter/OTLPTraceExporter的接入方式并提供tracer provider already initialized的幂等保护meter.ts 承担指标侧能力。结合 v0.5.0 的变更记录本次 rebased 实现的意义在于将遥测从自研追踪模型平滑迁移至 OpenTelemetry 标准接口之上使 Agent 运行轨迹可以被标准 APM 工具消费。MCP 客户端重构移除 monkey patchingPR #593 将 MCP 支持从monkey patching重构为显式依赖官方 MCP 客户端包。当前实现位于 strands-ts/src/mcp/client.ts关键点包括直接导入Client、ClientCredentialsProvider、StreamableHTTPClientTransport、OAuthClientProvider等官方modelcontextprotocol/client符号client.ts不再通过运行时补丁注入定义McpTransport宽化类型client.ts对sessionId做string | undefined收窄使旧版modelcontextprotocol/sdk构造的 transport 无需强转即可兼容——注释明确指出legacy instances keep working这保障了重构过程中的向后兼容McpTooltools/mcp-tool.ts将 MCP 工具统一包装为 SDK 原生工具。测试侧mcp/tests/client-annotations.test.ts 通过InMemoryTransport.createLinkedPair()在真实内存MCP 传输上验证工具注解readOnlyHint、openWorldHint、destructiveHint的透传与直接 mock MCP SDK Client 的 client.test.ts 形成互补覆盖了真实传输 注解透传这一重构后的关键行为。工程修复与文档规范v0.5.0 还包含若干偏工程侧的改动移除 rollup 版本固定#584解除构建工具链中 rollup 的版本钉死恢复按声明范围浮动升级减少依赖锁定的维护成本修复构建导入#599更新一处 import 以修复构建失败属于典型的打包/循环依赖修复清理 docstring 中的name标签#598移除 JSDoc 中与 docstring 重复的name标签让 API 文档生成更干净——这与多智能体组件、结构化输出等大量新增公开 API 的文档化需求直接相关auto-approve strands command and review workflows#572在仓库工程流程层面启用对 strands 命令与 review 工作流的自动批准属于 CI/协作流程优化。升级到 v0.5.0 的关注点综合以上变更从旧版本升级到 v0.5.0 时应重点检查命名迁移确认代码中是否引用了event loop/agent state旧术语或旧符号按 agent loop / app state 语义调整涉及InvocationState的用法不变仍为Recordstring, unknown结构化输出如需在单次调用中覆盖 schema使用invoke(args, { structuredOutputSchema })在多智能体场景使用NodeInputOptions.structuredOutputSchema结果侧统一读取AgentResult.structuredOutputMCP 配置由于 monkey patching 已移除若此前依赖补丁行为需改为显式配置modelcontextprotocol/clienttransport如StreamableHTTPClientTransport或继续使用兼容的 legacy transport 实例遥测接入若使用自研追踪模型可评估迁移到基于 OpenTelemetry 的AgentTrace与标准 exporter 组合。需要说明的是本文所有实现细节均以当前仓库源码为准版本行为如InvocationState缺省值、取消语义、ResultStatus终态集合可能随后续版本演进请以所使用版本的实际类型定义与文档为准。赞分享人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务【免费下载链接】harness-sdkBuild an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python TypeScript - any model, any cloud.项目地址https://gitcode.com/GitHub_Trending/sdkpython13/harness-sdk点击查看免费下载相关推荐MCP Python SDK客户端开发指南构建智能MCP客户端应用MCP Python SDK客户端开发指南构建智能MCP客户端应用 在当今的智能应用开发中与Model Context ProtocolMCP服务器进行人工智能MCP 服务MCP Clients使用 TypeScript SDK 的 registerTool 构建 MCP Tools从 Schema 推导到结构化输出实战使用 TypeScript SDK 的 registerTool 构建 MCP Tools从 Schema 推导到结构化输出实战 在 Model Contex人工智能MCP 服务MCP ClientsJenkinsapi未来路线图即将推出的令人期待的10个新功能Jenkinsapi未来路线图即将推出的令人期待的10个新功能 Jenkinsapi作为Python开发者访问Jenkins持续集成服务器的终极工具正在不断上一篇Dagger v0.10.3 版本变更解析Directory.export 的 wipe 参数、Secret.Name 字段与路径修复背后的实现下一篇3个实用技巧轻松掌控你的惠普暗影精灵笔记本性能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

企业网站建设动图详解:搞定备案与源码下载实战
企业网站建设动图详解:搞定备案与源码下载实战

企业网站建设动图详解:搞定备案与源码下载实战 备案流程一头雾水,盯着工信部ICP备案系统的界面发呆,是不是觉得像天书一样难懂?很多站长在准备做企业官网时,最大的拦路虎不是代码,而是不知道如何合规上线。今天不聊虚的,直接拆解【企业网站建设动图… · 2026/9/27 21:48:19

反激开关电源的初级线圈平均电流和峰值电流
反激开关电源的初级线圈平均电流和峰值电流

不同的资料会有不同的公式 1、TOPSwitch Flyback Design Methodology中 初级线圈平均电流: 峰值电流: https://www.power.com/sites/default/files/forum/files/AN-16.pdf?utm_sourcechatgpt.com#page8.08 这个文档中的17、18页 2、《精通开关电源设计… · 2026/9/27 21:48:19

50 岁差点被优化的老电工,靠一手修板本事,拿 2 万月薪
50 岁差点被优化的老电工,靠一手修板本事,拿 2 万月薪

前阵子跟老同行喝酒,聊起以前一块在厂里混的老周,一桌人都跟着唏嘘。谁能想到,当年50岁、天天愁着要被厂里优化的老电工,现在驻在越南的工厂里,月薪两万,包吃包住,干了快两年,攒的钱… · 2026/9/27 21:48:13

Paperclip:把一群 AI Agent 当数字员工派活的开源控制平面
Paperclip:把一群 AI Agent 当数字员工派活的开源控制平面

如果你手上同时跑着十几个 agent,大概率遇到过这个场面:谁在跑、跑到第几步、上一次是谁授权的、哪个团队的任务混进了哪个项目——答案散在几个 shell 窗口、一份 cron 表和一堆聊天记录里。Paperclip(paperclipai/paperclip)想干的就是把这些收进一个界面:它是一个开源的… · 2026/9/27 22:30:08

Agent 小知识:用 TaoToken 统一 Key 把动态 Prompt 做成系统组件
Agent 小知识:用 TaoToken 统一 Key 把动态 Prompt 做成系统组件

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:30:08

精华帖分享|20241022 学以致用 用cursor开发一个因子展示页面:TaoToken 统一 Key 接入 Flask 配置骨架
精华帖分享|20241022 学以致用 用cursor开发一个因子展示页面:TaoToken 统一 Key 接入 Flask 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:30:08

Qt6Widgets 多会话 MCP Server 改造:TaoToken 配置与 QtConcurrent 并发骨架
Qt6Widgets 多会话 MCP Server 改造:TaoToken 配置与 QtConcurrent 并发骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:30:08

生成式人工智能在网络攻击中的13种滥用方式:用 TaoToken 统一 Key 复现大模型攻击链
生成式人工智能在网络攻击中的13种滥用方式:用 TaoToken 统一 Key 复现大模型攻击链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:30:02

2026年03月21日全球AI前沿动态:TaoToken 统一 Key 接入智能体与机器人算力调度
2026年03月21日全球AI前沿动态:TaoToken 统一 Key 接入智能体与机器人算力调度

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:30:02

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码