2.4 KiB
2.4 KiB
Sage — AI 编程助手
功能上高度对应 opencode,但 UI 风格完全不同(Tokyo Night 配色 + Ink/React TUI),并额外内置长期记忆系统。
启动
# 在终端里直接运行(需要真实 TTY)
node sage.mjs
# 或者
cd packages/tui && node --import=tsx/esm src/index.tsx
配置 ~/.sage/config.json
{
"defaultProvider": "anthropic",
"defaultModel": "claude-sonnet-4-6",
"theme": "tokyo-night",
"providers": {
"anthropic": { "apiKey": "sk-ant-..." },
"openai": { "apiKey": "sk-..." },
"google": { "apiKey": "..." },
"openrouter":{ "apiKey": "sk-or-..." }
},
"memory": {
"autoSummarize": true,
"maxMemories": 500,
"recallCount": 5
}
}
也可以通过环境变量:ANTHROPIC_API_KEY / OPENAI_API_KEY / GOOGLE_API_KEY / OPENROUTER_API_KEY
键位
| 按键 | 功能 |
|---|---|
^B |
切换 session 面板焦点 |
↑↓ |
在 session 面板中导航 / 历史命令 |
Enter |
发送消息 / 选中 session |
^C |
中断当前生成 |
Esc |
关闭弹窗 / 清除错误 |
斜线命令
| 命令 | 说明 |
|---|---|
/remember <文字> |
手动保存一条长期记忆 |
/memories |
浏览 & 删除所有记忆 |
/model <id> [provider] |
切换模型,如 /model gpt-4o openai |
/new |
新建 session |
/clear |
清空显示 |
/abort |
停止生成 |
/help |
命令列表 |
长期记忆
- 每次发消息前,自动用 BM25 召回最相关的历史记忆注入上下文
- 底部黄色条
◊ 3 memories recalled显示命中的记忆 - 每 20 条消息自动用 LLM 摘要本次会话并写入记忆库
- 数据存于
~/.sage/sage.db(SQLite + FTS5)
内置工具
| 工具 | 说明 |
|---|---|
bash |
执行 shell 命令 |
read |
读取文件 |
write |
写入文件 |
edit |
精确字符串替换 |
glob |
文件模式匹配 |
grep |
正则内容搜索(ripgrep) |
支持的 Provider
- Anthropic — Claude Opus 4.8 / Sonnet 4.6 / Haiku 4.5
- OpenAI — GPT-4o / GPT-4o-mini / o3
- Google — Gemini 2.5 Pro / Flash
- OpenRouter — 所有主流模型
项目结构
packages/
core/ — DB、session、工具系统
llm/ — 多 Provider + 流式调用循环
memory/ — 长期记忆 (FTS5 BM25 检索)
tui/ — Ink (React) TUI,Tokyo Night 风格