384t.net

← second-brain

second-brain マニュアル

要約とコスト

ツールが要約を書く仕組み、summarizer の選び方、コストの管理を説明します。

要約の仕組み

各エントリーは、要約を持てます。要約は overview、decisions、action_items のセクションで構成します。ミーティングには details もあります。

  • Slack とドキュメント。 選んだ summarizer が要約を書きます。
  • Google Meet。 既定では、Gemini が書いたメモをそのまま使います。Meet のエントリーに summarizer は使いません。
  • summarizer がないとき。 選んでいなければ、エントリーは要約を待つ状態 (pending) になります。すぐに検索はできます。

どのモデルが各要約を書いたかを記録します。sb show と sb stats で確認できます。要約は、エントリーのテキストが変わったときだけ、書き直します。

summarizer を選ぶ

sb setup llm

summarizer を選びます。短い呼び出しで、テストもします。質問を省くには、--preset を使います。sb setup の Summarizer セクションからも設定できます。

プリセット summarizer 必要なもの
anthropic Anthropic API (Claude Haiku 4.5) API キー
openai OpenAI API API キー
claude_cli Claude Code (claude -p) claude コマンドとログイン
copilot_cli GitHub Copilot CLI (copilot -p) copilot コマンドとログイン
codex_cli OpenAI Codex CLI (codex exec) codex コマンドとログイン
antigravity_cli Google Antigravity CLI (agy) agy コマンドとログイン
local OpenAI 互換のローカルサーバー (例: Ollama) 起動中のサーバーとモデル
sb setup llm --preset anthropic
sb setup llm --preset claude_cli
sb setup llm --preset local --base-url http://127.0.0.1:11434/v1 --model <model>
オプション 内容
--preset <name> このプリセットを使います。
--name <name> プロファイルの名前。既定は、プリセットの名前です。
--model <model> 使うモデル
--base-url <url> ローカルサーバーのアドレス
--no-default このプロファイルを既定にしません。
--no-test テストの呼び出しを行いません。

API キー

セットアップのコマンドが API キーを尋ねて、保存します。あとで保存や置き換えをするには、次を実行します。

sb config set-secret anthropic.api_key

非表示の入力欄でキーを入力します。キーの名前は、anthropic.api_key、openai.api_key、google.api_key です。

キーが保存されていないときは、環境変数 (ANTHROPIC_API_KEY、OPENAI_API_KEY、GEMINI_API_KEY) から読みます。

ローカルモデル

警告: 小さなローカルモデルは推奨しません。パラメーター数が 50 億から 100 億程度のモデルが書く要約は、品質が低いです。検索とエージェントは要約を信頼するので、間違った要約は、要約がないことより悪い結果になります。品質が Claude Haiku と同程度以上のときだけ、ローカルモデルを使ってください。

ソースごとに違うプロファイルを使う

ソースの種類ごとに、別のプロファイルを使えます。

sb config set summary.profile.default fast
sb config set summary.profile.slack.thread best

個別の設定がないソースには、summary.profile.default を使います。予約された名前 native は、「ソースのメモをそのまま使い、要約しない」という意味です。google.meet の既定です。

コストを管理する

ツールは、有料の要約に使う金額を制限します。既定の上限は次のとおりです。

上限 既定値
週 (月曜日に始まる) $2
月 (1 日に始まる) $10

週と月は、自分のタイムゾーンの 00:00 に始まります。設定 summary.budget.timezone でタイムゾーンを変えられます。

上限に達したとき:

  • sb sync と sb summarize は、エラーなしで止まります。終了コードは 0 です。
  • 残りのエントリーは pending のままです。検索はできます。
  • 次の週または月に、ツールは自動で続きを行います。
  • sb doctor が llm.budget_exhausted の警告を表示します。

注意: 金額は見積もりです。トークン数と公式の価格から計算しており、請求額ではありません。プロバイダーのコンソールでも、利用額の上限を設定してください。

上限を表示、変更する

sb budget
sb budget --by-model
sb config set summary.budget.weekly_usd 5
sb config set summary.budget.monthly_usd 20

上限をなくすには、0 に設定します。

sb budget は、今週と今月の利用額、履歴、合計、呼び出しの回数を表示します。--weeks <n> と --months <n> で履歴の長さを、--by-model でモデルごとの利用額を表示できます。

ローカルモデルは無料なので、上限は適用されません。CLI の summarizer のうち、Claude Code はコストを報告します。codex_cli と antigravity_cli はコストを報告しないので、上限は適用されません。

有料の API モデルの価格が不明なときは、上限が有効な間は、そのモデルを使いません。llm.unpriced の問題を表示します。設定 llm.prices で価格を設定するか、上限をなくしてください。

先に見積もる

sb sync --estimate
sb summarize --estimate

保留中の要約のトークン数とコストの見積もりを表示します。残りの予算に収まるかも表示します。

コストを減らす

短いスレッドは、要約してもあまり得るものがありません。テキストが短く、検索インデックスにも入っているためです。短い項目の要約を省くには、最小の長さを上げます。

sb config set summary.min_chars 2000

メッセージ数が summary.min_messages (既定は 3) より少ない項目も、要約を省きます。

保留中のエントリーを要約する

sb summarize

状態が pending または failed のすべてのエントリーの要約を書きます。

オプション 内容
--max-summaries <n> 要約を最大でこの数だけ書きます。
--max-cost <usd> 見積もりのコストがこの額に達したら止まります。
--time-limit <time> この時間が過ぎたら止まります。
--retry-failed 3 回失敗したエントリーも再試行します。
--profile <name> この実行では、このプロファイルを使います。
--estimate 見積もりを表示します。要約は書きません。

要約に失敗したときは、次の実行で再試行します。3 回失敗 (summary.max_attempts) すると、--retry-failed を使うまで再試行しません。

別のモデルで要約を書き直す

一部のエントリーの要約を、より良いモデルで置き換えられます。生データを使います。

sb resummarize --source slack.thread --where-model claude-haiku-4-5 --profile best --estimate
sb resummarize --source slack.thread --where-model claude-haiku-4-5 --profile best

必ず先に --estimate を付けて実行してください。

オプション 内容
--profile <name> 新しい要約を書くプロファイル
--native Google Meet のエントリーの、Gemini のメモを復元します。
--where-model <model> このモデルが要約したエントリーだけを選びます。
--where-provider <name> このプロバイダーが要約したエントリーだけを選びます。
--account、--source、--since、--until、--entry エントリーを選びます。
--estimate 見積もりを表示して止まります。
--dry-run 実行する内容を表示します。
--limit <n> 最大でこの数のエントリーを処理します。
--max-cost <usd>、--time-limit <time> 実行の上限
--force すでに対象のプロファイルで書かれたエントリーも処理します。
--yes 確認を求めません。

20 件より多くのエントリーを変更するときは、確認を求めます。生データのないエントリーは飛ばします。生データを取得するには、先に sb refetch を実行してください。

コマンドは止めて、もう一度実行できます。完了したエントリーは飛ばします。

注意: プロファイルのモデルを変更しても、ツールは変更を検知しません。--force を付けるか、新しい名前のプロファイルを作ってください。

インポートした要約

インポートバンドルの要約は、元のモデル名を保持します。バンドルにモデル名がないときは、sb stats はモデルを unknown と表示します。