主要变更: - Skill Learning 闭环系统 (9/9 AC) - Opus 4.7 模型层接入 + adaptive thinking - Prompt 工程优化 (64 审计测试) - Agent Teams 简化门控 (默认启用) - Windows Terminal 后端修复 (EncodedCommand/WT_SESSION) - TF-IDF 技能搜索精准化 (字段加权/CJK 优化) - Autonomy 系统 (/autonomy 命令) - ACP 协议完整实现 - mock.module 泄漏修复 (CI 全绿) - 152+ lint/type 修复
14 KiB
剩余 Stub 恢复优先级(按当前源码)
更新日期: 2026-04-15 结论口径: 以当前
src/+packages/源码为准,不以历史设计文档为准。 目标: 将剩余 stub 按恢复收益 / 实现复杂度 / 是否挡主流程归类,给出实际可执行的恢复顺序。
一、判定口径
本文中的“主流程”特指外部版默认用户最容易直接碰到的执行链路:
src/entrypoints/cli.tsx快速入口src/main.tsx命令注册与主 actionsrc/screens/REPL.tsx与src/query.ts的常规对话循环- 默认或显式可见的工具与命令
以下内容不视为主流程阻塞:
process.env.USER_TYPE === 'ant'的内部路径- 纯遥测 / 内部监控
- feature flag 关闭时根本不会暴露给普通用户的能力
- 已被显式隐藏的占位命令
二、先说结论
建议恢复顺序:
SSHBash ClassifierWebBrowserTool
并行的收口 / 验证项:
WorkflowTool设计口径澄清DiscoverSkillsToolCached Microcompact
原因:WebBrowserTool 仍然属于真正部分完成的能力面;WorkflowTool 按当前代码模型更像 prompt expansion surface,不应继续误判为“缺少执行引擎”;DiscoverSkillsTool 与 Cached Microcompact 已从“待恢复”转为“基本完成,需收口验证”。
三、优先级总表
| 优先级 | 模块 | 主要文件 | 恢复收益 | 实现复杂度 | 挡主流程 | 结论 |
|---|---|---|---|---|---|---|
| P0 | SSH 远程会话 | src/ssh/createSSHSession.ts |
高 | 中高 | 是 | 最优先 |
| P1 | Bash 语义分类器 | src/utils/permissions/bashClassifier.ts |
高 | 中 | 否 | 高 ROI |
| P2 | Workflow prompt surface | packages/builtin-tools/src/tools/WorkflowTool/WorkflowTool.ts |
中 | 低 | 否 | 基本完成,需澄清设计边界 |
| P2 | 显式技能搜索工具 | packages/builtin-tools/src/tools/DiscoverSkillsTool/DiscoverSkillsTool.ts |
中 | 低 | 否 | 基本完成,转入收口与测试 |
| P1 | 内嵌浏览器工具 | packages/builtin-tools/src/tools/WebBrowserTool/WebBrowserTool.ts |
中 | 中高 | 否 | 部分完成,需补 runtime 或收口成 browser-lite |
| P2 | Cached microcompact | src/services/compact/cachedMicrocompact.ts |
高 | 中 | 否 | 基本完成,转入硬化与验证 |
| P2 | Agent snapshot 更新对话框 | src/components/agents/SnapshotUpdateDialog.ts |
中 | 低中 | 否 | 补齐一个已连通但无 UI 的链路 |
| P3 | 反馈受挫检测 | src/components/FeedbackSurvey/useFrustrationDetection.ts |
低中 | 低 | 否 | UX 补丁 |
| P3 | 平台辅助原生模块 | packages/modifiers-napi/src/index.ts, packages/url-handler-napi/src/index.ts |
低中 | 低中 | 否 | 平台能力补强 |
| P3 | /reset-limits |
src/commands/reset-limits/index.ts |
低 | 低 | 否 | 仅补齐显式提示链路 |
| P4 | internal runner / telemetry | src/environment-runner/main.ts, src/self-hosted-runner/main.ts, src/utils/sessionDataUploader.ts, src/utils/sdkHeapDumpMonitor.ts, src/hooks/notifs/useAntOrgWarningNotification.ts |
低 | 中到高 | 否 | 长期后置 |
四、P0 - P2 详细说明
P0: SSH 远程会话
文件
src/ssh/createSSHSession.ts
现状
src/main.tsx已明确暴露claude ssh <host> [dir]。main.tsx在3775行附近直接动态导入createSSHSession()/createLocalSSHSession()。- 当前实现直接抛
SSHSessionError('SSH sessions are not supported in this build')。
为什么排第一
- 这是一个已经暴露给用户、但运行时被 stub 卡死的显式入口。
- 不是“未来功能”,而是“入口存在、帮助里可见、实际不能用”。
- 修复后能立刻把一个主命令从假可用变成真可用。
复杂度来源
- 需要处理 SSH 建链、错误回传、远端 cwd、auth proxy、stderr tail。
- 已有
SSHSessionManager接口,说明调用方契约基本稳定,难点主要在 runtime 实现而不是接口设计。
建议拆解
- 先恢复
createLocalSSHSession(),打通本地伪 SSH 流程。 - 再补真实 SSH session 创建。
- 最后补重连、端口转发和更好的错误分类。
P1: Bash 语义分类器
文件
src/utils/permissions/bashClassifier.ts
现状
- 权限 UI、
bashPermissions.ts、classifierDecision.ts都已接入。 - 当前实现明确写着
Stub for external builds - classifier permissions feature is ANT-ONLY。 isClassifierPermissionsEnabled()恒为false,classifyBashCommand()恒返回 disabled。
为什么优先级高
- 不挡主流程,但直接影响 Bash 工具体验和自动审批能力。
- 修复收益覆盖面广,因为 BashTool 是高频主工具。
- 不需要先重做整个权限框架,只需把分类后端从 no-op 变成可用实现。
复杂度来源
- 需要决定是本地规则引擎、轻量 AST、还是保守的模式匹配策略。
- 但外围编排基本都在,属于“后端一补,整条链路就活”。
建议目标
- 第一阶段先做保守匹配,支持 deny / ask / allow 的最小闭环。
- 不要一开始追求 Anthropic 内部同等能力。
P2: Workflow prompt surface
文件
packages/builtin-tools/src/tools/WorkflowTool/WorkflowTool.ts
现状
WorkflowTool、createWorkflowCommand.ts、constants.ts、WorkflowPermissionRequest.tsx、src/tasks/LocalWorkflowTask/LocalWorkflowTask.ts已存在。getWorkflowCommands()生成的是type: 'prompt'的命令,kind: 'workflow'。WorkflowTool.call()会读取 workflow 内容并把它返回给模型。- 这条链路和
/commit、skills、prompt command 的执行模式一致:命令/工具提供 prompt,模型再去调用普通工具执行。
为什么不再列为主恢复项
- 当前更准确的判断是:它按现有设计已经基本可用。
- 缺的不是“执行引擎”,而是文档口径和能力边界说明。
LocalWorkflowTask/WorkflowDetailDialog这类结构更像未来高级 background workflow 轨道,不是当前 WorkflowTool 主路径的必需部分。
建议动作
- 把文档统一改成“workflow = prompt-backed command”
- 统一
/workflow-name与WorkflowTool.call()的输出语义 - 再决定是否要把 background workflow 作为未来升级功能单独推进
P1: DiscoverSkillsTool
文件
packages/builtin-tools/src/tools/DiscoverSkillsTool/prompt.tspackages/builtin-tools/src/tools/DiscoverSkillsTool/DiscoverSkillsTool.ts
现状
src/constants/prompts.ts已经尝试读取DISCOVER_SKILLS_TOOL_NAME。- 本地 skill index、prefetch、remote loader、remote state 都已有实现。
DISCOVER_SKILLS_TOOL_NAME已补上,DiscoverSkillsTool.call()已能调用本地 TF-IDF 搜索。
为什么排 P1
- 这项已经不再是主恢复缺口。
- 当前更准确的状态是“基本完成”,剩余工作集中在测试、上下文使用和文档同步。
建议拆解
- 补测试,覆盖显式搜索结果与空结果路径。
- 修正
call()中对上下文cwd的获取。 - 同步文档口径,移出“待恢复主项”。
P2: WebBrowserTool
文件
packages/builtin-tools/src/tools/WebBrowserTool/WebBrowserTool.tspackages/builtin-tools/src/tools/WebBrowserTool/WebBrowserPanel.ts
现状
src/tools.ts已在feature('WEB_BROWSER_TOOL')下注册工具。src/screens/REPL.tsx已给面板留了位置。- 当前
navigate/screenshot已有 HTTP fetch-lite 实现,但click/type/scroll仍需 full runtime,Panel 仍是null。
为什么是 P2,不是 P1
- 功能面存在,但默认外部用户并不会直接依赖它完成主流程。
- 但它已经不是纯 placeholder,更准确的状态是“部分完成,待补完”。
- 真正的复杂度仍在 full browser runtime / Bun WebView。
建议拆解
- 先决定产品方向:收口成 browser-lite,还是继续补 full runtime。
- 若走 browser-lite,收紧文案并补简单 Panel。
- 若走 full runtime,再补
click / type / scroll。
P2: Cached Microcompact
文件
src/services/compact/cachedMicrocompact.tssrc/services/compact/cachedMCConfig.ts
现状
microCompact.ts、query.ts、services/api/claude.ts都已经接了调用点。constants/prompts.ts也已经预留配置读取。cachedMicrocompact.ts与cachedMCConfig.ts现在已有真实实现,microCompact.ts也已经走cachedMicrocompactPath()。
为什么不是更高优先级
- 它已经不再是“待恢复”主项。
- 更准确的状态是“基本完成,但需要硬化验证”。
- 当前主要风险是边界行为、模型兼容性和测试覆盖,而不是主路径完全缺失。
建议拆解
- 补集成测试,覆盖阈值、去重、pin、baseline/delta 逻辑。
- 补更明确的 debug logging 与失败回退。
- 从“恢复主项”移到“验证/硬化项”。
P2: Snapshot 更新对话框
文件
src/components/agents/SnapshotUpdateDialog.ts
现状
main.tsx、dialogLaunchers.tsx都会走到这里。- 当前组件直接
return null,buildMergePrompt()也返回空字符串。
为什么是 P2
- 这不是大 feature,但它属于“调用点真实存在、UI 仍为空”的典型残缺项。
- 实现成本低于前几个,适合穿插修复。
五、P3 - P4 详细说明
P3: 反馈与平台辅助项
包含
src/components/FeedbackSurvey/useFrustrationDetection.tspackages/modifiers-napi/src/index.tspackages/url-handler-napi/src/index.tssrc/commands/reset-limits/index.ts
判断
useFrustrationDetection.ts已被REPL.tsx使用,但只是 survey UX,不挡核心功能。modifiers-napi在 macOS 下有部分实现,其他平台退化为 false,可接受。url-handler-napi会影响 deep link URL launch,但不是日常主流程。/reset-limits已在文案中出现,但仍是隐藏 stub,修复价值有限。
P4: internal runner / telemetry
包含
src/environment-runner/main.tssrc/self-hosted-runner/main.tssrc/utils/sessionDataUploader.tssrc/utils/sdkHeapDumpMonitor.tssrc/hooks/notifs/useAntOrgWarningNotification.ts
判断
- 这些模块不是没有价值,而是对当前外部版几乎不构成主线能力缺口。
- 多数要么是 feature-gated,要么是
ant-only,要么明显偏内部监控与基础设施。
六、建议的实际恢复批次
批次 A: 先修“显式暴露但跑不通”的入口
src/ssh/createSSHSession.tssrc/utils/permissions/bashClassifier.ts
批次 B: 修“骨架已齐、核心仍空”的 feature shell
packages/builtin-tools/src/tools/WorkflowTool/WorkflowTool.ts的设计口径澄清与文档统一
批次 C: 修“已注册但 runtime 缺失”的增强能力
packages/builtin-tools/src/tools/WebBrowserTool/WebBrowserTool.tspackages/builtin-tools/src/tools/WebBrowserTool/WebBrowserPanel.ts
批次 D: 做“基本完成项”的收口与验证
packages/builtin-tools/src/tools/DiscoverSkillsTool/DiscoverSkillsTool.tssrc/services/compact/cachedMicrocompact.ts
批次 E: 修“可见但不挡主线”的 UI / 平台补丁
src/components/agents/SnapshotUpdateDialog.tssrc/components/FeedbackSurvey/useFrustrationDetection.tspackages/url-handler-napi/src/index.tspackages/modifiers-napi/src/index.ts
七、当前不建议优先投入的方向
关于 summary 的状态说明
仓库里现在有两种不同含义的 summary,需要明确区分:
-
后台会话 task summary
- 文件:
src/utils/taskSummary.ts - 状态: 已从纯 stub 变成基础实现
- 当前能力: 仅在
BG_SESSIONS+ bg session 下生效,按最近一次 assistant/tool_use 更新status与waitingFor - 结论: 不能算“完整”,但也不应继续归类为纯 stub
- 文件:
-
隐藏的
/summary命令- 文件:
src/commands/summary/index.js - 状态: 仍为隐藏 stub
- 当前能力:
isEnabled: () => false - 结论: 如果讨论“summary 命令是否完成”,答案是否定的
- 文件:
因此,后续讨论 summary 时应统一使用下面的表述:
task summary: 基础版已完成/summary命令: 仍未完成
隐藏命令 stub
当前至少还有一批明确导出为 name: 'stub' 的隐藏命令,包括:
teleportsummaryctx_vizsharebughunterbackfill-sessionsautofix-prbreak-cacheant-traceissueenvdebug-tool-callperf-issuegood-claudeonboardingoauth-refreshmock-limitsreset-limits
这些命令的共同特点是:
- 不是“看起来能用、但运行时报错”,而是已经明确被隐藏和禁用。
- 从产品角度,它们比 SSH、Workflow、Bash Classifier 更靠后。
大规模 type stub 清理
当前扫描中带 Auto-generated type stub 标记的文件仍有数百个量级。
这类工作重要,但不适合和功能恢复搅在一起做。更合理的顺序是:
- 先恢复高价值运行时 stub。
- 再单独开一个类型恢复专项。
八、哪些旧文档结论已经过期
以下模块在历史文档中曾被写成 stub,但当前源码已经不是本轮恢复重点:
src/services/compact/reactiveCompact.tssrc/proactive/index.tssrc/tasks/LocalWorkflowTask/LocalWorkflowTask.tssrc/utils/taskSummary.ts(现为基础实现,不再是纯 stub)src/utils/eventLoopStallDetector.tssrc/utils/ccshareResume.tssrc/services/contextCollapse/index.ts
后续如果需要继续维护 stub 清单,应优先更新本文档,而不是继续沿用这些旧设计稿中的状态判断。
九、执行建议
如果目标是尽快提升外部版可用性,建议严格按下面顺序推进:
SSHbashClassifierWebBrowserToolWorkflowTool设计口径澄清DiscoverSkillsTool收口cachedMicrocompact硬化
如果明确先不处理 SSH 和 bashClassifier,后续完整顺序改为:
WebBrowserToolWorkflowTool设计口径澄清DiscoverSkillsTool收口cachedMicrocompact硬化SnapshotUpdateDialoguseFrustrationDetectionurl-handler-napimodifiers-napi/summary- 其他隐藏命令 stub
- type stub 专项清理
如果目标是“减少仓库里看起来像半成品的地方”,则应在上面这条主线完成后,再处理:
SnapshotUpdateDialoguseFrustrationDetectionurl-handler-napimodifiers-napi- 隐藏命令 stub
- type stub 专项清理