@strands-agents/sdk TypeScript v1.12.0 发布解读:MCP 工具治理、上下文利用率估算与 swarm 防循环

发布时间:2026/9/27 8:56:11

@strands-agents/sdk TypeScript v1.12.0 发布解读:MCP 工具治理、上下文利用率估算与 swarm 防循环 人工智能大模型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),仅供参考
延伸阅读

更多相关文章

2026/9/27 8:56:11

祖庙网站建设公司怎么选?别只看多少钱,这3点决定生死

祖庙网站建设公司怎么选?别只看多少钱,这3点决定生死 网站做好了没人访问,是不是让你觉得那几万块花得特别冤?在佛山祖庙这片做生意的地界,我见过太多老板盯着“多少钱”问来问去,结果做出来的站,不仅慢得让人想摔键盘,连个像样的客户电话都接不到。…

2026/9/27 8:56:11

可信网站认证不在有用吗一文搞懂独立站长避坑指南

可信网站认证不在有用吗一文搞懂独立站长避坑指南 网站做好了没人访问,是不是让你抓狂?很多站长花大钱建了站,SEO也做了,流量却像死水一样纹丝不动。这时候,有人告诉你买个“可信网站认证”就能提升权重,也有人骂它是智商税。到底…

2026/9/27 8:51:11

连江网站建设服务避坑指南:5个关键实践终结拖延

连江网站建设服务避坑指南:5个关键实践终结拖延 改个需求建站公司拖一周,这种憋屈感相信不少企业主都体会过。在连江这片电商与制造业交织的热土上,寻找靠谱的 连江网站建设服务 时,信息不对称导致的被动局面太常见了。其实,打破这种僵局的…

2026/9/27 9:41:14

WordPress导航栏去掉避坑指南:从被黑到重建的实操复盘

WordPress导航栏去掉避坑指南:从被黑到重建的实操复盘 网站突然打不开,浏览器弹出“此网站不安全”或者打开后满屏乱码广告,那种心脏骤停的感觉,做过网站的都懂。很多新手站长第一反应是“我是不是被黑挂马了”,结果一通乱删文件,反而把数据库…

2026/9/27 9:41:14

wordpress导入json怎么选

从零搭建WordPress站点,导入JSON只需3步,避开90%的坑 找建站公司报价五万,自己动手可能只要一台云服务器。很多老板在【wordpress导入json】这一步卡壳,要么格式报错,要么数据丢失。别慌,今天拆解一个真实案例,教你【从…

2026/9/27 9:41:14

长春seo按天计费避坑指南:3步图解步骤解决网站被黑挂马难题

长春seo按天计费避坑指南:3步图解步骤解决网站被黑挂马难题 网站突然打不开,浏览器弹出红色警告“存在安全风险”,后台代码里全是看不懂的乱码和恶意跳转链接。这时候你最想做的不是优化排名,而是立刻把网站救回来。很多长春本地的企业老板和运营人员…

2026/9/27 9:41:14

如何做公司网站的保姆级教程

告别域名服务器焦虑:从零搭建公司网站的实操指南 很多项目经理一听到“建网站”,脑子里蹦出来的不是页面设计,而是“域名去哪买”、“服务器选哪家”、“备案要多久”。这确实是 从零搭建…

2026/9/27 9:36:14

企业建站平台哪个好?看完这7步完整流程不再被坑

企业建站平台哪个好?看完这7步完整流程不再被坑 找建站公司怕被坑高价?别急,先搞懂这7步完整流程。很多老板一上来就问“哪家便宜”,结果网站做出来慢如蜗牛,后台操作像填表,SEO更是零分。 选对平台比选对供应商更重要。…

2026/9/27 0:00:45

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/27 0:00:45

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:45

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:45

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/27 0:00:45

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:45

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/25 18:34:56

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑