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