Initial commit: sage:TypeScript AI Agent 框架 monorepo(llm / memory / tui 三包)
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# Sage — AI 编程助手
|
||||
|
||||
功能上高度对应 opencode,但 UI 风格完全不同(Tokyo Night 配色 + Ink/React TUI),并额外内置**长期记忆**系统。
|
||||
|
||||
## 启动
|
||||
|
||||
```bash
|
||||
# 在终端里直接运行(需要真实 TTY)
|
||||
node sage.mjs
|
||||
|
||||
# 或者
|
||||
cd packages/tui && node --import=tsx/esm src/index.tsx
|
||||
```
|
||||
|
||||
## 配置 `~/.sage/config.json`
|
||||
|
||||
```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 风格
|
||||
```
|
||||
Reference in New Issue
Block a user