Skip to content

路线图

本文合并原 MVP 范围MVP 验收工具与阶段(tools-parity)待实现清单(roadmap-stubs)MCP 后续(mcp-postmvp) 的要点。代码事实来源仍以 crates/tools/src/catalog.rscrates/tools/src/agent_tools.rsAgent / Task)、crates/cli/src/bootstrap/mod.rscrates/agent/src/agents.rs 为准。

维护者执行层 backlog(now / next / later、决策):仓库 docs/roadmap.md — 迭代任务请只改该文件,勿在本页重复清单。

最小 MVP 范围(已冻结)

MVP 内

  • 单一工作区内 读/写/改文件、Glob/Grep、Bash(及文档已列的 P1/P2/P7/P8 内置工具)。
  • 审批 / 沙箱SecurityLayer 与配置项)。
  • z.ai(OpenAI 兼容)与 Anthropic 至少一条日常可用的 tool-calling 路径。
  • 执行期落盘日志~/.anycode/tasks/<id>/output.log)与 结束 summary(非 TUI 直出场景)。
  • CLIrunrepltui、通道桥、scheduler 等。(HTTP daemon 已移除 — 见 ADR 003HTTP 守护进程(已移除)。)

MVP 外(独立里程碑,不阻塞上述 MVP 发布)

  • MCP 完整产品形态(SSE/HTTP、完整 OAuth UI、延迟加载等)超出当前 stdio v1 范围的部分。
  • LSP 完整子进程故事(实验性 tools-lsp 之外)。
  • 子 Agent:与上游 完全同级的隔离/编排(fork、跨进程持久后台 Agent 等)仍属独立里程碑;工作树级隔离、run_in_background v1(进程内注册表 + TaskOutput / TaskStop)与 Claude Agent 字段对齐见 P5
  • Skill 插件市场 / OpenClaw 全量 parity(超出 SKILL.md + Skill 工具 的部分,见 Agent skills)。
  • Swarm / Coordinator、插件市场、遥测、语音、浏览器工具等。

扩大或缩小 MVP 边界时,请同步更新本节与下节验收条目。

最小 MVP 验收场景

每条场景后,在对应任务的 ~/.anycode/tasks/<task_id>/output.log 中确认:

  • [task_start][turn_start](或等价 turn 标记)。
  • 若预期走工具链:[tool_call_start](见 run / REPL / TUI)。
  • 非 TUI:== summary == 段或运行时说明的未生成 summary 条件。

场景 A:只读检索(Glob + Grep + FileRead)。
场景 B:小范围写改(Edit 或 FileWrite)。
场景 C:Bash 与项目命令。
场景 D:WebFetch 或 WebSearch。
场景 E(推荐):z.ai 首轮工具调用 — 配置 zai_tool_choice_first_turnANYCODE_ZAI_TOOL_CHOICE_FIRST_TURN=1
场景 F:持久记忆注入(memory.backend=file)。

通过后即认为满足本节 MVP 边界;MCP/LSP/子 Agent 等不在此列。

工具目录与阶段矩阵(P0–P8)

单一事实来源

命名对照(节选)

参考(类/模块名)模型工具名(API)
FileEditToolEdit
SyntheticOutputToolStructuredOutput
BriefToolSendUserMessage(别名 Brief
MCPToolmcp
AgentToolAgent;legacy Task

阶段矩阵(摘要)

阶段工具(API 名)anyCode 状态
P0模块拆分、ToolServicesbuild_registry完成
P1Edit, NotebookEdit, TodoWrite 等完成
P2WebFetch, WebSearch完成
P3mcp, ListMcpResourcesTool, ReadMcpResourceTool, McpAuthv1tools-mcp + ANYCODE_MCP_COMMAND / ANYCODE_MCP_SERVERS;deny 规则;动态 mcp__<slug>__authenticate
P4LSP部分tools-lsp + ANYCODE_LSP_COMMAND 时转发;未启用 stub
P5Agent, Skill, SendMessage, Task(legacy)Skill v1 已落地;Agent / 旧 Task 嵌套 AgentRuntimeagent_type / subagent_type 选工具面,嵌套深度有上限);支持 Claude 式 modelisolation: worktree(临时 git worktree)、cwd 解析为绝对路径run_in_background: true 立即返回 status: started,嵌套在后台任务中执行 — 用 TaskOutput 轮询、用 TaskStop + UUID(嵌套 turn / 工具 边界协作式标志位 + AbortHandle 兜底;仅进程内);SendMessage 写入编排快照并随 orchestration.json 持久化
P6编排 Task/Team/Cron 等持久化 v1~/.anycode/tasks/orchestration.json(损坏时备份为 *.json.corrupt
P7EnterPlanMode, Worktree, ToolSearch, Sleep, StructuredOutput完成
P8PowerShell, Config, Brief, AskUserQuestion, REPL完成(PowerShell 仅 Windows)

Cargo featurescrates/tools/Cargo.tomltools-mcp / tools-lspanycode 包透传;tools-http 预留。

MCP 与后续里程碑(提纲)

目标:在 tools-mcp 启用时,将 P3 从占位升级为可连接的 MCP 客户端;内置工具 + MCP 动态工具合并去重;mcp__<server>__<tool> 命名与 security.mcp_tool_deny_patterns 一致过滤。

v1 已落地(概要):多 stdio 会话(ANYCODE_MCP_SERVERS)、每服务器 mcp__<slug>__authenticate、配置级工具名过滤;ANYCODE_MCP_READ_TIMEOUT_SECS 可调 JSON-RPC 单行读超时,可选 ANYCODE_MCP_CALL_TIMEOUT_SECS 限制整次 tools/call 墙钟;EOF/超时错误含子进程状态提示,McpStdioSession::stdio_child_is_running 健康检查。仍为 stdio 单协议;SSE/HTTP、完整 OAuth UI、延迟加载等为后续项。

建议顺序:传输层 → 协议(initialize / tools/list / tools/call)→ 在 bootstrap 单路径注册动态工具 → SecurityLayer → OAuth / McpAuth → 资源工具 → (进阶)延迟加载。

代码入口mcp_normalization.rsmcp_tools.rsmcp_stdio.rsbootstrap/mcp_env.rs;feature tools-mcp

P5 Skill(已落地 v1):多根目录 SKILL.md 扫描、ToolServices.skill_catalog、系统提示 Available skills、路径安全的 Skill 执行(超时、输出上限、可选最小环境)、配置 skills.*、CLI anycode skills list|path|init;可选 skills.expose_on_explore_planexplore / plan 注册 SkillAgent / 旧 Task:嵌套 AgentRuntimeSubAgentExecutor)。与 Claude Code Agent 工具对齐(当前子集):入参 subagent_type(同 agent_typeExplore/Plan/general-purpose 等会规范化)、可选 description、可选 cwd(相对则相对工具调用工作目录,再 canonicalize 为绝对路径)、可选 modelsonnet/opus/haiku 或裸模型 id;按主会话 provider 映射)、可选 isolation: "worktree"(在系统临时目录下 git worktree add,结束后移除);run_in_background: true 立即返回 status: started,与同步路径相同的 nested_task_id / output_file 提示,进程内注册表;用 TaskOutput 查看 background_status / 日志尾部,用 TaskStop 对 UUID:共享标志位在嵌套 turn工具 边界以及阻塞 chat / 流式 open 与 recv 上与 tokio::select! 竞争(约 20ms 轮询,无 tokio-util;不保证 TCP 立即断开)。AbortHandle::abort 仍为兜底;阻塞在 syscall 的工具仍可能依赖 abort。同步成功时仍有 content。仍与上游有差距:fork 自身、跨进程持久后台、群聊式 SendMessage 等 — 后续里程碑。

LSP、P5 其余项、OpenAI 官方客户端 等与英文 Roadmap 对称,细节见源码与上表。

最近已交付(参考)

  • 嵌套任务协作式取消(v2 + v2.1)TaskStop 置位并传入嵌套 TaskContext / TUI coop_canceltokio::select!chat / chat_stream / 流式 recv 竞争(约 20ms 轮询)。TaskResult::Failure cancelledbackground_status: cancelled。可选后续:CancellationTokensyscall 阻塞仍为 AbortHandle 尽力。

建议的下一主线(维护者)

下一阶段宜 每次只选一条 里程碑级主线(避免两条大块重构并行)。按主线拆 GitHub issue 跟踪。

主线目标(可拆成 issue 的起点)
P5 Agent / Task可选:编排与 ~/.anycode/tasks/<id>/ 布局对齐;fork;跨进程持久后台(超出当前进程内注册表)。
MCP 超出 stdio v1部分已做ANYCODE_MCP_READ_TIMEOUT_SECS(单行读)、ANYCODE_MCP_CALL_TIMEOUT_SECS(整次 tools/call);超时 / 意外 EOF 错误更清晰(含子进程退出);McpStdioSession::stdio_child_is_running 健康检查;McpAuth 无 GUI 说明见文档站 config-security仍待:stdio 生命周期 / 重连;资源工具体验打磨。
通道 AskUserQuestion微信 / Telegram / Discord 卡片或键盘选题(新 host 实现)。

**文档说明:**显式模型指令文件路径 通过环境变量 ANYCODE_MODEL_INSTRUCTIONS_FILE 指定;JSON 中的 model_instructions 控制自动发现 — 见 配置与安全

相关

English: Roadmap.

MIT License