人工智能大模型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点击查看免费下载本篇文章基于当前仓库中 Python SDK v1.23.0 发布说明 展开系统梳理该版本在模型重试、钩子Hook体系、模型兼容性、遥测与多智能体等方向的全部变更并结合 strands-py 源码逐一佐证其底层实现。读完本文你将掌握Agent(retry_strategy...)的完整用法与指数退避原理、BeforeInvocationEvent消息注入能力、OTEL_SERVICE_NAME覆盖规则以及 Bedrock / Gemini / LiteLLM 相关修复的具体影响。版本总览一次以稳定性与可观测性为主的增量发布python/v1.23.0于 2026-01-21 发布共包含 20 条变更记录全部为**非破坏性breaking: false**更新从类型上可分为新特性feat可配置的模型调用重试策略、OTEL_SERVICE_NAME覆盖服务名、允许对AfterModelCallEvents进行 steering、多智能体钩子事件从实验性毕业缺陷修复fixMCP 会话挂起、AgentResult.__str__引文提取、Bedrock 强制工具选择时禁用思考模式、Gemini 唯一toolUseId、LiteLLM 流式响应缺失usage属性、PEP 563 与tool装饰器不兼容等其他otherS3 会话并行读取、Swarm 中断/恢复周期执行时间累积、A2A artifact 更新事件、BidiAgent 支持 Nova Sonic 2以及依赖升级与测试稳定性改进。本次发布还迎来了 8 位新贡献者maxrabin、tmokmss、okamototk、strands-agent、brycewcole、CrysisDeu、AirswitchAsa、lanazhang其中大部分贡献直接落在上面提到的模型兼容性与钩子能力上。核心新特性可配置的模型调用重试策略retry_strategyv1.23.0 最重要的功能新增是 Agent 支持通过retry_strategy参数控制模型调用遇到节流throttling等瞬时错误时的重试行为。三种配置方式从 agent.py 的构造签名可以看到retry_strategy是一个类型为ModelRetryStrategy | _DefaultRetryStrategySentinel | None的参数实际解析逻辑见 agent.py区分三种情况传入值行为不传默认 sentinel使用ModelRetryStrategy()默认参数max_attempts6, initial_delay4, max_delay240None显式禁用重试等价于ModelRetryStrategy(max_attempts1)自定义ModelRetryStrategy实例完全采用自定义的尝试次数、初始延迟与上限延迟若传入的类型不是ModelRetryStrategyAgent 会抛出ValueError(retry_strategy must be an instance of ModelRetryStrategy)进行校验。指数退避的底层实现ModelRetryStrategy 是一个基于钩子机制实现的HookProvider其核心参数与算法如下max_attempts总模型尝试次数默认 6超过后直接抛出原始异常initial_delay初始退避秒数默认 4前两次重试使用随后每次翻倍max_delay退避上限秒数默认 240防止无限拉长。延迟计算公式为min(initial_delay * (2**attempt), max_delay)因此默认配置下 5 次重试的延迟序列为4s → 8s → 16s → 32s → 64s第 6 次尝试仍失败才放弃见 _retry.py 的文档说明。钩子驱动的重试流程该策略通过register_hooks注册两个回调_retry.pyAfterModelCallEvent每次模型调用结束后触发。若event.stop_response不为空调用成功或event.exception为空则重置重试状态若异常且is_retryable()返回 True则递增尝试计数、await asyncio.sleep(delay)后置event.retry True触发重试_retry.pyAfterInvocationEvent整个 invocation 结束后重置重试状态保证跨请求不残留计数。默认的is_retryable()只识别ModelThrottledException但实现文档明确说明子类化并重写is_retryable即可在不重写整个重试策略的情况下扩展或收窄可重试异常集合_retry.py。同时 Agent 构造完成后会通过self.hooks.add_hook(self._retry_strategy)把策略注册进钩子体系agent.py。在模型路由场景中router.py 也会以HookOrder.MODEL_ROUTING顺序监听AfterModelCallEvent并在路由推进失败时调用event.agent._retry_strategy._reset_retry_state()重置状态保证与重试策略协同工作。配套测试验证test_agent_retry.py 覆盖了四个关键场景默认策略参数max_attempts6、None禁用重试等价max_attempts1、自定义参数生效max_attempts3, initial_delay2, max_delay60、以及非法类型触发ValueError。这些测试可以直接作为你使用retry_strategy时的最小示例。钩子体系增强消息可见性、事件可 steering 与多智能体事件转正BeforeInvocationEvent 暴露输入消息PR #1474 让 BeforeInvocationEvent 携带messages: Messages | None字段。该事件在Agent.__call__、Agent.stream_async、Agent.structured_output三类 API 调用开始时触发钩子可以通过就地修改messages实现内容脱敏或转换也可以通过设置cancel布尔值或字符串取消本次 invocation。这对安全审计、输入校验、隐私脱敏类钩子非常有价值——以往需要在更深的调用链中拦截输入现在在请求入口即可完成。AfterModelCallEvent 支持 steeringPR #1429 允许对AfterModelCallEventhooks/events.py进行 steering。在 strands 的 steering 机制中事件监听器可以“接管”事件结果结合本次重试策略同样基于该事件实现意味着开发者现在可以在模型调用返回后、重试判定前插入自定义逻辑——例如根据stop_reason或异常类型动态改写模型输出、注入自定义错误处理。相关实现可参见 steering 核心处理器 与 事件定义。多智能体钩子事件从实验性毕业PR #1498 将多智能体multiagent钩子事件从 experimental 状态转为正式 API。结合 PR #1478 实现的“interrupts - graph - hook based”能力v1.23.0 之后多智能体图graph场景下的中断可以由钩子事件驱动而非只能在代码中硬编码中断点。这意味着编排逻辑可以以声明式钩子的方式表达图执行的控制流更加灵活。模型兼容性修复Bedrock、Gemini 与 LiteLLMBedrock强制工具选择时禁用思考模式PR #1495 修复了 Bedrock 模型在强制tool_choice强制模型必须调用指定工具时仍可能开启思考模式thinking mode的问题。工具强制选择与思考链同时启用会破坏工具调用的确定性修复后系统在强制tool_choice场景下自动禁用思考模式保证工具调用路径的稳定。Gemini唯一 toolUseIdPR #1201 为 Gemini 模型提供唯一的toolUseId。此前 Gemini 在多次工具调用时可能出现工具使用 ID 重复导致工具结果与调用无法一一对应配合 PR #1521 引入的本地tool_use_id_to_name映射gemini - tool_use_id_to_name - localGemini 的工具调用追踪链路在本次版本中得到完整补强。LiteLLM容忍缺失的 usage 属性PR #1520 修复了通过 LiteLLM 接入模型时ModelResponseStream可能缺失usage属性的问题。流式响应并非总能携带 token 用量统计修复后相关代码路径对缺失usage采取容错处理避免在统计 token 时抛出AttributeError中断流式输出。遥测用 OTEL_SERVICE_NAME 覆盖服务名PR #1400 支持通过环境变量OTEL_SERVICE_NAME覆盖 OpenTelemetry 资源中的服务名。在 telemetry/config.py 中service_name os.getenv(OTEL_SERVICE_NAME, strands-agents).strip()即默认服务名为strands-agents设置了OTEL_SERVICE_NAME后上报到 OTLP 后端的 trace/metric 资源均会带上自定义服务名。该模块同时支持OTEL_EXPORTER_OTLP_ENDPOINTOTLP 端点 URL与OTEL_EXPORTER_OTLP_HEADERS请求头等标准环境变量config.py便于在 Kubernetes 或多租户环境中区分不同服务实例的遥测数据。多智能体与 A2ASwarm 计时修复、Nova Sonic 2 与 artifact 事件Swarm 执行时间累积PR #1502修复了多智能体 swarm 在 interrupt/resume中断/恢复周期中execution_time被重置的问题现在执行时间在多次恢复中正确累积避免“恢复后执行时间倒退”的统计失真。BidiAgent 支持 Nova Sonic 2PR #1476BidiAgent 新增对 Nova Sonic 2 语音模型的支持扩展了双向语音会话的模型覆盖面。A2A artifact 更新事件PR #1401A2AAgent-to-Agent协议交互改用 artifact update 事件传递内容使跨 Agent 内容推送语义更贴合 A2A 规范。会话存储S3SessionManager.list_messages() 并行读取PR #1186 为 S3 会话存储 的S3SessionManager.list_messages()增加了并行读取能力。当会话消息分散在多个 S3 对象时串行拉取会成为长会话的瓶颈并行读取显著缩短了历史消息的加载时间。这是对长会话、恢复断点场景直接有效的性能优化。工具与工程质量PEP 563、测试稳定性与依赖升级PEP 563 兼容性修复PR #1494修复了tool装饰器装饰的工具在启用from __future__ import annotationsPEP 563 延迟注解时的兼容性问题确保注解为字符串形式时工具 schema 的生成不受影响测试去睡眠化PR #1497将单元测试中的sleep等待替换为显式信号signaling消除测试中的隐式时序依赖降低 CI 抖动Guardrail 测试稳定性PR #1505降低 guardrail 输出脱敏redact测试的 flakiness工具链现代化PR #1336更新 ruff 配置应用 pyupgrade 规则以现代化 Python 语法为后续版本迁移到更新语法特性铺路依赖升级sphinx-rtd-theme上限从2.0.0放宽到4.0.0PR #1466websockets上限从16.0.0放宽到17.0.0PR #1451均为兼容性扩围AgentResult.__str__引文提取PR #1489__str__输出时正确从citationsContent中提取文本避免在字符串表示中暴露原始结构或造成格式化异常MCP 会话挂起修复PR #1396通过检查会话关闭状态session closure state防止 MCP 客户端在会话已关闭时继续等待杜绝 Agent 进程挂起。升级与使用建议为生产 Agent 显式配置重试默认 6 次尝试、最长 240s 退避对大多数节流场景足够若你对延迟敏感可自定义ModelRetryStrategy(max_attempts3, initial_delay1, max_delay30)收紧策略需要完全关闭重试时传retry_strategyNone接入 OpenTelemetry 时设置服务名在部署环境中配置OTEL_SERVICE_NAME环境变量配合OTEL_EXPORTER_OTLP_ENDPOINT即可在控制台按服务维度区分遥测数据钩子消费者注意消息可变性BeforeInvocationEvent.messages支持就地修改用于脱敏但修改会影响后续模型调用输入需谨慎设计升级无忧本次全部变更均为非破坏性Agent构造参数与既有钩子 API 完全向后兼容可放心升级。整体而言v1.23.0 是一次典型的“稳定性 可观测性 模型兼容性”增量发布重试策略与遥测服务名覆盖提升了生产可用性Gemini/Bedrock/LiteLLM 的修复扫清了多模型接入的隐患钩子体系与多智能体事件的能力演进则为更复杂的编排场景打开了空间。赞分享人工智能大模型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点击查看免费下载相关推荐Apache DolphinScheduler 项目级别参数作用域、创建与任务使用实战指南Apache DolphinScheduler 项目级别参数作用域、创建与任务使用实战指南 本文以 Apache DolphinScheduler 的 项目级人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务WTF-Solidity 链上交易调试第三课使用 Foundry 手写 EGD Finance 价格预言机攻击 PoCWTF Solidity 链上交易调试第三课使用 Foundry 手写 EGD Finance 价格预言机攻击 PoC 本课是 WTF Solidity 仓库人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务Easy-Vibe 三阶段 Vibe Coding 学习路径全解从零基础到 AI 原生产品工程师Easy Vibe 三阶段 Vibe Coding 学习路径全解从零基础到 AI 原生产品工程师 Easy Vibe 是一个面向 AI 时代产品构建者的开源编人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考