Whale

功能特性

终端中高效 AI 辅助编程所需的一切。

缓存优先循环

Whale 的上下文布局将 DeepSeek 的前缀缓存作为一等公民。系统提示词、工具规范和 Skills 构成不可变前缀, 在整个会话期间保持稳定。对话历史以追加模式写入。这意味着长会话可以持续受益于缓存前缀——实践中可达约 90% 的缓存命中率。

┌─────────────────────────────────────┐
│ 不可变前缀                          │ ← 会话期间固定
│ system + tool specs + skills        │   缓存命中目标
├─────────────────────────────────────┤
│ 追加式对话日志                      │ ← 每轮追加
│ [user][assistant][tool][user]...    │   保持前缀一致
├─────────────────────────────────────┤
│ 可变暂存区                          │ ← 每轮重置
│ 推理 / 中间结果                     │   不参与下游请求
└─────────────────────────────────────┘

工具调用修复层

DeepSeek 的工具调用输出可能存在格式问题。Whale 包含专门的修复层来处理这些边缘情况。

Scavenge(回收)

从推理内容中恢复遗漏的工具调用。

Flatten(展平)

自动展平深层 schema,防止参数丢失。

Recovery(恢复)

处理 JSON 截断、空字段、序列化数组和熔断保护。

TUI 与斜杠命令

Whale 的终端 UI 使用 Go 的 Bubble Tea 框架构建。所有交互都在终端内完成。

命令 用途
whale启动交互式 TUI
whale exec "提示"一次性执行任务
whale setup保存 API Key
whale doctor运行健康检查
whale resume恢复之前会话

斜杠命令(TUI 内)

命令 用途
/ask [提示]只读问答模式
/plan [提示]先计划再执行
/review [目标]代码审查
/compact压缩会话上下文
/focus切换专注视图
/status显示会话状态
/skillsSkills 菜单
/memory查看/管理记忆
/mcpMCP 服务器状态

MCP 与 Skills

在不修改 Whale 核心代码的情况下扩展功能。

MCP 支持

通过 MCP 服务器接入外部工具。Whale 连接标准 MCP 服务器来添加数据库、API、云服务等自定义工具。

Agent Skills

可复用工作流,用于团队规范、代码审查、测试或工具特定指导。在 TUI 中输入 $skill-name 即可调用。

隔离工作树

使用 whale --worktree <名称> 为每个功能或 bug 修复创建隔离的 git 工作树。 更改保留在各自的分支中,Whale 会在退出后自动清理。

whale --worktree feature-x
whale exec --worktree feature-x "实现并测试这个更改"