新闻详情

新闻详情

首页 / 资讯中心 / 详情

strands-agents Python SDK v1.35.0 更新解析:Bedrock Service Tier、MCP 元数据透传与流式/遥测稳定性修复

发布时间:2026/9/27 23:40:00来源:尧图网络
strands-agents Python SDK v1.35.0 更新解析:Bedrock Service Tier、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点击查看免费下载strands-agents Python SDK v1.35.02026-04-08 发布聚焦于三类关键改进为 Bedrock 模型新增按请求级控制延迟与成本的服务层级Service Tier配置修复 MCP 工具调用中_meta自定义元数据被静默丢弃的问题以及围绕滑动窗口对话裁剪、OpenTelemetry 遥测与 Anthropic 流式响应的一系列稳定性修复。本文基于官方更新日志展开并结合仓库源码深入讲解各项改动的底层实现与正确用法读完即可评估是否升级、如何配置新参数以及如何规避对应的历史缺陷。版本概览本次版本tagpython/v1.35.0包含 1 项新特性与 8 项修复类改动均为非破坏性breaking: false变更可在现有 Agent 代码上平滑升级。其中值得特别关注的是新特性BedrockModel支持service_tier配置PR#1799修复滑动窗口对话管理器强制裁剪起点必须是 user 消息PR#2087修复MCP 工具调用正确转发_meta字段PR#1918、PR#2081修复工具异常正确传播到 OpenTelemetry span 的StatusCode.ERRORPR#2046修复Anthropic 流提前终止时的崩溃与 Pydantic 弃用告警PR#2047、PR#2044。同时该版本迎来了 mananpatel320、mattdai01、KKamJi98、gautamsirdeshmukh 等新贡献者社区参与度进一步提升。新特性Bedrock Service Tier 支持PR#1799背景按请求控制延迟与成本Amazon Bedrock 引入了服务层级service tiers机制允许调用方在同一模型 ID 上按请求粒度选择Priority优先更快但更贵、Standard标准与Flex灵活更便宜但更慢三种模式从而在延迟与成本之间做出显式权衡。BedrockModel新增的service_tier配置字段正是为接入这一能力而生其暴露方式与 guardrails 等其他 Bedrock 专属特性保持一致都是模型配置的一部分。配置方式与代码示例在 strands-py/src/strands/models/bedrock.py 中service_tier被定义在BedrockConfigtotalFalse的配置 TypedDict内类型为str | None。使用时直接在构造BedrockModel时传入即可from strands import Agent from strands.models.bedrock import BedrockModel # Use flex tier for cost-optimized batch processing model BedrockModel( model_idus.anthropic.claude-sonnet-4-20250514-v1:0, service_tierflex, ) agent Agent(modelmodel) # Use priority for latency-sensitive applications realtime_model BedrockModel( model_idus.anthropic.claude-sonnet-4-20250514-v1:0, service_tierpriority, )有效值为default、priority与flex。default对应标准层级priority面向延迟敏感型应用flex则适合成本优先的批处理场景。如果所指定的模型或区域不支持该层级Bedrock 会返回ValidationException因此生产环境应先确认目标模型与区域的服务层级支持范围。底层请求构造原理从源码看该参数在请求格式化阶段被直接映射进 BedrockconverseAPI 的serviceTier字段。bedrock.py 的 format_request 实现 中返回的请求字典使用条件展开语法**({serviceTier: {type: self.config[service_tier]}} if self.config.get(service_tier) else {}),这意味着当service_tier未设置None时请求体中不会携带该字段Bedrock 将回落到服务端默认行为完全不影响既有调用只有显式配置后才注入serviceTier.type。此外字段的官方注释bedrock.py L183-L186明确给出了取值范围及其影响并提示查阅 AWS 文档确认各模型与区域的支持矩阵。修复滑动窗口对话管理器强制 user-first 裁剪PR#2087问题根因SlidingWindowConversationManager负责在对话超出窗口时裁剪最旧消息以维持上下文可控。但旧实现存在两个隐患裁剪点可能落在一条assistant 消息上导致裁剪后的对话以 assistant 消息开头——以 Bedrock Nova 为代表的一批模型提供商会对此直接抛出ValidationExceptiontoolUseguard 中存在短路逻辑缺陷可能让孤立orphaned的 tool-use 块在窗口边界处漏网破坏 toolUse/toolResult 的成对完整性。裁剪点校验的源码实现修复后的裁剪逻辑位于 sliding_window_conversation_manager.py 的reduce_context方法中它先按窗口大小计算start_index再调用find_valid_trim_point寻找合法裁剪点。该校验函数context_compression.py L107-L146对每个候选消息依次检查三条规则role必须是user绝大多数模型提供商的要求不能是孤立orphaned的toolResult消息如果包含toolUse其下一条消息必须紧接着包含对应的toolResult否则跳过。只有同时满足上述条件的消息索引才会被选为裁剪起点从而保证裁剪后对话的第一条消息一定是 user 消息。成对工具块的兜底策略纯工具密集型对话有时找不到纯净的 user 消息裁剪点。为此reduce_context额外引入了 Python 侧特有的兜底逻辑_find_tool_pair_trim_pointsliding_window_conversation_manager.py L276-L299它寻找assistant(toolUse) user(toolResult)的完整配对边界作为裁剪点——模型提供商会把完整的 toolUse/toolResult 配对视为合法的对话延续。若连这样的边界都不存在在响应式溢出恢复e非 None场景下会抛出ContextWindowOverflowException否则记录 warning 并保持消息不变。修复MCP 工具调用正确转发_metaPR#1918、PR#2081问题根因MCP 规范允许通过请求中的_meta字段携带自定义元数据常用于传递分布式追踪上下文等。但旧版MCPClient从未把_meta转发给ClientSession.call_tool()导致这些元数据被静默丢弃。更隐蔽的是OTEL 插桩在序列化时使用了model_dump()而非model_dump(by_aliasTrue)把本应输出为_meta的字段序列化成了meta直接破坏 MCP 载荷。修复后的调用路径从 mcp_client.py 的_create_call_tool_coroutine可以看到修复后的实现把meta作为显式参数贯穿两条执行路径直接调用路径compat_call_tool(session, name, arguments, metameta, ...)任务增强task-augmented路径_call_tool_as_task_and_poll_async(..., metameta, ...)或 mcp 2.x 下的_call_tool_with_task_and_poll_async(..., metameta, ...)。关键设计是在分支之前统一注入一次meta inject_trace_context(meta)mcp_instrumentation.py 负责把当前 OpenTelemetry 上下文注入到_meta中确保两条路径携带相同的增强元数据且注入发生在调用方线程上、通过asyncio.run_coroutine_threadsafe的背景循环运行时仍能保持调用方活跃 span 的上下文关联。mcp 2.x 下 dispatcher 会注入自己的 traceparent父 span 指向调用方 span此时注入变为冗余而非错误链路依然完整。对于调用方而言若自定义工具调用依赖 MCP_meta传递上下文如链路追踪透传升级到 v1.35.0 后即可直接生效无需额外配置。修复工具异常传播到 OpenTelemetry spanPR#2046问题根因此前当工具执行抛出异常时原始异常在到达end_tool_call_span之前就被丢弃导致所有工具 span 即使失败也显示为StatusCode.OK可观测性后端如 Langfuse无法区分成功与失败的工具调用。修复后的传播行为tracer.py 的end_tool_call_span接收error: Exception | None参数当error存在时span 状态被标记为错误StatusCode.ERROR并保留原始异常类型与 traceback同时在工具结果存在且状态为error的情况下也不会再错误地写入成功结果属性而是通过 span status 记录失败。调用侧tools/executors/_executor.py L115-L128在工具抛出异常时以result_event.exception作为error传入确保异常信息完整流入遥测链路。对使用 OpenTelemetry 监控 Agent 工具调用的团队升级后可在 tracing 后端直接依据StatusCode.ERROR与异常详情定位失败工具无需再靠日志猜测。修复Anthropic 流提前终止与 Pydantic 告警PR#2047、PR#2044提前终止导致的崩溃旧实现中Anthropic 流式响应若在最终的message_stop事件前提前终止例如网络中断、服务端异常、空流代码会尝试访问event.message.usage——但部分事件类型根本没有.message属性从而触发AttributeError崩溃。改用get_final_message()聚合用量修复后的实现anthropic.py L967-L977改为使用 Anthropic SDK 的stream.get_final_message()读取累积的 usage 元数据该方法会聚合整个流中所有事件携带的 token 用量且能优雅处理提前终止与空流场景万一get_final_message()本身抛出AssertionError例如消息快照不可用代码会记录 warning 并跳过用量统计而不是让整个 Agent 崩溃。随后的 usage 归并逻辑对message_snapshot.usage.model_dump()中所有整数类型的用量字段做累加保证流式调用结束后依然能产出准确的metadata用量事件。message_stop 事件的 Pydantic 告警消除与流处理相关的另一处清理是构造最终的message_stopchunk 时不再经过完整的 Pydantic 序列化而是直接构建字典{type: message_stop, message: {stop_reason: stop_reason}}anthropic.py L1001-L1004避免消息中包含ParsedTextBlock等对象时触发 Pydantic 弃用警告同时保持输出载荷结构不变。升级建议与验证要点升级路径v1.35.0 全部变更为非破坏性升级后无需修改既有 Agent 代码若使用 Bedrock 且希望优化成本/延迟可按上文示例配置service_tier。验证重点使用 Bedrock Nova 等强制 user-first 顺序的模型时长对话 工具循环场景下不再出现因裁剪起点非法导致的ValidationException依赖 MCP_meta透传上下文含链路追踪的自定义 MCP server 工具调用元数据不再丢失且序列化字段名为_meta工具失败在 OpenTelemetry/Langfuse 中呈现为StatusCode.ERROR且携带原始异常类型与 tracebackAnthropic 模型在流中断/超时等异常场景下 Agent 进程不再因AttributeError崩溃。对应实现与配置均可直接查阅本仓库源码BedrockModel、滑动窗口对话管理器、MCP 客户端、遥测 tracer 与 Anthropic 模型流式实现便于在升级前核对行为细节或做二次开发。赞分享人工智能大模型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点击查看免费下载相关推荐Strands Agents Python SDK v0.1.6 深度解析Bedrock 非流式模式、工具名校验与可观测性修复Strands Agents Python SDK v0.1.6 深度解析Bedrock 非流式模式、工具名校验与可观测性修复 Strands Agents人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务Strands Python SDK v1.9.1 版本解析Bedrock 内容块解耦、结构化输出回调与 MCP 遥测幂等修复Strands Python SDK v1.9.1 版本解析Bedrock 内容块解耦、结构化输出回调与 MCP 遥测幂等修复 Strandsstrands人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务strands-agents Python SDK v1.33.0 解析摘要式上下文管理修复、Swarm 测试稳定性与 LiteLLM 供应链安全加固strands agents Python SDK v1.33.0 解析摘要式上下文管理修复、Swarm 测试稳定性与 LiteLLM 供应链安全加固 str人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务上一篇零训练时间序列预测10 分钟跑通 Chronos 拿到预测区间下一篇三步搞定Glide内存缓存动态调整告别OOM的实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

中山网站建设制作.超凡科技新手入门:3招避开改需求拖一周的坑 2026/9/28 0:33:18

中山网站建设制作.超凡科技新手入门:3招避开改需求拖一周的坑

中山网站建设制作.超凡科技新手入门:3招避开改需求拖一周的坑 改个需求建站公司拖一周?别忍了,这不仅是效率问题,更是技术债在爆发。很多中山的老板和新手在找【中山网站建设制作.超凡科技】这类团队时,往往只盯着价格,却忽略了底层架构的灵活性,结…

阅读更多 →
不同网站相似的页面百度收录吗适合什么场景 2026/9/28 0:33:11

不同网站相似的页面百度收录吗适合什么场景

懂行老手揭秘:不同网站相似页面百度收录吗?别被建站报价忽悠 找建站公司最怕什么?不是功能做不出来,是怕花大价钱买了个“百度不收录”的壳子。很多老板拿着报价单问:“为什么你们报价8000,隔壁才3000?”老手心里苦啊,这3000块的站,代码…

阅读更多 →
本地建设网站软件下载避坑指南:5个核心注意事项 2026/9/28 0:32:52

本地建设网站软件下载避坑指南:5个核心注意事项

本地建设网站软件下载避坑指南:5个核心注意事项 模板网站太丑不够用,这是无数初创企业和独立开发者踩过的坑。当你决定放弃那些千篇一律的SaaS模板,转向本地化部署或源码开发时,“本地建设网站软件下载”就成了绕不开的第一步。别急着去下载站乱点鼠…

阅读更多 →
网页微信下载避坑指南:3步识别高危钓鱼陷阱 2026/9/28 0:32:46

网页微信下载避坑指南:3步识别高危钓鱼陷阱

网页微信下载避坑指南:3步识别高危钓鱼陷阱 找建站公司怕被坑高价?别只盯着报价单看,真正的坑往往藏在“功能实现”的细节里。很多甲方对接人为了图省事,直接让开发团队接入“网页微信下载”或类似快捷登录功能,结果上线后没几天,用户数据就被拖库,服…

阅读更多 →
WordPress删除全部评论要花多少钱?新手避坑指南 2026/9/28 0:32:27

WordPress删除全部评论要花多少钱?新手避坑指南

WordPress删除全部评论要花多少钱?新手避坑指南 网站突然被黑,后台全是垃圾评论,甚至页面挂满暗链,这种绝望感老站长都懂。很多新手第一反应是问:处理这个安全问题,彻底清除并防止复发,到底要 多少钱…

阅读更多 →
微信朋友圈的网站连接怎么做详细步骤 2026/9/28 0:31:55

微信朋友圈的网站连接怎么做详细步骤

3步搞定微信朋友圈的网站链接,避开挂马坑用免费工具 昨天凌晨,后台突然跳出警报:官网被植入了一段恶意JS代码,导致打开页面直接跳转博彩网站。那一刻心真的凉半截,这种网站被黑挂马不知道怎么办的心情,谁经历过谁懂。别慌,先别急着重启服务器,打开…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉