尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Strands Python SDK v1.44.0 发布解析:内存管理、上下文管理预设与多智能体增强

Strands Python SDK v1.44.0 发布解析:内存管理、上下文管理预设与多智能体增强 人工智能大模型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 是一个开源的生产级 AI Agent SDKPython 与 TypeScript 双语言实现本次发布聚焦 Python 侧的strands-py把 TypeScript 版已成熟的内存管理器Memory Manager、Agentic 上下文管理与若干 vended 插件整体移植到 Python同时为 Agent 新增memory_manager参数、为InMemoryStorage引入基于轮次的驱逐机制并补齐多智能体边缘条件与模型调用中间件等底层能力。读完本文你将掌握 v1.44.0 中记忆提取/注入的配置方式、auto/agentic上下文管理预设与策略管线的工作原理以及本次发布在源码层面新增的关键实现细节。发布概览本次变更的三大主线v1.44.02026-06-16版本标签python/v1.44.0共包含 20 余项变更全部为breaking: false的兼容性更新按领域可以归纳为三条主线上下文Context新增上下文管理预设设计文档、InMemoryStorage支持按轮次驱逐turn-based eviction、消息固定pinning文档与相关修复、Agentic 上下文管理移植到 Python。记忆Memory把 TypeScript 的内存管理器与提取子系统整体移植到strands-pyAgent 新增memory_manager参数支持同步自动冲刷引入记忆注入memory injection并给出默认提取触发器。多智能体与人机协作Multiagent / HIL边缘条件调用开始传递invocation_state移植GoalLoopvended 插件与HumanInTheLoopvended interventionPython 侧新增 Cedar 授权处理器、Sandbox 与 Agent 的集成以及针对InvokeModelStage的内部中间件系统。此外还包括大量社区与工程治理变更合并 PR 指南、统一开发者文档、为strands-py应用 ruff format 消除格式漂移、升级 esbuild / hono 修复审计问题等。记忆管理全量移植MemoryManager 与提取子系统本次发布最核心的功能交付是 PR #2740「port memory manager and extraction to Python」——把记忆管理器和提取逻辑从 TypeScript 移植到 Python落地于 memory_manager.py 与 extraction/ 目录。Agent 新参数memory_managerPR #2795 为Agent增加了memory_manager参数接受MemoryManager实例或MemoryManagerConfig字典自动包装并支持可配置的同步自动冲刷sync auto-flush。从 agent.py 的解析逻辑看传入None时不启用记忆传入MemoryManager实例时直接使用传入字典时按MemoryManager(**memory_manager)包装。在Agent(...)同步入口的每次调用结束后会等待memory_manager.flush()见 agent.py确保后台提取在会话边界前落盘而自行驱动事件循环的调用方应在关闭边界手动await flush()。MemoryManager 的三块核心能力MemoryManager本身是一个Plugin名称strands:memory-manager构造函数接受四个参数见 memory_manager.py参数默认值说明stores必填一个或多个记忆存储后端MemoryStore至少一个且名称不得重复search_tool_configTrue注册search_memory工具MemoryToolConfig可自定义名称/描述False禁用add_tool_configFalse默认禁用add_memory工具True允许写入全部可写存储MemoryAddToolConfig限定范围injectionTrue记忆上下文注入MemoryInjectionConfig可自定义检索、时机与格式化False禁用初始化时会做一系列校验见 memory_manager.py空 stores、重复 store 名、可写但缺少写入方法的 store、提取配置指向不可写 store、有提取器却缺少add方法等都会抛出ValueError。1检索工具search_memory默认描述为 Search long-term memory for facts, preferences, or context from previous conversations...支持query、max_search_results、stores三个参数省略stores时检索全部可用存储结果按存储归属store_name返回。每个存储的默认最大结果数依次取调用方传入值、store 自身的max_search_results、全局默认DEFAULT_MAX_SEARCH_RESULTS 3。2写入工具add_memory接受entries列表与可选的stores参数。MemoryAddToolConfig.wait_for_writes控制两种行为模式见 memory_manager.pyTrue默认等待写入完成成功返回{stored: n}失败抛出聚合错误AggregateMemoryErrorFalsefire-and-forget 后台派发立即返回{accepted: n}单存储失败仅记录日志。3记忆注入injection启用后注册一个InvokeModelStage.Input阶段的中间件把检索到的记忆折叠进每次模型调用的输入而不触碰持久化历史见 memory_manager.py。默认每次调用注入最多DEFAULT_MAX_ENTRIES 5条渲染为带source属性的memoryentry sourcestore.../entry/memoryXML 块查询默认是自适应策略——用户轮取最新用户消息文本否则取最近一条助手消息文本。自定义query/format回调抛异常时会 fail-open跳过注入不中断模型调用。提取子系统触发器、提取器与协调器提取extraction把对话消息自动转化为可检索的记忆条目由四个模块协作触发器triggers决定何时提取。内置两种见 triggers.pyInvocationTrigger每次 Agent 调用后触发保真度最高但最贵——每次轮次都可能产生一次模型调用与IntervalTrigger(turnsn)每 n 次调用触发一次被跳过的轮次由水位线补上。PR #2811 为提取触发器补上了默认值当ExtractionConfig省略trigger时默认使用每 5 轮一次的IntervalTrigger(turns5)见 resolve_extraction_config.py。提取器extractor决定如何提取。ModelExtractor用语言模型把消息蒸馏成离散事实返回 JSON 数组{content: string}见 model_extractor.py默认使用 Agent 自身的模型可传入更便宜的模型以降低成本。过滤器filter默认MemoryMessageFilter(exclude[toolUse, toolResult])提取前剔除工具调用流量见 types.py。协调器coordinator后台保存消息到各存储维护每个 store 的高水位线high-water mark保证每条消息至多投递一次连续失败 10 次后进入退避backoff退避期间每 3 次保存请求放行一次探测见 coordinator.py。flush()绕过退避清空所有剩余缓冲并等待完成。默认提取器的选择与 store 的写入方法相关见 resolve_extraction_config.py只实现add的 store 默认配ModelExtractor做客户端侧提取实现add_messages的 store 默认不配提取器把原始消息直接交给后端做服务端侧提取省掉模型调用。MemoryStore 协议记忆存储后端遵循MemoryStore协议见 types.py必实现search(query, options)可选实现add单条写入、add_messages批量写入带序列号上下文便于幂等去重、initialize异步初始化与get_tools注册存储专属工具。可写 store 至少需要add或add_messages之一作为写入水槽。本次同时移植了BedrockKnowledgeBaseStorePR #2834并把传入的配置类型重构为 TypedDictPR #2824、#2827、#2832去掉了冗余的| None。上下文管理预设、Agentic 模式与内存驱逐auto/agentic双预设PR #2756 新增上下文管理预设设计文档PR #2808 把 Agentic 上下文管理移植到 Python。Agent的context_manager参数支持两种预设字符串、配置字典、ContextManager实例或False见 context_manager.pyauto在上下文利用率达 85%_AUTO_SUMMARIZE_UTILIZATION 0.85时做汇总工具结果超过阈值1500 token时截断为 750 token 预览。这是默认策略管线Offload.truncate(tool_results, ...).when(threshold1500)Offload.summarize(*).when(utilization0.85, preserve_recent4)。agentic由模型驱动的上下文管理——通过注入工具让模型自主决定压缩截断阈值提高到 8000 token汇总仅在溢出utilization1时发生。两种模式都会在策略管线末尾追加EmergencyTruncateStrategy作为最终保险先跑用户策略若窗口仍然溢出则紧急截断见 context_manager.py。从 agent.py 可见agentic模式还会额外注入 token 用量中间件用于向模型反馈调用预算。需要提醒的是当context_manager被设置非False时任何同时传入的conversation_manager会被忽略context_manager.pycontext_manager与conversation_manager均不能与有状态模型stateful model共用agent.py。策略预设可组合的命名积木除了两大整体预设策略数组还支持四个命名积木见 presets.py可混入自定义策略管线预设名展开后的策略proactive_summarization利用率达 70% 时批量汇总最旧消息保留最近 70%large_tool_offloading超过 2500 token 的工具结果截断为 1000 token 预览overflow_protection上下文窗口满时截断最旧消息保留最近 4 条stale_tool_cleanup丢弃早于最近 5 条消息的工具结果文档明确指出预设名是稳定契约其展开阈值可能在版本间调整需要钉死具体配置时应使用原始Offload.*策略。相关测试覆盖见 test_presets.py含未知预设抛ValueError的断言。InMemoryStorage 按轮次驱逐PR #2648 为上下文卸载器context-offloader的InMemoryStorage增加了基于轮次的驱逐turn-based eviction当会话轮次超过配置上限时自动驱逐最旧条目避免 L1 stash 无界增长。这与策略管线中的stash机制配套——ContextManager默认用InMemoryStorage作为 L1 stash可传stashFalse禁用、传字典自定义存储或检索工具开关见 context_manager.py并提供一个retrieval_tool让模型从 stash 中找回被压缩的内容。消息固定PinningPR #2749 在会话管理文档中新增了消息固定message pinning章节PR #2767 移除了 pin messaging 的 barrel 导出修复导出面。固定消息在策略执行时受到保护从 base.py 可见逐块截断的 eager hook 与消息级清除都会用is_pinned(...)跳过被固定消息保证用户钉住的关键内容不会被压缩策略移除。模型调用中间件与多智能体边缘条件InvokeModelStage 内部中间件系统PR #2760 为InvokeModelStage新增了内部中间件系统这也正是记忆注入得以实现的底层机制记忆管理器通过_middleware_registry.add_middleware(InvokeModelStage.Input, ...)在模型输入阶段挂钩见 memory_manager.py。中间件在每次模型调用前拿到当前消息上下文可以追加文本如记忆条目、修改输入而不改动持久化会话历史。这一设计与 TypeScript 版对齐为后续更多输入/输出阶段的钩子扩展预留了统一入口。边缘条件传递invocation_statePR #2642 让多智能体multiagent的**边缘条件edge condition**调用开始接收invocation_state在图graph/群swarm执行中决定是否沿某条边继续执行的条件回调此前只能读取静态上下文现在可以拿到当前调用状态轮次、消息等据此做出动态路由决策——例如仅在上一跳产生工具调用时继续这类依赖执行状态的判断。vended 插件与集成GoalLoop、HumanInTheLoop、Sandbox 与 Cedar本次发布将多个 vended 组件移植/新增到 PythonGoalLoop 插件PR #2738面向目标循环式执行的 vended 插件配套文档一同落地覆盖 [hooks, structured-output] 领域。HumanInTheLoop interventionPR #2750把 TypeScript 的人机协作干预移植到 Python支持在工具执行前请求人工审批/修改HIL 场景。Cedar 授权处理器PR #2802Python 侧新增基于 Cedar 策略语言的工具授权处理器与团队设计文档 0006-cedar-authorization.md 相呼应可在工具执行前按策略决定放行或拒绝。Sandbox 与 Agent 集成PR #2762、#2835Sandbox 沙箱能力集成进Agent并提供配套的 vended 工具/插件。InterventionHandler 生命周期PR #2800允许干预处理器InterventionHandler的生命周期覆写lifecycle overrides为同步或异步两种形态兼容两种风格的事件循环。社区与工程治理工程侧本次也做了大量清理合并 PR 指南并更新 pr-writer skill#2772、统一开发者文档目录#2791、为仓库各模块补CLAUDE.md#2809、对strands-py应用 ruff format 修复既有漂移#2799、抑制大文本载荷测试的冗长日志#2773、移除 lockfile 漂移检查以放行 Dependabot 与审计修复#2841、升级 hono 至 4.12.25 修复高危审计失败#2843并新增Syntax组件用于文档中内联语言相关标识符#2751。升级与使用指引安装/升级到最新版本后即可获得上述能力本次为strands-agents1.44.0pip install --upgrade strands-agents最简记忆接入示例与 memory_manager.py 文档字符串一致from strands import Agent from strands.memory import MemoryManager memory_manager MemoryManager(stores[my_store]) agent Agent(modelmodel, memory_managermemory_manager) agent(Remember I prefer dark mode) results await memory_manager.search(user preferences)启用上下文管理预设agent Agent(modelmodel, context_managerauto) # 85% 利用率时主动汇总 截断 agent Agent(modelmodel, context_manageragentic) # 模型驱动压缩 溢出兜底由于全部变更均为非破坏性breaking: false存量代码无需改动即可升级但请注意记忆提取的默认触发器、策略预设的阈值属于内部默认值可能在后续版本调整依赖精确行为时应显式配置ExtractionConfig或原始Offload.*策略。小结v1.44.0 是strands-py在上下文与记忆两条主线上向 TypeScript 版看齐的重要里程碑memory_manager参数与提取/注入子系统的落地让 Python Agent 首次具备开箱即用的跨会话记忆auto/agentic预设与策略管线让上下文压缩可声明式配置而中间件、边缘条件与 vended 插件的补齐则夯实了多智能体与人机协作的生产可用性。若需深入源码建议从 memory_manager.py、_context_manager/context_manager.py 及其配套测试目录strands-py/tests/strands/入手。赞分享人工智能大模型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-ts SDK v1.0.0-rc.5 发布解读Monorepo 重组、上下文窗口配置与多智能体会话增强strands ts SDK v1.0.0 rc.5 发布解读Monorepo 重组、上下文窗口配置与多智能体会话增强 本篇技术指南以 strands ts人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务Strands Python SDK v1.57.0 发布解读双向流式音频、MCP Router、快照会话与多智能体增强Strands Python SDK v1.57.0 发布解读双向流式音频、MCP Router、快照会话与多智能体增强 导读 本文基于 Strands Py人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务Strands Python SDK v1.41.0 深度解析MultiAgentPlugin 多智能体插件体系与缓存能力升级Strands Python SDK v1.41.0 深度解析MultiAgentPlugin 多智能体插件体系与缓存能力升级 导读 本文围绕 strands人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务上一篇Standard Open Arm 100双臂机器人从零开始的完整实践指南下一篇5步快速搭建企业级AI知识库WeKnora实战部署全攻略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表