人工智能大模型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点击查看免费下载本文以 typescript-v1.12.0 变更日志 为骨架系统梳理 strands-agents/sdkstrands-ts1.12.0 版本的核心演进MCP 工具过滤与命名前缀、并发 hydration 性能优化、Claude 5 / GPT-5.6 上下文窗口上限、estimateUtilization利用率估算、swarm 重复交接检测以及 sandbox-routed shell 工具的破坏性重命名。读完本文你将掌握该版本每一条关键变更的配置方式、底层实现位置与升级注意点并理解该仓库 changelog 文件的生成与维护机制。版本概览一次以 MCP 与上下文治理为核心的增量发布1.12.0 发布于 2026-08-07见变更日志 frontmatter 的date字段共收录 37 条变更涉及 MCP、模型上下文、多智能体 swarm、HITL 干预、会话持久化、遥测等多个领域。从条目类型分布看本版本以feat新功能和fix修复为主包含1 条 breaking changebreaking: true其余全部向后兼容。各领域变更数量与类型速览依据 typescript-v1.12.0.md 的entries统计领域scope主要变更类型mcp搜索片段并发 hydration、依赖锁定 v2.0.0、文档内容索引线程安全perf / fixtsmcpMCP 工具过滤与命名前缀featmodelClaude 5 / GPT-5.6 上下文窗口上限、estimateUtilization方法feattsmultiagentswarm 重复交接检测featinterventions-tsHITL 增加 LLM-as-judge 工具风险分类器feathil中断状态跨取消恢复与中间件重读保持fixstorage-tsstorage 成为 Agent 顶层可选参数feattelemetryexecute_tool span 记录 gen_ai 工具调用参数与结果fixvended-toolssandbox-routed bash 工具重命名为 shellrefactorbreakingsession快照作用域校验fixMCP 工具治理过滤、命名前缀与配置默认值1.12.0 最重要的功能之一是 PR #3415「add MCP tool filtering and name prefixes」type: feat, scope: ts, areas: [mcp]它为 MCP 客户端引入了工具级治理能力解决多 MCP 服务器接入时工具名冲突与工具面过大的问题。过滤与前缀的类型定义在 strands-ts/src/mcp/client.ts 中可以看到完整的类型定义/** 判定工具是否匹配过滤器接收的是工具面向 Agent 的名字 */ export type McpToolFilterCallback (tool: McpTool) boolean /** 字符串精确匹配服务端工具名RegExp 从名字开头匹配同 Python 的 Pattern.match回调接收工具对象 */ export type McpToolMatcher string | RegExp | McpToolFilterCallback /** 控制客户端暴露哪些 MCP 工具的过滤器 */ export interface McpToolFilters { /** 存在时只有匹配至少一个 matcher 的工具会被暴露 */ allowed?: McpToolMatcher[] /** 匹配至少一个 matcher 的工具会被排除即使它同时被 allowed 命中 */ rejected?: McpToolMatcher[] } /** 客户端选项工具名的前缀与过滤器 */ export interface McpClientOptions { /** 面向 Agent 的工具名前缀按 prefix_toolName 拼接 */ prefix?: string /** 控制该客户端暴露哪些工具的过滤器 */ toolFilters?: McpToolFilters }关键语义prefix统一为工具名加前缀以避免多服务器间命名冲突最终对模型暴露的名字形如server_read_fileallowed与rejected的优先级rejected优先于allowed——即使某工具同时命中两者的规则也会被排除匹配规则字符串精确匹配服务端工具名RegExp采用从头匹配与 PythonPattern.match语义一致也支持传入回调做自定义判定逐调用覆盖McpListToolsOptions 允许在listTools调用时传入prefix: 或toolFilters: {}来临时禁用构造时的默认值。配置加载与默认值合并在 strands-ts/src/mcp/config.ts 的McpServerConfig中每个服务器都可单独声明prefix与toolFilters。从 client.test.ts 的测试用例可以看出默认值合并逻辑构造时的prefix/toolFilters作为全局默认服务器级配置可覆盖全局默认显式传空字符串prefix: 与空对象toolFilters: {}会关闭继承的默认值prefixWithServerName: true时自动以服务器名作为前缀并对服务器名中不支持的工具名字符做清洗见 config.test.node.ts显式的服务器级prefix优先于prefixWithServerName。此外config.test.node.ts 还验证了配置过滤器字符串会被编译为正则且prefix与过滤模式中支持${ENV_VAR}环境变量插值。调用侧行为前缀与过滤器同样作用于工具调用客户端会记录每个工具的服务端名字_serverNameclient.test.ts 验证了「过滤与加前缀作用于每一页分页结果且以服务端名字调用带前缀的工具」的行为——即listTools返回带前缀的 Agent 侧名字而callTool内部还原为服务端原始名字发起请求。MCP 性能与稳定性并发 hydration、依赖锁定与线程安全本版本在 MCP 侧还包含一组性能与稳定性修复并发 hydration 搜索片段PR #3435type: perf将搜索片段的 hydration 过程改为并发执行减少多文档场景下的串行等待锁定 MCP 依赖 v2.0.0PR #3524type: fix将modelcontextprotocol/*相关依赖固定在 2.0.0 以下规避新主版本的破坏性变更这与 client.ts 从modelcontextprotocol/client导入的实现保持一致hydration 时索引文档内容并保证线程安全PR #3502type: fix文档内容在 hydration 阶段即被索引同时对索引操作加了线程安全保护避免并发访问竞态。从 strands-ts/src/mcp 目录结构看MCP 模块包含client.ts、config.ts、server.ts及对应的测试目录上述改动都落在该模块的既有扩展路径上。上下文窗口管理Claude 5 / GPT-5.6 上限与 estimateUtilization本版本在模型与上下文领域有两项新能力新增 Claude 5 与 GPT-5.6 家族的上下文窗口上限PR #3629type: feat, areas: [context, model]为 Claude 5 与 GPT-5.6 模型家族补充了上下文窗口限制配置使这些新模型在主动上下文管理proactive context management中能够被准确计算占用率。模型家族的上下文窗口限制集中在模型配置层可在模型配置的contextWindowLimit中设置。Model 基类新增 estimateUtilization 方法PR #3641type: feat为 Model 基类 新增了estimateUtilization(inputTokens: number): number方法用于估算给定输入 token 数对模型上下文窗口的占用比例estimateUtilization(inputTokens: number): number { let contextWindowLimit this.getConfig().contextWindowLimit if (!contextWindowLimit) { contextWindowLimit DEFAULT_CONTEXT_WINDOW_LIMIT warnOnce( logger, contextWindowLimit is not set on the model, using default of ${DEFAULT_CONTEXT_WINDOW_LIMIT} for utilization estimate | set contextWindowLimit in your model config for accurate results ) } return inputTokens / contextWindowLimit }实现要点返回值为inputTokens / contextWindowLimit即 0–1 的占用比例大于 1.0 表示上下文溢出若模型未配置contextWindowLimit会回退到DEFAULT_CONTEXT_WINDOW_LIMIT并发出一次性警告提示在模型配置中设置以获得准确估算该方法与既有的countTokensmodel.ts默认基于字符启发式支持子类用原生 token 计数 API 覆盖配套使用为主动上下文管理如达到阈值触发压缩提供输入。多智能体 swarm重复交接检测PR #3461type: feat, areas: [multiagent]为 swarm 增加了重复交接检测用于识别「A→B→A→B…」这类陷入循环的交接模式。实现位于 strands-ts/src/multiagent/swarm.ts/** 完成节点的检测窗口。默认为 0配合 repetitiveHandoffMinUniqueAgents 启用 */ repetitiveHandoffDetectionWindow?: number /** 检测窗口内要求的唯一节点数。默认为 0配合 repetitiveHandoffDetectionWindow 启用 */ repetitiveHandoffMinUniqueAgents?: number两个配置项必须成对启用才能生效校验逻辑swarm.ts要求两个值要么都为 0关闭检测要么都为正数启用检测repetitiveHandoffMinUniqueAgents不能超过检测窗口大小最小值也不能超过 swarm 的节点总数。运行时行为swarm.ts在每轮交接后_checkRepetitiveHandoff会在滑动窗口内统计出现的唯一 Agent 数量若窗口内唯一 Agent 数低于配置的repetitiveHandoffMinUniqueAgents即判定为重复交接循环以Status.FAILED终止 swarm 执行并给出repetitive_handoff_reason的调试日志避免无限空转消耗 token。HITL 与中断LLM-as-judge 风险分类器与状态保持LLM-as-judge 工具风险分类器PR #3566type: feat, scope: interventions-ts, areas: [hil, interventions]为 human-in-the-loopHITL干预新增了LLM-as-judge 工具风险分类器在把工具调用提交给人工审批之前先由一个 LLM 评估器对工具调用的风险等级进行分类辅助人工快速决策哪些调用需要重点审查。该能力位于 interventions 模块对应仓库 strands-ts/src/interventions 与 strands-ts/src/vended-interventions 目录。中断状态跨取消恢复保持PR #3615type: fix, areas: [hil]修复了中断状态在两种场景下的丢失问题取消后恢复cancelled resumes执行被取消后再次恢复时中断状态得以保持中间件重读middleware re-reads中间件重新读取上下文时不再丢失中断状态。该修复保证了 HITL 流程中人工中断interrupt与恢复resume语义的可靠性相关实现与测试位于 strands-ts/src/interrupt.ts 及多智能体中断测试swarm 的 interrupts 测试。会话持久化快照作用域校验与 storage 顶层化快照作用域校验PR #3593type: fix, scope: session, areas: [persistence]为会话快照增加了作用域scope校验。从存储实现看会话快照按scopes/scopeType/scopeId/snapshots/的目录结构组织见 file-storage.test.node.ts 与 s3-storage.test.ts包括snapshot_latest.json与immutable_history/下的不可变历史快照。作用域校验确保读取或写入快照时作用域标识符合法防止越界访问其他作用域的数据。storage 成为 Agent 顶层可选参数PR #3660type: feat, scope: storage-ts, areas: [agent, sessions]允许将storage直接作为Agent构造的顶层可选参数传入而不再需要嵌套配置。这让「为 Agent 挂载文件存储 / S3 存储」的用法更加扁平直观会话与记忆的持久化配置可以在 Agent 初始化处一目了然。遥测execute_tool span 记录 gen_ai 工具调用元数据PR #3550type: fix, scope: telemetry, areas: [otel]在execute_toolspan 上补充了 OpenTelemetrygen_ai语义约定要求的两个属性gen_ai.tool.call.arguments工具调用参数gen_ai.tool.call.result工具调用结果。这使得基于 OpenTelemetry 的观测平台如 tracing 后端、LLM 可观测性工具能够标准地关联每次工具调用的入参与出参实现工具执行链路的完整可追溯。相关实现位于 strands-ts/src/telemetry 模块。Breaking Changesandbox-routed bash 工具重命名为 shell本版本唯一的破坏性变更来自 PR #3574type: refactor, breaking: true, scope: vended-toolssandbox-routed bash 工具重命名为 shell。重命名后的工具实现位于 strands-ts/src/vended-tools/shell其 README 说明了两个容易混淆的工具的区别makeShell沙箱路由 shell 工具无状态每次调用在全新 shell 中执行变量与工作目录不跨调用保持由沙箱决定运行 shell本地与 Docker 用shSSH 用远程登录 shell命令不得依赖 bash 专属语法。Docker 与 SSH 沙箱通过getTools()内置提供该工具测试中的工具名形如sandbox_shell见 docker.test.node.tsbash持久化工具位于 strands-ts/src/vended-tools/bash由宿主直接派生、跨调用保持状态要求宿主存在 bash。迁移路径import { Agent } from strands-agents/sdk import { makeShell } from strands-agents/sdk/vended-tools/shell const agent new Agent({ tools: [makeShell()] }) await agent.invoke(List all files in the working directory)在创建时绑定沙箱内置沙箱的 vend 方式import { DockerSandbox } from strands-agents/sdk/sandbox import { makeShell } from strands-agents/sdk/vended-tools/shell const sandbox new DockerSandbox({ container: my-container }) const shellTool makeShell(sandbox)makeShell的输入为{ command: string; timeout?: number }默认超时 120 秒返回{ output, error, exit_code }超时抛出ShellTimeoutErrorerror.partial携带超时前输出exit_code: 124沙箱执行失败抛出ShellExecutionError。两者都继承自重命名前的Bash*错误类型因此旧代码的catch子句仍然兼容。兼容别名makeBash以重命名前的默认名bash构建同一工具将在 v2.0.0 移除新代码应统一使用makeShell。这也是本版本升级时唯一需要主动处理的破坏性变更。变更日志文件的生成与维护机制上述条目并非手写而是由仓库的 changelog 生成管线产出。site/scripts/changelog 目录包含完整工具链types.ts定义Sdk、Language、TagMeta、Release、ParsedEntry、Enrichment、RenderedEntry、ReleaseFile等类型其中ReleaseFile与 site/src/content/changelog/sdk/typescript-v1.12.0.md 的 frontmatter 结构一一对应render-markdown.ts手写的最小 YAML 发射器将条目渲染为 flow map 格式- { type: ..., breaking: ..., scope: ..., areas: [...] }并处理 YAML 保留字、数字开头等标量转义问题mergePreserving重新同步时保留人工撰写的highlights块与正文而条目、PR/commit 链接等一律重新生成配套的 parse-release-body.ts、enrich.ts、github-client.ts、tag-meta.ts 分别负责解析 GitHub Release 正文、按 PR 元数据标签、合并 commit、作者、涉及文件补全areas/breaking/commit信息、对接 GitHub API以及维护 tag 与版本的对应关系。因此entries中每条记录的typefeat / fix / perf / refactor / chore / docs / other、breaking、scope、areas、pr、commit、author字段都是由 Release 正文解析 PR 元数据增强得到的结构化事实读者可以放心将其作为版本差异分析的数据源。升级建议基于以上分析从 v1.12.0 之前的版本升级时建议按以下顺序处理处理破坏性变更将沙箱路由的makeBash用法迁移到 makeShell或暂时保留makeBash别名并在 v2.0.0 前完成迁移评估 MCP 配置为新接入的 MCP 服务器设置prefix与toolFiltersallowed/rejected利用prefixWithServerName避免多服务器工具名冲突补全模型配置为使用 Claude 5、GPT-5.6 家族的模型设置contextWindowLimit配合新增的 estimateUtilization 获得准确的上下文占用估算检查 swarm 配置若 swarm 曾出现交接循环空转可启用repetitiveHandoffDetectionWindow与repetitiveHandoffMinUniqueAgents成对配置进行防护更新遥测与持久化用法确认观测平台能够接收新增的gen_ai.tool.call.*span 属性并将storage收敛为Agent顶层参数。赞分享人工智能大模型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点击查看免费下载相关推荐windows-rs 中的 Windows Window轻量级 Win32 窗口创建与消息循环实战指南windows rs 中的 Windows Window轻量级 Win32 窗口创建与消息循环实战指南 导读 windows window 是 windows人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务strands-agents Python SDK v0.1.1 版本解读Bedrock 请求标识、LlamaAPI 文档与发布流程strands agents Python SDK v0.1.1 版本解读Bedrock 请求标识、LlamaAPI 文档与发布流程 本文基于仓库内 chan人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务strands-agents Python SDK v1.31.0 技术解读A2A 上下文传递、Graph 执行优化与 OpenAI 模型层修复strands agents Python SDK v1.31.0 技术解读A2A 上下文传递、Graph 执行优化与 OpenAI 模型层修复 strand人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务上一篇Thorium 浏览器为关注性能与媒体解码的 Chromium 用户准备的安装与配置指南下一篇asyncpg连接池公平调度避免连接饥饿创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
