
人工智能大模型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),仅供参考