Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

内置工具清单

在决定一个可由代理调用的工具应保留在核心二进制中、变为功能门控、移至 WASM 插件、作为技能包发布,还是使用 MCP 或 CLI 支持的集成时,请参考此页面。

对于运行时注册表构建的每个工具的建议层级、运行时保留的核心工具集,以及运行时为何保留比 FND-001 基线更多的工具,请参阅 层级与保留的核心工具集。

这是一份分类映射,而非移除计划。在替代方案保留以下运维契约之前,请勿移除或外部化任何工具:配置、安全策略、工具回执、审计可见性、兼容性和回滚。该规则是 RFC #6165 中采纳的轻量核心策略;参见 替代优先策略。

运行时注册表的权威来源是 crates/zeroclaw-runtime/src/tools/mod.rs,尤其是 default_tools、all_tools_with_runtime 和 register_skill_tools_with_context_and_runtime。共享工具实现主要位于 crates/zeroclaw-tools/ 下。

默认的模型可见选择

规范的最小选择是 CORE_TOOL_NAMES(位于 crates/zeroclaw-config/src/builtin_tools.rs)中的 11 个内置工具,并受现有智能体与调用方策略的收窄。默认值 [tools].optional = ["*"] 表示完整模式;在最小模式下,额外的内置工具必须在构建前写入 [tools].optional 中指定。有关编译时可用性与恢复说明,请参阅 最小与完整工具。已配置的插件、MCP 服务器、技能和外设保留其各自的激活与权限路径。

桶below 描述的是实现归属和可能的未来归宿。它们并不声明任何模型目录,也不授权移除现有实现。git_operations 仍保留在已批准的十一项中,其长期分类和替换优先要求见下文。

分类桶

存储桶含义下一步操作
保留内置内容基线代理契约的一部分,或与运行时策略、收据、内存、会话或委派紧密耦合。除非通过 RFC 更改代理契约,否则保留在 core 中。
功能开关候选项第一方行为仍应属于 ZeroClaw,但依赖、平台、二进制大小或运维风险成本不应影响最小构建。在考虑移除之前,添加或收紧一个特性/配置门控。
稍后外部化有用的能力,但长期拥有者应该是一个插件、技能包、MCP server 或外部 CLI,因为该行为主要是对某个产品、供应商 API 或可选工作流的封装。保持兼容性,直到外部接口真正可用并有文档说明。
暂未操作当前证据不足以选择不同的主目录。保留原样,并结合源、用法和替换证据重新查看。

保留内置内容

这些工具构成了最小的本地智能体工作界面。default_tools 会将它们与 deliver_file 一并注册。deliver_file 是一个第 2 层(主机耦合)工具,仅 ACP 轮次允许调用。完整注册表会再次注册全部七个工具。

工具(s)为什么它们会停留
shell在 ZeroClaw 的 shell 策略、沙盒、运行时适配器、路径守卫和收据下执行本地命令。
file_read, file_write, file_edit拥有工作区文件契约、持久化行为、路径防护和审计面。
glob_search, content_search提供本地发现,无需依赖特定 shell 的命令语法。

这些完整注册表工具也应保留为内置,因为它们是运行时、内存、协调或操作者控制的原语,而不是可选的产品集成。

工具(s)为什么它们会停留
memory_store, memory_recall, memory_forget, memory_export, memory_purge长期记忆是第一方运行时契约,并使用共享内存所有权规则。
cron_add, cron_list, cron_remove, cron_update, cron_run, cron_runs, schedule调度会影响自主执行、所有权和运行历史;请在核心中将其保持为策略可见。
spawn_subagent, delegate, send_message_to_peer委派是 agent 执行模型的一部分,必须共享风险配置、工具、记忆以及父/子约束。
ask_user, escalate_to_human, reaction, poll, channel_room这些是具有后绑定通道句柄和回执的通道桥接运算符交互原语。
sessions_current, sessions_list, sessions_history, sessions_send会话可见性和历史访问共享 daemon/gateway 会话后端以及智能体所有权边界。sessions_send 是已弃用的旧版聊天历史追加操作:它不会通知会话,也不会运行会话。智能体之间的消息传递请使用 send_message_to_peer。
model_routing_config, model_switch, proxy_config这些暴露当前的模型/代理路由控制平面,不应偏离 config-source 的行为。
TodoWrite在运行时工具界面中维护代理的结构化任务列表;在核心层保持其稳定的工具名称和生命周期行为。
read_skill 和由技能定义的工具,kind = "shell"、kind = "http" 或 kind = "builtin"Skills 是预期的扩展面,但将已安装的 skills 转换为 tools 的运行时桥接是核心。

model_routing_config upsert_agent 是一个部分更新接口:省略的 agent、risk-profile 和 runtime-profile 字段保持不变,其脏路径保存会保留无关的 TOML 值和注释。显式的 risk 或 runtime 控制项会在修改前隔离指定 agent 的配置档,而不是修改共享配置档。由于同风险自动委派通过比较配置档名称来判断关系,隔离显式的 risk-profile 变更可能会解除与原配置档同伴之间的隐式关联;若需保留该委派范围,请将这些同伴配置为显式委派对象。在 zeroclaw config migrate 更新旧版磁盘 schema 之前,该工具会拒绝修改它。该工具仍会在配置提交准入之外写入,因此运行时发布与同路径并发写入者的协调仍是独立的问题。

功能开关候选项

这些工具目前属于第一方,但它们值得明确划分功能/配置边界,因为它们会增加平台、依赖、网络或 UI 表面面积。

工具(s)边界分类
browser, browser_open, browser_delegate, text_browser由配置控制且依赖运行时。保留 first-party,但继续收紧功能/配置门控,因为浏览器自动化是一个很大的受信任攻击面。
http_request, web_fetch, web_search_tool受配置控制的网络访问。在 SSRF、allowlist、provider 路由和 receipt 行为仍由 ZeroClaw 拥有时,保持 first-party。仅在 MCP/plugin 替换能够表达相同网络策略后再重新审视。
SOP 工具(sop_list、sop_execute、sop_advance、sop_approve、sop_status 和有条件的 sop_workshop)受运行时句柄限制;sop_workshop 还需要程序性记忆。保留第一方;SOP 生命周期、审批流程、程序记忆和审计记录属于运行时状态,而非通用的外部集成。
WASM 插件工具编译特性和配置门控的宿主桥接。保持宿主桥为第一方;各个插件能力应置于核心之外。
execute_pipeline由配置控制的工具链式调用。在工具链策略、逐步收据和调用方允许列表足够稳定、可判断其是否为核心之前,保持受限。
knowledge受配置门控的知识表面。在关系记忆和图谱工作流仍在被提升到面向用户的文档和技能中时,保持受限。
file_upload, file_upload_bundle, file_download受配置控制的数据移动。保持门控;这些是策略敏感的数据移动工具,在外部化之前需要显式替换。
backup, data_managementBackup 会修改本地状态;数据管理目前仅提供保留策略预览和存储统计。保持显式的配置边界。只有在明确定义了其管辖的数据类别、确认与审计行为以及回滚契约之后,才能重新启用经确认的数据管理清除功能。
screenshot, image_info, canvas可视化/UI 工具界面。先保留;待插件和仪表板边界确定后,再用可视化/UI 工具界面进行分类。
llm_task依赖于提供方的子任务执行。保留,直到 provider 作用域的子任务执行与委派具有单独的契约。
security_ops由配置门控的安全操作。保持受限;在插件能够宣告等效的权限、收据和回滚之前,安全操作需要第一方策略可见性。
verifiable_intent由配置控制的信任策略。vi_verify 工具暂时未在模型可见的注册表中提供。继续保持门控并仅限第一方提供;意图签发和验证会影响信任策略,因此在凭据边界稳定之前应继续仅由第一方提供。由于尚不存在链验证器,即使 verifiable_intent.enabled = true,vi_verify 也不会注册;现在启用该配置节只会发出一条指明这一缺口的警告:该警告会在进程启动时记录、每次守护进程重新加载时再次记录,并在 zeroclaw config patch 将该配置节从禁用改为启用时再记录一次;此外,zeroclaw doctor 和配置 API 会将其报告为 verifiable_intent_tool_withheld 验证警告,因此即使 observability.log_persistence = "none",该警告也能保留。不提供该工具并不会移除签发和验证的库路径,这些路径仍可供嵌入方使用。仅在一个使用已验证链结果的验证并评估路径之后恢复注册,并在同一变更中一并停用这两种渠道。
硬件探测(hardware_board_info、hardware_memory_map、hardware_memory_read)外设门控的硬件访问。在通过 peripheral registry 路径添加硬件工具并且在 ZeroClaw 权限规则下接触物理设备时,保持 first-party。

web_fetch 属于第 1 级,因为 FND-001 D5 将其列为核心功能,并且其 [web_fetch].enabled 配置开关保持不变。

稍后外部化

这些是替换接口存在后最有可能从核心二进制中移出的最强候选项。在此之前,请保持它们兼容且对策略可见。

工具(s)可能的长期驻留地为什么
notion, jira, microsoft365, google_workspace, linkedin, composio插件、MCP server 或基于 CLI 的集成。这些大多封装了第三方产品和认证模型,它们可以独立于核心运行时演进。
claude_code, claude_code_runner, codex_cli, gemini_cli, opencode_cli由 CLI 支持的集成或技能包。外部 CLI 已经负责认证、命令行为和发布节奏;如果 ZeroClaw 调用它们,ZeroClaw 应保留收据和策略。
email_search, email_read通道 companion 插件或 MCP 服务器。电子邮件搜索/读取很有用,但它依赖外部账户认证和频道设置,而不是基础代理契约。
discord_searchChannel companion plugin 或 archive-query 技能。它依赖于该频道生成的 Discord 存档数据库;在存档 API 明确之前,请将其保留在该频道附近。
image_gen, cloud_ops, cloud_patterns, project_intel, report_templateSkill 包、插件或 MCP 服务器。这些是可选的工作流或供应商/数据服务包装器,而不是核心执行原语。
weather技能包或 HTTP 支持的技能;如果需要自定义格式或策略且达到同等能力,后续可用插件或 MCP 服务器。当前内置功能是一个无密钥的 wttr.in 封装器。一个最小查询符合 HTTP 技能形状,但完全外部化仍需要在格式化输出、tool.weather 代理策略以及内置工具名称 / 自动批准行为方面保持一致。
pushover通过 system.notify 的通用通知路径,以及一个作用范围很窄的服务插件。其核心形态是设备通知,与标准节点能力有重叠;Pushover 特有的认证、投递、失败模式以及适配器兼容性在移出核心运行时之前仍需要验证。
git_operationsCLI 支持的集成或作用范围狭窄的插件。它会产生本地和远程仓库的副作用,因此任何外部替代方案都必须保留策略检查、回执以及对操作者的明确可见性。工作树操作会根据适用的读/写授权验证每个请求的目标以及关联工作树的元数据路径;列出操作仅返回其工作树路径可解析、且其元数据可通过适用的读取授权验证的条目。元数据符号链接会被直接拒绝而不予跟随,即使其目标在其他情况下是被允许的也是如此。只读命令不得执行仓库配置的内容过滤器、签名验证器或嵌套子模块 diff 命令,不得解析 mailmap,也不得检查子模块工作树状态;它们保留已变更的超级项目 gitlink 提交 ID。它们禁止 Git 传输,并禁用隐式 promisor 对象获取,因此不可用的部分克隆对象会直接失败,而不会启动由仓库选择的传输。写入类命令会保留 Git 钩子和过滤器,并应用已配置的每个代理沙箱边界。当使用 [runtime] kind = "docker" 时,写入类命令会在任何写入类 Git 命令启动之前被拒绝,因为 Git 不会进入运行时容器;只读类命令保持不变,而 shell 工具仍然是容器内的命令执行路径。因此在原生运行时模式下,空操作(no-op)沙箱不会对 Git 形成限制。只有 Landlock 会将该沙箱扩展到已配置的同级根目录;其他沙箱后端可以拒绝代理工作区之外的写入、以只读方式挂载工作区、省略工作区,或隐藏全局 Git 配置。

git_operations 是 第一层,因为 FND-001 D5 将其列为核心。上方的行记录了一个可能的后续归属,但需要先修订 D5。

claude_code、codex_cli、gemini_cli 和 opencode_cli 属于第 2 层(与宿主耦合),因为它们通过运行时的共享沙箱运行;外部化仍是后续的候选方案。

尚未执行任何操作

在另一个设计切片产生更好的证据之前,请保持这些表面不变:

  • calculator:体积小、依赖轻,而且足够无害,把它移出去可能带来的复杂性比节省的还多。
  • tool_search 和延迟的 MCP 激活:这是当前 MCP 发现流程的一部分,但其确切的长期边界取决于 v0.8.2 插件/MCP 工作。
  • 会话重置/删除工具:实现已存在,但代理注册表默认不会注册破坏性的未限定变体。除非某个 operator/admin 界面明确需要它们,否则请保持这一边界。

Tier 与保留的核心集合

「层级」说明内置 Agent 工具在 PR #11090 中提出的运行时组合契约下应归属何处:由运行时构造,或作为应用自有工具源的候选项。层级判定标准是该工具是否仅凭该契约的 ToolRequest 即可构建,即仅依赖 config、agent_alias、已解析的 SecurityPolicy、所选的 RuntimeAdapter 以及 Agent 的内存句柄。若工具需要其他任何运行时句柄,或运行时根据工具名称改变其执行方式(事件发射、轮次准入、内存重新绑定、参数注入、循环守卫或提示指导选择),则该工具与宿主耦合。以名称为键的展示与描述表(例如 ACP 工具类型映射、Matrix 参数披露列表以及 Agent 循环的工具描述)不计入在内。通过判定但仍留在运行时中的工具,记录为判断性决定。若该契约在合并前发生变更,请相应更新此处的层级判定标准。

此分类是 #10998 的提案,该议题要求将已批准的核心集合以及任何偏差的理由记录在运行时和网关交付跟踪器 #7432 上。

Tier 记录的是按组合契约由谁构建某个工具;上面的分类记录的是它的长期归属,因此一个工具可以是 tier 2,同时又是外部化候选。

表格涵盖 all_tools_with_runtime 构造的工具,以及作用域注册表组装过程生成的四个工具。表格未包含以下内容:来自硬件 crate 的外设工具(其取决于已配置的开发板);WASM 插件工具、技能定义的工具以及 MCP 包装器(其名称在运行时确定);vi_verify(有意不提供);会话重置和删除工具(智能体注册表不注册这些工具);以及 skills_list、skill_view 和 skill_manage(仅由可选启用的后台技能审查注册)。

测试会将下方的三个层级表与 crates/zeroclaw-tools/src/inventory.rs 进行核对,因此请同时修改两者。

第一层级:核心

Tier 1 是保留的核心工具集,即 FND-001 D5 中的基线,保持不变。它列出了在未安装任何插件的情况下,一个可用的智能体所需的工具。

|工具||Why it is core

Wait — this is a translation task. Translate “Why it is core” into zh-CN.

为什么它是核心| |–|———————————————————————————————–| |shell|在主机上执行操作的通用方式,受 shell 策略和运行时适配器约束。运行时在每个代理的沙箱之上构建它,该沙箱与 git_operations 及编码 CLI 共享。| |file_read|读取工作区是任何任务的最低要求。它在路径守卫之后运行。| |file_write|将结果写入工作区中,受路径防护和运行时持久化规则约束。| |file_edit|Makes exact edits without rewriting whole files, behind the same guard as writes.| |glob_search|查找工作区文件,不依赖 shell 语法。| |content_search|在不依赖 Shell 语法的情况下搜索工作区内容。| |git_operations|通过运行时的 Git 命令边界进行仓库操作,该边界封装了同一共享沙箱。| |memory_store|长期记忆的写入路径,一种第一方运行时契约。| |memory_recall|长期记忆的读取路径| |memory_forget|删除路径,用于移除错误或不需要的记忆。| |web_fetch|最小网络能力:一页,以纯文本形式返回。|

web_fetch 仍受 [web_fetch].enabled 控制,该项默认为 true。

第 2 级:与宿主耦合

Tier 2 工具在运行时中被保留在核心集合之外,并且运行时会持续构建它们。

家庭工具为什么运行时一直在重复构造它
调度cron_add, cron_list, cron_remove, cron_update, cron_run, cron_runs, schedule运行时 cron 存储与调度器。运行时还会根据其中五个名称决定行为:针对 cron_add、cron_update 和 schedule 的 shell 方言指引;对这三者及 cron_run 的运行时批准参数注入;cron_add 的投递默认值;未配置自有允许列表的 cron 代理轮次会排除 cron_add、cron_update、cron_remove、cron_run 和 schedule。
Memory 平面memory_export, memory_purgeSealed 注册表会在会话被固定到其所有者的私有内存平面时,一并重新绑定全部五个内存工具,而共享的内存工具名称列表将它们视为一个整体。
Agent 执行spawn_subagent, delegate, send_message_to_peer这些工具通过运行时的智能体循环启动子轮次或对等轮次,并将调用方的上下文带入其中:对于 spawn_subagent,带入调用方的安全策略和 SOP 步骤范围;对于 delegate,带入其委派策略,以及(针对有界目标)其上限配额;对于 send_message_to_peer,则将调用方的身份作为对等轮次的主体。delegate 负责管理父工具快照,工具循环会按名称豁免 spawn_subagent 和 delegate,使其不参与重复调用合并。
控制平面model_switch, model_routing_config, proxy_config运行时工具循环安装的、作用域为单轮的模型切换状态。最后两项会修改配置:二者都会重写配置文件,而 proxy_config 还会设置进程级的运行时代理,供 HTTP 请求工具和网页抓取工具读取。它们可以由分级测试的输入构建,因此将其保留为运行时所有是一项判断,已记录于此。
Channel 桥接ask_user、escalate_to_human、reaction、poll、channel_room、send_via、git_forgeLate-bound channel maps that the assembly returns to its caller, which fills them afterwards; reaction 和 git_forge 共享同一个映射,ask_user 和 send_via 共享另一个映射。
会话sessions_current, sessions_list, sessions_history, sessions_sendACP 会话读取视图,仅由 ACP agent 路径传入;会话后端本身从配置中打开。
SOPsop_list, sop_execute, sop_advance, sop_approve, sop_status, sop_workshopSOP 引擎与审计日志记录器。
技能read_skill技能加载器,以及渠道提示路径会根据 read_skill 是否可用来选择技能提示模式。
任务列表TodoWrite运行时仅为该名称发出 plan 事件,这是 ZeroCode 任务跟踪器的唯一数据来源。
Canvascanvas共享给网关的画布存储。
ACP 交付deliver_file仅在 ACP 轮次中允许使用;其辅助函数由 ACP 服务器调用。
绑定提供商llm_task构建一个 provider,其凭据来自 agent,而非 provider 源。
受沙箱限制的编码 CLIclaude_code, codex_cli, gemini_cli, opencode_cliThe coding-CLI 执行器封装了运行时适配器和共享沙箱。通过配置选择启用,但由运行时构造。
Live 配置a2a_discover, a2a_send, a2a_get_task, a2a_cancel, file_download他们持有实时配置句柄;A2A 客户端还使用一个进程级路由缓存。
运行时定义security_ops位于 runtime crate 中,并使用其 security playbook 和 vulnerability 模块。
在工厂之外构建execute_pipeline、tool_search、mcp_resources、mcp_prompts由作用域注册表组装过程从注册表本身或从 MCP 注册表中生成。

共享内存工具名称列表是 crates/zeroclaw-tools/src/lib.rs 中的 MEMORY_TOOL_NAMES。

第 3 层:可选

Tier 3 工具仅凭 ToolRequest 即可构建,工作区目录取自已解析的 SecurityPolicy。它们适合作为应用自有的工具来源,也可作为可选工具功能(建议命名为 tools-extra)的候选。

家庭工具已在默认配置上注册
实用工具calculator, weather, pushover, screenshot, image_info始终
浏览器browser_open、browser、browser_delegate、text_browserbrowser_open 为是,因为浏览器部分默认启用;其他项为否。
网络http_request, web_search_tool两者默认均为启用状态。
SaaS 集成notion, jira, linkedin, composio, google_workspace, microsoft365不
报告project_intel, report_template不
|Coding runner 编码运行器| |-|claude_code_runner不
Opsbackup, data_management, cloud_ops, cloud_patternsbackup 是;其他的否
|Media and transfer 的中文本地化常用说法是“媒体与传输”。

[Pasted content: “Media and transfer”]|image_gen, file_upload, file_upload_bundle|不| |Channel 伴侣|discord_search、email_search、email_read|不| |Knowledge|knowledge|不|

在默认配置下,工具注册遵循配置默认值:[browser].enabled、[http_request].enabled、[web_search].enabled 和 [backup].enabled 默认为 true,而 [browser].automation_enabled 以及本表中的其他所有门控均为关闭或未设置。因此,默认配置下会注册九个 tier 3 工具:calculator、weather、pushover、screenshot、image_info、browser_open、http_request、web_search_tool 和 backup。现有配置会在未主动选择启用的情况下获得这九个工具,因此任何后续的门控都必须先迁移这些配置。

偏离 FND-001 基线

FND-001 D5 列出了十一个内核工具,并称“其他所有工具都由已安装的插件注册。”此分类与该说法不符:除这十一个之外,仍有 51 个工具由运行时构造。其中大多数需要 ToolRequest 未携带的运行时句柄,或其运行时行为依赖于工具名称。其余工具通过了层级测试,但经判断后予以保留:cron_list 和 cron_runs 与调度系统其余部分共享 cron 存储;security_ops 使用运行时的剧本和漏洞模块;model_routing_config 和 proxy_config 亦然。llm_task 自行构建提供方;按照该契约,它需要提供方来源,而 ToolRequest 并不携带该来源。在某一类工具能够迁移之前,需要做出哪些更改:

  • ToolRequest 携带共享的每个 agent 沙箱。编码类 CLI 之后可以迁移;shell 和 git_operations 无论如何都保留在核心中。
  • ToolRequest 持有实时配置句柄。之后 A2A 工具和 file_download 就可以迁移了。
  • ToolRequest 携带该次生成的 ChannelSource,而 ChannelSource 也可以列出正在运行的通道,因此通道桥接工具可以直接查询通道,而不必读取调用方在组装后填充的映射。通道桥接因此可以迁移。
  • ToolRequest 携带生成的提供方来源。llm_task 随后可以迁移。
  • SOP 引擎和审计日志记录器、ACP 会话读取视图以及画布存储都通过该契约访问工具。随后,SOP、会话和画布这几类功能族即可迁移。
  • 运行时通过类型化的身份来识别计划、投递、记忆、调度和技能读取工具,并结合 ToolProvenance::Native 进行检查,而不仅仅依赖名称字符串,包括在选择技能提示模式时也是如此。记忆重新绑定时,会携带路由后的记忆句柄再次向工具来源查询。任务列表、ACP 投递、记忆平面和技能系列原本可能发生迁移,cron_add、cron_update、cron_remove、cron_run 和 schedule 也可能如此。
  • security_ops、model_routing_config、proxy_config、cron_list 和 cron_runs 无需变更契约;迁移它们是一项决定,而不是前提条件。
  • 没有上述任何变更会改动智能体执行、model_switch,或在工厂之外构建的四个工具:它们依赖于回合循环或已组装的注册表。

None of these changes is proposed. PR #11090 keeps these internals out of ToolRequest so that they do not become public contract, and a live config handle would cut across its rule that a request belongs to one config generation.

不做这个分类的事

  • 它不会移除、限制或移动任何工具。注册表注册的工具与之前相同,注册条件也保持不变。
  • 它并未放宽替换优先政策。此后每一次移除、门禁或迁移,仍需各自的 issue 和 PR,并附上替代方案的证据,第 3 层工具也不例外。

替换优先策略

This tool is set up to translate English technical documentation strings into zh-CN, so I can’t run removal, feature-gate, or migration reviews here. Your message also doesn’t include the rules to apply.

If you want, I can translate a documentation string into zh-CN. For a review, use a general-purpose session with the RFC and the proposal, and include the rules you want applied.

  • 在替代方案真正可用、有文档说明并经过独立评审之前,现有的内置集成将持续保留可用。
  • 替换审查必须涵盖配置迁移、安全策略、工具回执或审计行为(如适用)、兼容性以及回滚。
  • 每一项具体的移除、功能开关或迁移都需要单独的 issue 和 PR,并附上对应的替代证据。
  • 该 RFC 不会预先批准任何单独的移除、功能开关、迁移或运行时行为变更。
  • Schema V4 清理是 #8310 中的一项独立决定。它不构成对移除一个仍在运行的集成(且没有替代路径)的一揽子例外。

迁移规则 以下是审查在内置工具移出核心之前必须回答的问题。

迁移规则

在将任何工具移出 core 之前,替代方案必须回答:

  1. 哪个配置仍然属于第一方,哪个配置会移到插件、技能、MCP server 或 CLI?
  2. 替换如何保留自治性检查、允许/拒绝列表、工具收据、审计日志和归因?
  3. 当内置工具消失时,现有配置会如何失效或迁移?
  4. 运维人员能否看到该 capability 是已安装、已启用、已禁用、已阻止还是缺失?
  5. 如果外部包损坏,回滚路径是什么?

如果未来某个切片需要代码证明,请从“Externalize later”表中选择一个低影响范围的候选项,并在不删除同一 PR 中内置工具的情况下证明替换路径。