人工智能大模型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.31.0 版本2026-03-19 发布围绕生产级 Agent 的稳定性与互操作性做了一轮集中打磨A2A 协议集成首次支持把请求上下文元数据作为 invocation state 传入、Graph 多智能体编排修复了出边求值逻辑、OpenAI 模型层对工具消息内容格式与 Responses API 错误处理进行了修正同时补齐了 S3 会话管理与多模态二进制内容持久化方面的问题。读完本文你将掌握这些变更的触发场景、对应的源码实现位置以及如何在自己的 Agent、Graph/Swarm 编排与 OpenAI 模型接入中规避同类问题。版本概览本次发布对应源码仓库中的 site/src/content/changelog/sdk/python-v1.31.0.md发行 tag 为python/v1.31.0。共包含 8 条变更其中 2 条为特性feat、6 条为修复fix全部为非破坏性breaking: false变更可在不修改既有调用代码的前提下安全升级类型影响领域变更内容feata2a将 A2A 请求上下文元数据作为 invocation state 传递fixsessionsS3 会话管理器 bug 修复fixmultiagent (graph)仅对已完成节点的出边进行评估fixmodel (openai)工具消息始终使用字符串内容featmodel放宽 openai 依赖以支持 2.x兼容 litellmfixmultiagent修复 Graph/Swarm 会话持久化中多模态二进制内容序列化 TypeErrorfix其他代码片段中 python 语言标识改为小写fixmodel (openai)OpenAI Responses API 错误处理修复版本还迎来了一位新贡献者 BV-Venky其贡献正是 openai 依赖放宽的 PR。下面逐条深入剖析这些变更背后的实现细节。A2A 集成请求上下文元数据接入 invocation state变更背景A2AAgent2Agent是异构 Agent 之间的互操作协议。本版本之前Strands 的 A2A 客户端在调用远端 Agent 时只传递用户输入无法把调用方的运行时上下文如租户、用户角色、特征开关等元数据随请求一起下发。v1.31.0 将 A2A 请求上下文元数据作为 invocation state 传入让远端 Agent 与 Graph 边条件都能感知调用上下文。客户端实现A2AAgent远端 Agent 的调用入口是A2AAgentstrands-py/src/strands/agent/a2a_agent.py它支持三种调用方式__call__(prompt)同步调用内部通过run_async桥接协程invoke_async(prompt)异步调用消费完整个事件流后返回AgentResultstream_async(prompt)异步流式调用产出A2AStreamEvent包装的原始 A2A 事件最后总是以AgentResultEvent收尾。构造参数值得关注endpoint是远端 A2A Agent 的基础 URLtimeout默认 300 秒client_config用于配置认证与传输支持 SigV4、OAuth、bearer token其中注入的httpx_client会同时用于 Agent Card 发现与消息发送。需要提醒的是client_config与已废弃的a2a_client_factory不能同时提供二者同时传入会抛出ValueError。请求上下文如何随消息传递在调用链_send_message → _get_a2a_client → client.send_message(message)中用户输入会先经convert_input_to_messagestrands-py/src/strands/multiagent/a2a/_converters.py统一转换为 A2AMessage字符串输入被包装为user角色的TextPart消息列表输入则只取最后一条user消息并抽取其文本内容块InterruptResponseContent在 A2A 中不受支持会直接抛出ValueError。invocation state 与这条消息一起随请求上下文到达远端从而支持基于调用上下文的鉴权、路由与定制化响应。边条件与 invocation stateGraph 侧的联动invocation state 不只是 A2A 的专属概念——Graph 的边条件函数同样可以消费它。在 strands-py/src/strands/multiagent/graph.py 中EdgeConditionWithContext协议定义了新式边条件签名def condition(state: GraphState, *, invocation_state: dict[str, Any], **kwargs: Any) - bool: ..._is_context_condition通过inspect.signature检测条件函数是否声明了名为invocation_state的参数声明了就走新式调用约定以关键字方式传入否则按旧式Callable[[GraphState], bool]调用GraphEdge.should_traverse内部还会对检测结果做缓存以降低开销。Graph 在stream_async入口把传入的 invocation_state 存入self._current_invocation_state随后的边求值_is_node_ready_with_conditions、_is_edge_traversable都会把它透传给条件函数——这正是本次 A2A 变更与多智能体编排打通的关键点同一份调用上下文既可用于 A2A 远端请求也可驱动本地 Graph 的路由决策。Graph 执行优化仅评估已完成节点的出边修复的问题此前_find_newly_ready_nodes在每批节点执行完毕后会遍历图中所有节点来寻找新就绪节点这会导致节点在真实依赖尚未完成时被提前触发破坏依赖顺序。v1.31.0 将其改为只收集「从已完成批次出发的出边」的目标节点作为候选集再对候选集做条件求值。源码与测试双重印证修复后的实现位于 strands-py/src/strands/multiagent/graph.pycandidates {edge.to_node for edge in self.edges if edge.from_node in completed_batch}对应测试 strands-py/tests/strands/multiagent/test_graph.py 中的test_find_newly_ready_nodes_only_evaluates_outbound_edges构造了A - B - C与D - E两条独立链路断言A 完成时只有 B 就绪而非 ED 完成时只有 E 就绪而非 B 或 C。该测试还引用了此前的 issue #685 作为背景验证了「从已完成批次出发」这一语义的正确性。需要说明的是该修复只是求值范围收窄Graph 原有的核心能力不受影响确定性依赖解析、并行批次执行、环形图反馈回路支持、嵌套 GraphGraph 作为另一个 Graph 的节点、基于GraphBuilder的构建器模式以及reset_on_revisit/max_node_executions/execution_timeout/node_timeout等执行限制配置在 v1.31.0 中均保持不变。OpenAI 模型层三处修正工具消息始终使用字符串内容在 strands-py/src/strands/models/openai.py 的format_request_tool_message中工具结果现在会被合并为单个字符串相邻的文本块以\n拼接仅当存在图片/文档等非文本内容时才保留数组格式以便后续_split_tool_message_images能把图片抽取到独立 user 消息中OpenAI API 只允许图片出现在 user 角色消息里。这项修复提高了与 OpenAI 兼容端点如 vLLM、Ollama 等的互操作性避免部分端点拒绝非字符串格式的 tool 消息内容。Responses API 错误处理stream与structured_output中的openai.APIError异常分支经由classify_openai_errorstrands-py/src/strands/models/_openai_errors.py分类限流错误映射为ModelThrottledException上下文溢出映射为ContextWindowOverflowException其余错误原样抛出。v1.31.0 修正了 Responses API 路径下未覆盖的异常分支保证结构化输出与普通流式调用在错误分类行为上一致。openai 依赖放宽至 2.x为了让 strands-agents 能与 litellm 共存于同一依赖树v1.31.0 将 openai 依赖范围放宽以支持 2.x。对使用者而言这意味着在同时使用 litellm 路由与原生 OpenAI provider 的项目中不再需要因为传递依赖冲突而锁定旧版 openai。会话持久化S3 管理器与多模态序列化修复S3 会话管理器 bugS3SessionManagerstrands-py/src/strands/session/s3_session_manager.py把会话数据组织为session_id/session.json、agents/agent_id/agent.json、messages/message_id.json的层级结构。构造函数支持bucket、prefix、boto_session、boto_client_config、region_name以及面向 MinIO/LocalStack/PrivateLink 的endpoint_url参数并自动为请求注入strands-agents用户代理标识。list_messages在分页读取时借助ThreadPoolExecutor并行拉取消息对象并保持顺序稳定。本次修复针对该管理器的行为缺陷如对象存在性检查、批量删除等路径进行了纠正云端会话读写现在更加健壮。Graph/Swarm 多模态二进制内容序列化此前把包含图片、文档等二进制内容的多模态提示写入 Graph/Swarm 会话持久化时会因二进制字节无法直接 JSON 序列化而抛出TypeError。v1.31.0 在 strands-py/src/strands/types/session.py 的encode_bytes_values/decode_bytes_values辅助函数基础上修正了序列化路径Graph.serialize_state对current_task做字节编码deserialize_state在恢复时解码还原从而保证多模态会话在重启或跨进程恢复后内容完整可用。细节修复代码片段语言标识小写化最后一条变更把文档代码片段中的Python标识统一改为小写python。这是一个纯展示层面的修正作用是让 Markdown/静态站点渲染出的代码高亮与标准语言标识保持一致不涉及任何运行时行为。升级建议与影响评估v1.31.0 的全部 8 条变更均为非破坏性可直接升级。升级后建议重点回归三条链路A2A 调用确认client_config与a2a_client_factory未同时使用并验证带认证端点的 Card 发现与消息发送正常strands-py/src/strands/agent/a2a_agent.pyGraph 编排运行测试用例 strands-py/tests/strands/multiagent/test_graph.py 中的test_find_newly_ready_nodes_only_evaluates_outbound_edges确认依赖顺序语义符合预期若使用了依赖invocation_state的新式边条件需同时验证 A2A 请求上下文与 Graph 路由的联动模型接入使用 OpenAI 兼容端点时确认工具消息以字符串内容发送、错误分类限流/上下文溢出行为符合预期且 openai 2.x 与 litellm 的共存未引入新的兼容问题。对于使用S3SessionManager的云端部署升级后建议做一次会话创建、读取、分页列举与删除的完整回归确保endpoint_urlMinIO/LocalStack 场景与prefix路径组织行为一致。若你的工作负载涉及多模态提示则务必回归 Graph/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点击查看免费下载相关推荐Strands Agents SDK 新增原生OpenAI模型支持的技术解析Strands Agents SDK 新增原生OpenAI模型支持的技术解析 在人工智能应用开发领域模型提供商的集成一直是开发者关注的重点。Strands A人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务LMCache 扩展 HTTP API 实战指南基于 HTTPAPIRegistry 的零代码改动端点注册机制LMCache 扩展 HTTP API 实战指南基于 HTTPAPIRegistry 的零代码改动端点注册机制 本篇技术指南面向需要为 LMCache 多进程人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务strands-agents Python SDK v0.1.4 发布解析模型层能力增强与工程化质量改进strands agents Python SDK v0.1.4 发布解析模型层能力增强与工程化质量改进 Python 版 Agent 开发框架 strand人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务上一篇【亲测免费】 EasyFlash: 简单易用的嵌入式Flash存储库下一篇推荐开源项目VSCode Pets - 开发者的趣味小工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考