组合内置扩展#

先确定你需要的能力。传入扩展列表会替换可选默认值,所以如果需要历史记录和工具 guidelines,请显式加入。不要自己添加 InternalMessageExtension 或 SteeringExtension;运行时已经提供了它们。

能力对照表#

扩展

适用场景

重要限制

InMemoryMessageAccumulator

在单个进程内保留对话历史记录。

共享实例即可共享它的记忆;不具备持久性。

SQLiteSessionExtension

在重启后恢复原始历史记录和压缩检查点。

关闭自己持有的连接池;只使用一个历史记录恢复器。

JSONLExtension

为每个 Agent 轮次追加一条自包含的审计记录。

一个会话对应一个文件;更早的轮次不会被重复写入。

ToolGuidelinesExtension

把 tool snippets 和 guidelines 加入模型指令,或加入每个工具的描述。

提供自定义扩展列表时需显式加入;placement 决定这些指引放在哪里。

AgentsMdExtension

把工作目录中的 AGENTS.md 文件加载进模型指令。

也会读取父目录;请把这些文件当作外部输入,而不是授权。

FileSystemExtension

通过相对或绝对路径读取、搜索或编辑文件。

注入当前目录;read_only 限制的是工具,而不是操作系统的权限。

CodingExtension

添加可写的文件系统工具和 shell 执行能力。

注入相对路径和 shell 执行所使用的目录。

ReadFileExtension、EditExtension 以及其他单工具扩展

单独提供一个内置工具:read_file、read(文本或图像)、view_image、glob、grep、write_file、edit、delete_file 或 bash。

一个扩展对应一个工具;它们不会注入目录消息。ToolExtension 可以用同样的方式封装任何工具。

AskUserExtension

让模型向 UI 提问并等待回答。

用会话 ID 和工具调用 ID 路由回复。

PlanModeExtension

由模型选择进入或退出规划模式,并发出用户审批事件。

UI 必须实现它的外部响应协议。

TodoWriteExtension

在当前请求内跟踪有序任务。

只允许一个 in_progress 条目;列表在请求结束时清空。

CompactionExtension

在一次模型步骤之前,对更早的完整轮次做摘要。

token 估算和模型上下文限制必须配置得当。

GoalExtension

在内部评估之后继续执行外部选定的目标模式工作。

UI 必须在开始之前为某一个确切的会话/请求做好准备;这种选择只有一次机会。

SubAgentExtension

委托给已配置的子智能体配置。

模型、工具和持久化都包含在各自的定义中。

AsyncSubAgentExtension

在后台运行子智能体配置,并通过启动、列表、状态、输出和取消这几个工具来管理它们。

任务保存在内存中,需要事件循环持续运行;关闭时请调用 close()。

SkillExtension

发现技能描述,并按需懒加载完整指令。

把技能文件当作外部输入,而不是授权。

ToolSearchExtension

搜索可选工具,而不是一开始就发送所有定义,并列出可以找到的工具。

需要 Responses 或 Anthropic Messages 协议;参见 按需加载工具和技能。

JITHarnessExtension

让模型创建、组合、更新、卸载和重新加载 Python 工具。

属于受信任的代码,而不是沙箱;延迟加载的检查工具能让上下文保持较小;参见构建并复用 JIT 能力。

McpExtension

注册远程或子进程 MCP 工具。

信任与资源归属仍然由应用负责。

各模型提供商的 ServerToolExtension 变体

启用由所选模型提供商执行的能力。

工具类型和端点协议必须兼容;不会运行任何本地执行器。

试用示例,而不是启用全部扩展#

工具方面可以从流式展示一次工具往返开始,持久性看恢复 SQLite 历史记录,用户交互看暂停以等待外部审批,上下文管理看压缩而不丢失历史记录。子智能体和目标两个示例展示了两种不同的委派方式。

完整的配置指南:AGENTS.md 参见加载项目指令,技能和延迟加载的工具参见按需加载工具和技能,远程工具服务器参见连接 MCP 工具。想了解确切的配置选项和事件载荷,请浏览Extensions。