Skip to content

功能规格说明 ​

本目录包含功能规格说明文件,作为功能设计和实现的唯一真实来源。

每个规格是一个独立的 markdown 文件(按主题分组存放于子目录),包含用户故事与验收场景。

为什么没有 Plan? ​

  1. 内置能力足够强大。 Plan 模式结合权限系统控制读写范围,Task 系统对多 Agent 协作友好且自带系统提示防止上下文丢失。
  2. 无法仅靠思考设计出完美方案。 边界情况、API 怪癖、集成问题只有在实现中才会暴露,静态 plan 注定频繁改动、迅速过时,不如交给 Agent 用完即弃。

统计 ​

指标数量
规格文件86
用户故事528
验收场景2,585
测试用例8,339

规格列表 ​

Agent 核心

功能描述用户故事验收场景链接
文件系统工具Read, Write, Edit, Glob, Grep 文件操作工具419规格
Bash 工具Bash, BashOutput, KillBash shell 命令执行工具837规格
WebFetch 工具获取 URL 内容,HTML 转 markdown,AI 模型处理,支持缓存513规格
Artifact 工具发布本地 HTML/Markdown 为默认私有的可分享网页,读取 artifact 原文/摘要855规格
Exec 工具把 MCP 工具池收敛为一个可编排的沙箱脚本工具1083规格
LSP 集成Language Server Protocol 代码智能(定义跳转、引用查找、悬停信息)34规格
自定义工具 buildTool()buildTool() 工厂方法,供 SDK 用户定义自定义工具37规格
Agent 配置基于构造函数的配置替代环境变量,支持 max output tokens 和自定义 headers1458规格
消息压缩对话历史和用户输入大小管理1573规格
Prompt 工程Prompt 构建和管理框架514规格
Prompt 缓存控制基于正则匹配的显式缓存标记,支持 Claude、Qwen 等多种模型526规格
记忆管理通过记忆文件在对话间持久化信息1570规格
流式输出助手消息和工具参数的实时内容流式传输1053规格
AI 错误处理处理输出 token 限制超限,提示 agent 将工作拆分为更小的块;连续截断达到上限时终止回合;截断恢复时保留上一轮推理内容816规格
工具权限系统权限系统,支持模式、通配符、拒绝规则、信任、acceptEdits、dontAsk、安全区2192规格
Plan 模式Shift+Tab plan 模式,只读分析并增量编辑 plan 文件1585规格
Agent 生命周期destroy() 的确定性排空语义:存活工作注册表、destroy 后公开 API 抛错、destroy 终态守卫(防幽灵 dispatch)312规格
后台任务完成通知Bash/Agent/Workflow 后台任务完成时注入主对话的 task-notification 消息语义(UI 隐藏、模型可见、持久化)15规格
会话文件保留清理按可配置保留期清理过期的会话 jsonl 文件(对齐 Claude Code)414规格

交互与 UI

功能描述用户故事验收场景链接
会话管理高性能、基于项目的会话管理系统1385规格
Markdown 渲染终端 Markdown 渲染,Ink 组件支持标题、列表、代码块、表格312规格
消息渲染基于 Ink 的消息/块渲染——静态历史 + 动态工具执行839规格
图片粘贴从剪贴板粘贴图片到聊天输入,支持占位符和附件;粘贴时就降到 2000 像素预算,出站图片再按 2000 像素 / 5MB 预算统一收口831规格
文件选择器快速文件/目录选择器 UI 组件413规格
长文本占位符用 `[LongText#ID]` 占位符替换粘贴的长文本,提交时展开12规格
确认 UI工具权限审批的确认对话框 UI 组件1044规格
AskUserQuestion 工具结构化用户交互工具,支持选项525规格
Clear 命令`/clear` 命令重置对话历史和会话25规格
Rewind 命令`/rewind` 回退对话到上一条用户消息,同时回退文件变更519规格
Print 模式`-p` 模式下的纯净响应输出,抑制所有子代理内部信息413规格
工具选择CLI `--tools` 标志限制 agent 使用特定工具集45规格
斜杠命令用户可调用的自定义斜杠命令系统620规格
Bash 模式`!` 前缀直接从聊天输入执行 shell 命令34规格
技能列表命令通过 /skills 斜杠命令浏览和查看所有可用技能1049规格
钩子命令通过 /hooks 斜杠命令查看已配置的钩子312规格
Help 命令`/help` 交互式帮助,显示快捷键、内置命令和插件命令37规格
Model 命令`/model` 交互式切换已配置的 AI 模型(CLI 选择器 + Webview 菜单,三端可用)416规格
BTW 命令`/btw` 旁路问题,绕过主消息队列432规格
状态栏左下角状态栏组件,用于模式和 shell 命令状态显示15规格
通知组件右下角 Notifications 组件:token 用量与登录提示29规格
Status 命令`/status` 显示版本、会话 ID、cwd、模型和运行时信息12规格
Update 命令`wave update` / `wave-code update` 更新到最新版本36规格
历史搜索Ctrl+R 历史搜索,复用 `~/.wave/history.jsonl` 中的历史提示26规格
输入编辑键与清空修复 SSH/tmux 退格失效、新增 Ctrl+U/K/W/A/E 行编辑键与空闲态 Esc 双击清空输入523规格
Stdio 传输层编辑器插件与 `wave --stdio` 子进程的 JSON-RPC 通信,CLI 解析/安装/升级、多会话路由、错误诊断1174规格
IDE 插件VS Code/JetBrains 共享 React webview 的横切关注点:主题变量、共享包与构建产物、生命周期与消息协议、IDE 专属对话框412规格
插件更新策略VS Code 扩展与 JetBrains 插件的更新统一交给官方市场机制,插件自身不再内置更新检查25规格
Webview 链接解析webview 中链接的解析与点击行为:消息 markdown、行内代码内的 URL、围栏代码块内的 URL、bash 命令输出中的 URL320规格
Webview 文件路径点击识别助手文本 markdown 中文件路径的识别与点击打开:行内代码与正文纯文本两通道、行号后缀、点击打开文件面板/编辑器534规格
操作确认对话框311规格
文本粘贴修复粘贴文本被立即提交:对齐 Claude Code 启用 bracketed paste(DECSET 2004)并在 stdin 原始字节层识别粘贴标记,粘贴内容仅插入不提交16规格
Daemon 客户端命令`wave daemon create/list/status/wait/send/respond/abort/destroy/stop/restart` — 按需创建、查看、阻塞等待空闲、续聊、审批、中断、销毁与优雅停止/重启 daemon 托管的远端后台会话1076规格

桌面应用

功能描述用户故事验收场景链接
桌面端壳层与分发CodeWave IDE 桌面端壳层:内置 CLI 交付、SSO 登录、与 IDE 一致的交互、跨平台分发、自动更新、主题设置、应用菜单栏与 macOS 隐藏标题栏1270规格
桌面端会话与远程CodeWave IDE 桌面端会话与远程:会话管理、SSH 远程主机/后台/重连、远程 daemon 常驻、历史恢复、worktree 隔离、快捷键、后台通知与会话状态看板13134规格
桌面端布局与分屏CodeWave IDE 桌面端布局与分屏:侧边栏收起、侧边栏滚动区间、并排多对话、新会话并排、分屏重排调宽与两行布局748规格
桌面端面板与工作区CodeWave IDE 桌面端右侧面板与工作区:一级 Tab 栏/空态与+/展开折叠与空间守卫、会话变更差异面板(变更基准与提交选择、文件树导航、统一/并排视图、大规模差异降级)、行评论与内嵌终端977规格
桌面端原型预览CodeWave IDE 桌面端独有原型预览闭环:localhost 原型预览、本地 HTML 文件预览、元素评论与全屏428规格
桌面端文件面板CodeWave IDE 桌面端文件面板:工具路径只读查看、自动刷新、文件搜索与拖拽上传445规格
桌面端设置与账户CodeWave IDE 桌面端设置页面、上下文用量指示器与账户卡片(用量常驻区/个人信息纯功能菜单/更新按钮状态机)667规格
桌面对话流排版、表格与链接CodeWave IDE 桌面端对话流(助手消息 Markdown)的文字角色、表格展示与对齐、链接角色,以及键盘可达与无障碍;含用户明示接受的对比度偏离639规格

多 Agent 与并发

功能描述用户故事验收场景链接
子代理将任务委派给预配置 AI 人格的子代理支持520规格
内置子代理Explore agent 内置子代理支持24规格
通用代理内置子代理,用于复杂研究、代码搜索和多步骤任务24规格
Plan 子代理内置 Plan 子代理,在编码前设计实现方案410规格
Bash 子代理内置 Bash 子代理,执行 shell 命令12规格
任务后台执行`run_in_background`、`TaskOutput`/`TaskStop` 工具,`/tasks` 命令替代 `/bashes`726规格
任务管理工具TaskCreate/TaskGet/TaskUpdate/TaskList,`~/.wave/tasks/` 存储和任务列表 UI616规格
Workflow 编排确定性多子代理编排,支持 pipeline、parallel 和 phase 控制流619规格
CLI Worktree`-w/--worktree` 隔离的 git worktree,位于 `.wave/worktrees/`,支持安全退出1568规格
Agents 命令`/agents` 查看与管理当前会话可见的 agent 定义838规格
视觉子代理WAVE_VISION_MODEL 环境变量 + 内置 vision 子代理,让非视觉主模型可委托图像识别39规格

扩展与生态

功能描述用户故事验收场景链接
Agent 技能可发现的技能包,通过 SKILL.md 文件提供模型可调用的能力931规格
内置 Settings 技能引导用户配置 `settings.json`、钩子和 Wave 设置管理34规格
Init 命令`/init` 斜杠命令,使用 init-prompt.md 进行项目初始化24规格
Code Review 技能审查当前 `git diff` 的正确性 bug,附带文件/行号引用519规格
Simplify 技能审查已变更代码的质量问题(重复、低效)并通过 `/simplify` 自动修复310规格
MCPModel Context Protocol 外部工具和上下文源支持1050规格
内置 SDD 插件规格优先工作流:specify 技能、会话引导与规格校验935规格
插件系统插件系统,支持 marketplace、作用域、技能、LSP、MCP、钩子、代理1294规格

自动化

功能描述用户故事验收场景链接
钩子系统扩展 Wave 行为的事件钩子系统2274规格
Loop 命令`/loop` 通过 cron 调度循环提示(如 `/loop 5m check the build`),支持持久化和多会话调度锁23规格
会话生命周期钩子SessionStart / SessionEnd 钩子在会话启动与运行时恢复时的行为412规格

企业管控

功能描述用户故事验收场景链接
SSO 认证/login 浏览器 SSO 登录、token 存储、自动 API 代理路由629规格
服务端托管配置从 Wave AI 下载并应用托管设置,支持校验和缓存和合并优先级415规格
OpenTelemetry 集成OpenTelemetry 指标、追踪和日志插桩,支持多种导出器(jsonl、OTLP)310规格
用量追踪SDK 用量追踪回调(`onUsagesChange`),用于 AI 调用和压缩413规格

上下文消息结构总览 ​

发送给 AI 模型的 messages 数组按以下顺序组装:

位置角色内容缓存标记持久化用户可见说明
[0]system基础系统提示词 + 任务执行准则 + 行动准则 + 工具策略 + 输出效率 + 语气风格有不持久化否子代理替换基础系统提示词,其余相同
语言指令 + 环境信息(主代理 # Environment 列表 / 子代理 Notes + <env> 块)+ 自动记忆 (MEMORY.md)无不持久化否
[1]user (meta)<system-reminder>: 项目 AGENTS.md + 用户 AGENTS.md + 无条件规则无不持久化,每轮插入头部否唯一每轮注入
历史user / assistant / tool文本块 / 图片块 / 工具块 / 后台任务通知块 / 推理块最后一条有持久化到 session JSONL是
user (isMeta)计划模式提醒 / 条件规则 / 任务提醒 / SessionStart Hook 上下文 / 后台任务通知 / Token 限制续写同上同上否触发时插入当时的结尾,各类型有独立触发条件

专用调用:

  • Fork 复用主对话上下文(复用主系统提示词、工具、模型与生成参数,指令作为末尾 user 消息追加,命中 prompt cache;无独立系统提示词):上下文压缩(runCompactFork → runForkLoop)、自动记忆提取(runAutoMemoryFork → runForkLoop)、BTW 旁路问题(runBtwFork,同构的内联单轮调用)。
  • 独立调用(自带独立系统提示词,不经过主系统提示词组装):网页内容提取(processWebContent,内置 WEB_CONTENT_SYSTEM_PROMPT,独立请求,不走会话历史)。
  • 常规子代理机制:Workflow 结构化输出——spawn 常规子代理(general-purpose),schema 指令追加到 prompt 末尾并强制 StructuredOutput tool_choice,非独立调用路径。