RSI Boot について
RSI Bootは、リポジトリごとの`.rsi/`にエンジニアリング上の記憶と改善提案を保存し、異なるホストを使うコーディングエージェントやチームで共有します。記憶の反映には人の承認が必要で、基本の処理にAPIキーは不要です。
主な機能
- 01リポジトリ単位で規約や修正を保存
- 02AIツール間でプロジェクト記憶を共有
- 03記憶項目の確認と競合の裁定
- 04フィードバックによるハーネス改善
- 05ステータスラインとローカル画面
活用シーン
- 01新しいセッションでリポジトリの規約を参照
- 02承認済みの記憶をチームで共有
- 03矛盾する記憶を確認して解決
MCP 対応
`rsi serve`でMCPサーバーを提供し、対応するAIツールから同じリポジトリの記憶ツールを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
RSI Boot
简体中文 | English
Agent 记忆很多人都在做。RSI Boot 要解决的是另外两件事:harness 会跟着用、跟着改,以及记忆跟着仓库走、换宿主不重学。
主链路零 API Key,不调用模型。约定、禁止项、修复经验和 harness 槽位都只落在当前仓库的 .rsi/,下次任务前按需召回。
和「又一个记忆插件」差在哪
rsi-harness(Harness-RSI) 负反馈进失败桶,只改可写槽位(提示词 / 技能 / 召回策略 / 意图规则 / 知识)。提案过静态门禁和人工确认才晋升,观察 7 天,采纳率掉就回滚。越用越会干活,不是越记越多。
跟随项目迁移
记忆按仓库隔离,不跟账号、不跟 IDE。仓库拷走、换机器、换目录,.rsi/ 一起走;打开另一个仓库就是另一份,不会串。Harness 基因组可导出 bundle,跨项目备份或迁槽位。
多平台兼容
同一套 MCP(rsi serve)接 Cursor、Qoder、Codex;状态栏同时吃 Claude Code 与 Cursor CLI。规则注入走 .cursor/rules 和各宿主都认的 AGENTS.md 托管块,换工具不用把项目史再讲一遍。
| 宿主自带记忆 | 云端记忆(Mem0 一类) | 通用本地记忆 MCP | RSI Boot | |
|---|---|---|---|---|
| 数据跟谁走 | 跟账号 / 跟宿主 | 跟云端用户 | 看实现 | 跟当前仓库 |
| 换 Cursor / Claude Code / Codex | 重学 | 对方接得上才有 | 多数只做存取 | 同一份 .rsi/ |
| Harness 自改进 | 无 | 无 | 无或弱 | 提案 → 门禁 → 观察 → 回滚 |
| 主链路 API Key | 绑宿主 | 要 | 常要 | 不要 |
| 写入闸门 | 模型自觉 | 服务端策略 | 少 | 审批 + 禁止项 + 冲突裁决 |
安装
需要 Python 3.10+:
pip install rsi-boot
rsi init
要改源码则克隆本仓库,按开发一节用可编辑安装。
rsi init 只写用户配置 ~/.rsi/config.yaml。项目记忆在各仓库的 .rsi/,第一次启动 MCP 或 bootstrap 时创建。
接到 Cursor
在要用记忆的那个项目的 .cursor/mcp.json 加:
{
"mcpServers": {
"rsi-boot": {
"command": "rsi",
"args": ["serve"],
"env": {
"RSI_PROJECT_ROOT": "${workspaceFolder}"
}
}
}
}
然后 Settings → MCP 确认 rsi-boot 已启用。改过本仓库代码后要重载该 MCP。
不要配用户级 mcp.json:那里 args 里的 ${workspaceFolder} 经常不展开,会把记忆串到别的仓库。工作区绑定顺序:RSI_PROJECT_ROOT(项目级 mcp.json,推荐,显式契约)→ MCP roots/list(插件形态下由 Cursor 自动应答)→ Cursor 注入的 WORKSPACE_FOLDER_PATHS → 进程 cwd。
接到其他宿主
Claude Code
插件市场方式(推荐,可随仓库更新):
/plugin marketplace add Apollo-lwx/rsi-boot
/plugin install rsi-boot@rsi-boot
或一条命令直接装 MCP:
claude mcp add rsi-boot -- uvx --from rsi-boot rsi serve
工作区按 roots/cwd 自动认领。状态栏集成见下文「状态栏(可选)」。
Qoder
本仓库同时是 Qoder 插件:.qoder-plugin/plugin.json 清单 + 根目录 mcp.json(与 Cursor 插件共用同一份 MCP 配置),打 zip 即可分发。手动接的话二选一:
qoder mcp add rsi-boot -- rsi serve
或在项目根 .mcp.json 加与 Cursor 相同的 mcpServers 片段。工作区绑定顺序与 Cursor 一致(RSI_PROJECT_ROOT → roots/list → 注入变量 → cwd)。
Codex
一行命令接入(推荐):
codex mcp add rsi-boot -- uvx --from rsi-boot rsi serve
或手写 TOML 配置:用户级 ~/.codex/config.toml,或项目级 .codex/config.toml(需目录已被信任):
[mcp_servers.rsi-boot]
command = "rsi"
args = ["serve"]
从项目根目录启动 codex 即可——MCP 子进程继承 cwd,rsi-boot 按 cwd 向上认领工作区。要显式钉死就在表里加一行:env = { RSI_PROJECT_ROOT = "/绝对/路径" }。
状态栏(可选)
rsi statusline 给宿主 CLI 渲染底部状态栏:模型、上下文余量、token 统计(in/out/cache)、花费、RSI 今日召回与采纳率,外加一条定期轮换的随机文案。Claude Code 与 Cursor CLI 通用(两家的 statusLine 都会把会话 JSON 从 stdin 喂进来,本命令解析后单行输出,带 ANSI 颜色与 emoji)。
Claude Code(~/.claude/settings.json):
{
"statusLine": { "type": "command", "command": "rsi statusline" }
}
Cursor CLI(~/.cursor/cli-config.json):
{
"statusLine": { "type": "command", "command": "rsi statusline" }
}
效果示例:
🧠 Kimi K3 │ 📊 上下文余 71% │ ⛽ in 12.3k · out 1.8k · cache 96k │ 💰 $0.42 │ 🐾 RSI 召回 3 · 采纳 92% │ 给你比个心❤
选文案风格
三种配法并列,按场景任选(优先级:--style > 环境变量 > 项目级 > 用户级):
// ① 跟着宿主走:直接写进 statusLine 的 command(最直观,不动任何 config.yaml)
{ "statusLine": { "type": "command", "command": "rsi statusline --style buddy" } }
# ② 项目级(按仓库定风格,跨宿主共享):<工作区>/.rsi/config.yaml
# ③ 用户级(全局默认):~/.rsi/config.yaml
statusline_style: buddy
六档预设:mixed 混搭(默认)、buddy 陪伴搭子(WorkBuddy 风:陪伴/安抚/治愈/祝福)、serious 严肃专业(只出通用陪伴与金句,不见猫咪玄学)、healing 治愈可爱、geek 极客梗、lucky 玄学好运。改完即生效,无需重启——状态栏每次刷新都会重读。语言键 lang 在 config.yaml 里走同一条优先级链。
注意:状态栏不是 MCP server,不由 mcp.json 管理(那是 rsi serve 记忆服务的配置),所以风格只能配在 statusLine 的 command 或 config.yaml 里。
説明:
- トークンの詳細は transcript(Claude Code)または
context_windowフィールド(Cursor CLI)から取得します。コンテキストウィンドウはデフォルトで 200k で、exceeds_200k_tokensの場合は 1M です。RSI_STATUSLINE_CTX_WINDOWで上書きできます。 - 文言は 3 層で提供されます。ユーザー文言ファイル(
~/.rsi/quips.json。セクションが空でなければ、内蔵プール全体を置き換えます)> 手書きプール(130 件以上、一定の品質を確保)+ テンプレート文生成器(約 200 種類の組み合わせ。組み合わせの空間に応じて重み付け)。ユーザー文言はホストモデルが会話中に生成します(「ステータスライン文言を生成して」と伝えるだけです。スタイルの規則はファイルの先頭に埋め込まれています)。書き込み後、rsi statusline --validate-quipsを実行して形式と重複を検証します。 - スタイルはテーマ(core/motto/kudos/fortune/geek/dry/healing/food/cat/game/hype/slack/offwork/weather)でタグ付けして絞り込みます。シーン別プール(朝の挨拶/深夜/緊急/長時間着席/称賛)の機能的な文言は、スタイルの制限を受けません。
- ローテーションと重複防止:デフォルトでは 45 秒ごとに切り替わります(
RSI_STATUSLINE_QUIP_SECONDSで変更できます。例:5)。同じカテゴリ内ではちらつきません。~/.rsi/state/statusline_quips.jsonにセッションごとの直近 300 件の表示済み文言を記録し、自動的に重複を避けます。 - シーン専用プール:朝の挨拶(06~11 時)、深夜(23~06 時)、コンテキスト緊急(≤15%)、長時間着席リマインダー(セッション ≥45 分、
RSI_STATUSLINE_REST_MINUTESで変更可能。0 で無効)、RSI 高採用の称賛。 - RSI セクションは cwd から上位へたどって
.rsi/logs/events.jsonlを探し、今日のデータを集計します。見つからない場合は何も表示しません。 - 表示する言語は 1 つだけです。解析順は
--lang→RSI_LANG→ プロジェクトの.rsi/config.yaml→ ユーザーの~/.rsi/config.yaml→ システム言語です。固定するにはlang: zhの 1 行を記述します(プロジェクトの設定が優先されます)。 - オプション:
--lang zh|en、--no-rsi、--no-quip、--plain(色と絵文字を削除)。NO_COLORは色だけを無効にします。 - コールドスタートは約 250ms で、ホストの ≥300ms の更新間隔を満たします。コマンドが非ゼロで終了することはなく、異常時はフォールバックとして 1 行を出力します。
会話で学習する
MCP を接続した後は、自分でターミナルから rsi を実行しないでください。現在のプロジェクトウィンドウのエージェントに伝えるだけで構いません。
| あなたの発言 | エージェントの動作 |
|---|---|
| このプロジェクトを初めて学習する | rsi bootstrap --consent --host-judge → rsi_learn ですべての pending を蒸留 → rsi_knowledge_review でこの run を承認 |
| 再学習する | まず rsi wipe --yes で記憶を消去し、その後、上記の手順で再学習 |
「--host-judge または --local-judge の指定が必要です」と表示された場合は、--host-judge を追加して再実行してください。--local-judge に切り替えないでください(こちらはターミナルでの直接収集専用です)。rsi wipe --yes は、そのプロジェクトの .rsi 配下にある memory/ logs/ cache/ audit/ state/ と manifest.json を削除し、identity.json は保持します。ファイルが使用中と表示された場合は、Settings → MCP で rsi-boot を無効にしてから再実行してください。
学習後は .rsi/bootstrap_report.md のセクション一覧を確認してください。pending=0 となり、rsi_knowledge_review で承認された時点で、想起が利用可能になります。承認された規約は想起にのみ追加され、rsi-convention-*.mdc ルールファイルとして書き込まれることはありません。
ターミナルでのスモークテスト
会話を介さず、CLI のみを呼び出す場合に使用します。ディスクへの書き込みには、--dry-run を除き、--host-judge または --local-judge のどちらかを指定する必要があります。
rsi recall "帮我审查这段 Python 代码"
rsi knowledge add --title "项目约定" --content "本项目统一使用 snake_case 命名"
rsi recall "本项目的命名约定是什么"
rsi bootstrap --dry-run
rsi bootstrap --local-judge
rsi bootstrap --local-judge --force
# 旧版 .rsi/rsi.db 先迁移
rsi memory migrate
# 一般由 Cursor 拉起,不必手跑
rsi serve
MCP ツール
| ツール | 機能 |
|---|---|
rsi_recall | タスク開始前に想起します:禁止項目を最優先で提示し、規約/ドキュメント/gene/teaching を含みます |
rsi_explore | domain セクションごとに知識ツリーを掘り下げて閲覧します(空の path を指定すると最上位のセクションと件数を一覧表示し、path を指定するとメンバー項目のタイトル/概要/id を一覧表示します。また、このノードの項目に関するグラフ上の関連項目 related と競合 conflicts も付加します) |
rsi_feedback | 採用フィードバックを送ります。rejected にコメントを添えると、禁止項目として抽出されます |
rsi_learn | 読書パッケージ pack_list / pack_open / pack_done、teach_catch / teach_record、Session 監査 |
rsi_knowledge_add / rsi_knowledge_search / rsi_knowledge_delete / rsi_knowledge_update / rsi_knowledge_review | 記憶の管理と承認。rsi_knowledge_update はフィールドの直接編集(重複項目を新規作成するより、既存項目を編集する方が優先)と、近似重複項目の merge(より完全な項目を保持し、他の項目はアーカイブして supersedes エッジを書き込みます)をサポートします。蒸留項目には pack_id が必要です |
rsi_conflicts | 短い知識項目の競合を照会して裁定します |
rsi_memory_health | 誤りや古い記憶の発見と裁定:コメントの極性が記憶を否定している場合は incorrect を有効にし、ソースが無効になった場合は stale_source を有効にします。アーカイブできるのは resolve のみです。スキャンによって正式なライブラリが変更されることはありません |
rsi_memory | 記憶のインデックス作成/表示/再構築/関係グラフ |
rsi_review | Harness の改善提案と設定スナップショット |
rsi_stats | 記憶の使用統計 |
rsi_impact | 価値/影響パネル(紹介用):注入コスト(文字数+トークン数の推定)、想起の圧縮率、採用/コンプライアンス、時間推移、A/B トークン削減計算ツール(削減量はユーザーが入力したホストの使用前/使用後の比較からのみ算出し、決して捏造しません) |
RSI は OAuth を使用しません。蒸留の途中で mcp_auth を呼び出したり、ユーザーに認証を求めるダイアログを表示したりしないでください。
設定
設定の優先順:パッケージ内の default.yaml → ~/.rsi/config.yaml → プロジェクトルートの rsi-boot.yaml → リクエストパラメーター。
RSI_HOME はユーザー設定ディレクトリ(デフォルトは ~/.rsi)のみを上書きします。プロジェクトの記憶、プロファイル、アーカイブはすべて作業ディレクトリの .rsi/ に保存されます。別のリポジトリを開けば別の一式となり、混在しません。主要な処理フローは設定なしで利用できます。オプションの拡張機能(ベクトル検索、LLM 抽出など。モデルの Key を自分で設定する必要があります)については、~/.rsi/config.yaml の例を参照してください。
プロジェクトの rsi-boot.yaml に平文の秘密鍵を記述することは禁止されています。検出された場合は起動を拒否します。ログは保存前に機密情報を除去します。ホストのコンテキストに注入する前に、承認ゲートとブラックリストを適用します。90 日を超えるログは自動的に .rsi/archive/YYYYMM.jsonl にアーカイブされます。
開発
pip install -e ".[dev]"
python -m pytest
python scripts/export_schemas.py
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。