tempera について
TemperaはClaude Code向けの永続的なエピソード記憶MCPサーバーです。コーディングセッションを記録して関連経験を検索し、フィードバックや検証結果に基づいて記憶の優先度を調整します。
主な機能
- 01コーディング記録の保存と検索
- 02フィードバックと検証に基づく記憶の重み付け
- 03ファイルやタスクのブリーフ生成
- 04振り返りとパターン検出のサイクル
- 05範囲を限定したプロジェクト間の知識共有
活用シーン
- 01タスク開始時の過去の修正の参照
- 02プロジェクト内の修正傾向の確認
- 03成功したタスク手順の再利用
- 04プロジェクト間での言語レベルの知識活用
MCP 対応
Claude Codeに、セッション準備、記憶の検索と保存、フィードバック、診断、メンテナンス用の12個のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Tempera - Claude Code 向け永続メモリ
Tempera は、経験から学習する永続メモリを Claude Code に提供します。セッションごとに最初から始めるのではなく、Claude は過去の解決策を思い出し、何がうまくいくかを学び、時間とともに賢くなります。
Tempera を使う理由
問題:Claude Code はセッション間であらゆることを忘れてしまいます。同じ問題を何度も解決することになり、Claude は過去の成功や失敗から学べません。
解決策:Tempera はコーディングセッションを「エピソード」として記録し、セマンティック検索用にインデックス化します。また、強化学習を使って、関連する場面で最も価値のある記憶を提示します。
Without Tempera: With Tempera:
┌─────────────┐ ┌─────────────┐
│ Session 1 │ ──forgotten──> │ Session 1 │ ──captured──┐
└─────────────┘ └─────────────┘ │
┌─────────────┐ ┌─────────────┐ ▼
│ Session 2 │ ──forgotten──> │ Session 2 │ ◄──recalls──┤
└─────────────┘ └─────────────┘ │
┌─────────────┐ ┌─────────────┐ │
│ Session 3 │ ──forgotten──> │ Session 3 │ ◄──recalls──┘
└─────────────┘ └─────────────┘
│ │
▼ ▼
No learning Continuous improvement
仕組み
学習ループ
┌────────────────────────────────────────────────────────────────┐
│ 1. START TASK │
│ User: "Fix the login redirect bug" │
└────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ 2. RETRIEVE MEMORIES │
│ Claude searches: "login redirect bug" │
│ Finds: "Fixed similar issue by sanitizing return URLs" │
│ + Session context: related episodes from the same task │
└────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ 3. SOLVE FASTER │
│ Claude uses past experience to solve the problem │
└────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ 4. CAPTURE SESSION │
│ Claude saves: what was done, what worked, what failed │
│ Auto-links to current session for multi-step tasks │
└────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ 5. LEARN FROM FEEDBACK │
│ User: "That memory was helpful!" │
│ → Episode utility increases │
│ → Multi-hop Bellman propagation spreads value │
│ → Session-linked episodes get boosted │
│ → Unhelpful memories fade over time │
└────────────────────────────────────────────────────────────────┘
「学習」を実現する仕組み
| 仕組み | 内容 |
|---|---|
| フィードバック | 役立つエピソードの有用性スコアが上がります |
| マルチホップ・ベルマン伝播 | 類似性グラフを通じて、複数ホップにわたり価値が伝播します |
| セッション連鎖 | 複数ステップのタスクで関連するエピソードがリンクされ、互いの価値を高めます |
| 時間的クレジット割り当て | 成功前のエピソードにもクレジットが付与されます(セッション境界をまたぐ場合も含みます) |
| 新しさによるブースト | 検索時に新しいエピソードの重みを高められます(オプトイン) |
| スコープを考慮した減衰 | プロジェクトに限定された主張は約70日で薄れ、言語レベルの事実は約3年間保持され、普遍的な真実は減衰しません |
| 検証状態 | 記録の状態は Untested → TestsPass → Merged → StableNoRevert と進み、後の状態ほど重みが増します |
| 較正 | (タスク、プロジェクト)ごとの検証済みと申告済みの比率から、過信の傾向が明らかになります |
| ドリームサイクル | 毎晩の振り返り、パターン検出、矛盾の調査、テンプレートの抽出を行います |
| 自己改善ログ | 修正や見落とした質問を記録し、次のセッションに向けた確認質問をキューに入れます |
| プロジェクト横断の転用 | 言語/クレート/ドメイン/永続のスコープが付いた主張を、プロジェクトをまたいで提示します |
時間が経つにつれ、頻繁に役立つ知識は上位に浮かび上がり、古くなった記憶や役に立たない記憶は薄れていきます。また、システム自体が、プロジェクトごとに間違いやすい傾向を蓄積します。
より高度な機能(v0.6 以降)
基本的なキャプチャ/取得のループに加え、Tempera にはいくつかの高度な機能が用意されています。いずれもオプトインですが、すべて同じ MCP ツールを通じて動作するため、Claude はカスタムクライアントコードなしで利用できます。
- 根拠に基づくキャプチャ(v0.6):キャプチャしたすべての主張には、
falsifiabilityスコア、category、およびValidityScope(Forever / Language / Crate / Domain / Workaround / Project)が付与されます。減衰率はスコープごとに異なります。普遍的な真実は期限切れにならず、プロジェクト固有の慣習は数か月で薄れ、回避策は根本の問題が解決すると期限切れになります。 - ドリームサイクル(v0.7):予算に基づいて夜間に実行されるパイプラインで、
verify_advance → decay → reflect → patterns → contradict → templatesを実行します。振り返りでは、シグナルの強い日々の記録を文章にまとめます。パターンでは、繰り返し現れるテーマを見つけます。矛盾チェックでは、頻繁に取得されるエピソードのペアを調べ、事実の食い違いを探します。テンプレートでは、成功したタスク群から再利用可能な手順を抽出します。 - 自己改善(v0.8):キャリブレーションでは、(タスク、プロジェクト)ごとに、申告された成功と検証済みの成功の比率を追跡します。ミスログには、エージェントが行った修正を記録します。「先に尋ねるべきだったこと」ログには、先に尋ねるべきだったと気づいた質問を記録します。確認質問は、意図が曖昧なままキャプチャが失敗に終わった場合に、Haiku を使ってシステム自体が作成する明確化のための質問です。そのプロジェクトの次回セッション用にキューに追加されます。
- ブリーフ機能(v0.9):エージェントがこれから触れるファイル群を対象に、上記すべてを 1 回の MCP 呼び出しでまとめます。
tempera_brief(files, task_type?, domain?)は、保留中の確認質問、一致する推論テンプレート、そのファイルに関する主な修正カテゴリ、「先に尋ねるべきだったこと」のトリガー、およびエージェントのこの種のタスクにおける実績が不安定な場合のキャリブレーション警告を返します。 - プロジェクト横断学習(v0.10):
tempera_retrieveとtempera_briefはどちらもcross_project=trueを受け付けます。転用可能な主張(プロジェクトにスコープが限定されないもの)はプロジェクトをまたいで表示され、プロジェクトスコープの知識はそのコードベースに限定されます。以前の形式でキャプチャされた情報は、再分類されるまでデフォルトで転用不可です。
インストール
ソースからビルド
# Clone and build
git clone https://github.com/anvanster/tempera.git
cd tempera
cargo build --release
# Two binaries are created:
# - target/release/tempera (CLI tool)
# - target/release/tempera-mcp (MCP server for Claude Code)
crates.io からインストール
cargo install tempera
初回起動 - モデルのダウンロード
初回の使用時に、Tempera はセマンティック検索用の BGE-Small 埋め込みモデル(約 128MB)をダウンロードします。この処理は自動的に行われ、ダウンロードは一度だけです。
# Initialize and trigger model download
tempera init
# Output:
# 🔄 Loading embedding model (this may download the model on first run)...
# ✅ Embedding model loaded
モデルは ~/.tempera/models/ にグローバルにキャッシュされ、すべてのプロジェクトで共有されます。
Claude Code でのセットアップ
1. MCP サーバーを追加
claude mcp add tempera --scope user -- /path/to/Tempera/target/release/tempera-mcp
--scope user フラグを指定すると、すべてのプロジェクトで利用できるようになります。
2. Claude Code を再起動
新しい MCP サーバーを読み込むため、Claude Code を終了して再起動します。
3. 確認
Claude Code で /mcp を実行します。12 個のツールを持つ tempera が表示されるはずです。
MCP ツール
接続すると、Claude は目的別に分類された次の 12 個のツールを利用できます。
セッションのウォームアップ(タスク開始時に呼び出す)
| ツール | 使用するタイミング |
|---|---|
tempera_session_start | 開始直後に 1 回だけ呼び出します。このプロジェクトで前回のセッションが失敗または未完了だった後に、tempera が作成した確認質問があれば返します。 |
tempera_brief | 対象ファイル群が判明した時点で呼び出します。保留中の確認質問、推論テンプレート、対象ファイルに関する主な修正カテゴリ、「先に尋ねるべきだったこと」のトリガー、キャリブレーション警告を 1 つの応答にまとめます。より詳細な出力を得るには、task_type と domain を渡します。cross_project=true を設定すると、他のプロジェクトの情報も補足されます。 |
tempera_retrieve | 過去の類似エピソードを検索します。他のプロジェクトから転用可能な主張も含めるには、scope="cross-project" を設定します。 |
tempera_template | (task_type, domain) の組に保存された推論テンプレートを取得します。過去に成功した手順の流れが含まれます。 |
タスク中
| ツール | 使用するタイミング |
|---|---|
tempera_log_correction | ユーザーが前提・決定・コードを訂正したときに使用します。分類されたログで、brief の表層機能が使用します。 |
tempera_log_should_have_asked | タスクの途中で、事前に質問すべきだったと気づいたときに使用します。きっかけとなった状況、質問、最終的な回答を記録します。 |
タスク終了時
| ツール | 使用するタイミング |
|---|---|
tempera_capture | セッションをエピソードとして保存します。セッションのリンクを自動検出し、伝播を実行します。意図抽出の LLM 呼び出しでは、プロジェクト間ルーティング用の ValidityScope も提案します。 |
tempera_feedback | 検索されたエピソードが役に立ったかどうかを評価します。効用学習ループに反映されます。 |
診断とメンテナンス
| ツール | 使用するタイミング |
|---|---|
tempera_status | プロジェクトごとのメモリ健全性スナップショットを表示します。 |
tempera_stats | 統計と傾向分析(有用性の経時変化、ドメインの拡大、学習曲線)を表示します。 |
tempera_propagate | 収束を追跡しながら、複数ホップのベルマン伝播を実行します。定期メンテナンスに使用します。 |
tempera_review | 類似した BKM を統合し、クリーンアップします。関連する一連のタスクの後に実行します。 |
標準的なウォームアップパターン
tempera_session_start # is anything queued from last session?
tempera_brief(files, ...) # what does tempera know about this exact change?
tempera_retrieve(query) # then deep-dive into specific episodes
主なライフサイクルの動作
セッション開始時:まず tempera_session_start を呼び出して、保留中の確認質問を処理してから、ファイルセットが判明した時点で一度 tempera_brief を呼び出します。
タスク終了時:成功したセッションは tempera_capture で保存します。依頼されるまで待たないでください。結果が Failure/Partial で意図が曖昧な場合、Capture は Haiku を使って確認質問の草案も作成するため、このプロジェクトの次のセッションで不足情報を確認できます。
セッションの連鎖:同じプロジェクト内で 2 時間以内に保存されたエピソードは、自動的にリンクされます。複数ステップのタスクでは、効用とコンテキストが共有されます。
プロジェクト間ルーティング:新しい Capture では、意図抽出 LLM(v0.10.3)が ValidityScope を提案します。プロジェクトスコープの主張は 1 つのコードベースに限定されますが、取得時にオプトインすると、Language / Crate / Domain / Workaround / Forever の主張はプロジェクト間で表示されます。
tempera_retrieve モード
Search: tempera_retrieve(query: "authentication bug")
List all: tempera_retrieve(all: true)
Show details: tempera_retrieve(query: "abc12345") # episode ID
Cross-project: tempera_retrieve(query: "sqlx ordering", scope: "cross-project")
会話例
User: Fix the login redirect vulnerability
Claude: [Calls tempera_session_start()]
No pending ask-back — proceeding.
[Calls tempera_brief(files: ["src/auth.rs", "src/router.rs"],
task_type: "bugfix", domain: "auth-middleware")]
🔴 PENDING ASK-BACK
Ask the user first: "Should auth run before or after request logging?"
📋 REASONING TEMPLATE (bugfix / auth-middleware)
url-redirect validation
1. Find every redirect target read from request input
2. Validate against allow-list or treat as untrusted
3. Add regression test with adversarial input
⚠️ TOP CORRECTION CATEGORIES for these files
- validation_skipped (3×)
- host_header_trust (2×)
Tempera says I've been wrong here before in specific ways.
Let me ask: should auth run before or after logging?
User: Before — we need an auth'd subject for log lines.
Claude: [Implements with URL allow-list, following the template steps]
Done. [Calls tempera_capture(
summary: "Fixed login redirect by validating return URL against allow-list",
outcome: "success",
validity_scope: "domain:auth-middleware"
)]
✅ Episode saved. (Cross-project — this is an auth-middleware pattern.)
User: That memory was helpful!
Claude: [Calls tempera_feedback(helpful: true, episodes: ["..."])]
Marked helpful — future retrievals for similar tasks will rank this higher.
CLI コマンド
CLI は MCP ツールのインターフェースを反映しているため、Claude が行うすべての操作をシェルから実行できます。
基本
# Initialize Tempera
tempera init
# Capture an episode (from a session transcript or interactively)
tempera capture --session /path/to/transcript.md
# Index episodes for semantic search (or re-index)
tempera index [--reindex]
# Search memories — project-scoped by default
tempera retrieve "database connection issues"
tempera retrieve "sqlx pattern" --cross-project # v0.10.1 — pull from other projects
# Provide feedback
tempera feedback helpful --episodes abc123,def456
brief の表層機能(v0.9)
# Joint summary of every self-improvement signal for these files
tempera brief --files src/auth.rs,src/router.rs \
--task-type bugfix --domain auth-middleware
# Include rows from other projects (foreign rows are tagged [from <project>])
tempera brief --files src/store.rs --cross-project
セッションのウォームアップ(v0.8.5)
# Show + clear the pending ask-back for this project (if any)
tempera session-start
# History of system-drafted clarifying questions
tempera ask-backs [--pending] [--project P]
自己改善機能(v0.8)
# Log a correction the user made
tempera log-correction --category "lifetime annotations" \
--description "I assumed &str when &'a str was needed" \
--correction "use named lifetime to match trait"
# View the correction log
tempera mistakes [--top 5] # top categories
tempera mistakes --project tempera # raw list filtered
# Log a question you should have asked up front
tempera log-should-have-asked --trigger "edit auth middleware" \
--question "Which auth provider is wired up?" \
--answer "No auth — internal-only service."
# View the should-have-asked log
tempera asks --top 5
推論テンプレート(v0.8.3)
# List stored templates
tempera templates list
# Fetch a specific template
tempera templates get --task-type bugfix --domain async-rust
# Manually trigger extraction (otherwise runs in dream cycle)
tempera templates extract --max-usd 0.20
キャリブレーション(v0.8.1)
# Per-(task_type, project) verified vs declared rates
tempera calibration --project tempera --task-type bugfix
ドリームサイクル(v0.7)
# Run the full cycle with a budget cap (default $0.50)
tempera dream --max-usd 0.50
# Run one phase, or list available phases
tempera dream --phase reflect
tempera dream --list
# Plan only — show what would happen without making LLM calls
tempera dream --dry-run
# Author yesterday's reflection (Haiku triage + Sonnet authorship if score >= 0.5)
tempera reflect [--date 2026-05-26] [--dry-run]
# Surface active factual contradictions found during dream
tempera contradict --list
検証(v0.6.1)
# Move an episode forward in the verification chain
tempera advance-verification --episode abc123 --to tests_pass --run-id <id>
tempera advance-verification --episode abc123 --to merged --commit <sha>
tempera advance-verification --episode abc123 --to stable_no_revert --days 30
メンテナンスと分析
# Multi-hop Bellman propagation (run weekly)
tempera propagate --temporal
# Prune old / low-value episodes
tempera prune --older-than 90 --min-utility 0.2 --execute
# Stats + trends
tempera stats
tempera trends --project tempera --bucket weekly
# Health check + remediation
tempera doctor [--remediate --yes --target-score 90]
# Eval harness (P@5, R@5, MRR, nDCG@5 against a fixture)
tempera eval run --fixture evals/fixtures/real.jsonl --mode hybrid
# Snapshot / restore the data dir
tempera backup
tempera backup --list
tempera backup --restore 20260524T123456Z
データストレージ
Tempera はすべてのデータをローカルの ~/.tempera/ に保存します(すべてのプロジェクトで共有)。1 つのメモリプールをすべてのプロジェクトで使用し、プロジェクトフィルターはクエリ時に適用されます。
~/.tempera/
├── config.toml # Configuration (all RL params configurable)
├── episodes/ # Canonical episode JSON
│ └── 2026-01-25/
│ └── <id>.json
├── jobs.sqlite # SQLite for everything indexable (see below)
├── vectors/ # Vector index (vectrust embeddings)
├── models/ # BGE-Small embedding model (~128MB)
├── reflections/ # Daily reflection markdown (v0.7.3)
├── patterns/ # Cross-day pattern pages (v0.7.4)
└── templates/ # Reasoning templates (v0.8.3)
SQLite テーブル(jobs.sqlite 内)
SQL が必要なデータはすべてここに保存されます。各ストアは初回使用時にデータベースを開いてマイグレーションを実行します。マイグレーションは migrations/ にあり、順番に実行されます。
| マイグレーション | テーブル | 目的 |
|---|---|---|
| 0001 | jobs | リースセマンティクスを備えたバックグラウンドジョブキュー |
| 0002 | error_fingerprints | 正規化されたエラーテキストの blake3 ハッシュ |
| 0003 | dream_verdicts | 日単位の Haiku トリアージキャッシュ |
| 0004 | reflections | 日次リフレクション記録 |
| 0005 | patterns | 日をまたぐテーマクラスター |
| 0006 | contradictions | エピソード間の不一致と Wilson 信頼区間 |
| 0007 | calibration_buckets | 宣言数と検証済み件数(task_type、project) |
| 0008 | mistakes | 根拠に紐づいた訂正ログ |
| 0009 | reasoning_templates | 抽出された推論ステップのシーケンス |
| 0010 | should_have_asked | エージェントが事前に尋ねるべきだった質問 |
| 0011 | ask_backs | 次のセッション用にシステムが作成した確認質問 |
すべてのプロジェクトが同じプールを共有します。プロジェクト間のルーティングは、個別のストレージではなく、各エピソードの ValidityScope によって制御されます(下記参照)。
設定
すべての設定項目は ~/.tempera/config.toml にあります。デフォルト設定は、すぐに役立つよう調整されています。検索ランキング、ドリームサイクルの動作、またはフェーズごとの予算を変更したい場合にのみ、設定を変更してください。
検索 + ランキング
[retrieval]
mode = "hybrid" # vector | keyword | hybrid (BM25 + vector fusion)
similarity_weight = 0.3 # Weight for semantic similarity (project mode)
utility_weight = 0.7 # Weight for learned utility (project mode)
hybrid_similarity_weight = 0.85 # RRF-normalized retrieval (hybrid mode)
hybrid_utility_weight = 0.15
recency_weight = 0.0 # Recency (0 = off, opt-in)
recency_halflife_days = 30.0
mmr_lambda = 0.7 # MMR diversity (0=diverse, 1=relevant)
min_similarity = 0.5 # Filter threshold
[bellman]
gamma = 0.9 # Discount factor for Bellman updates
alpha = 0.1 # Learning rate
propagation_threshold = 0.5 # Min similarity for propagation
max_propagation_depth = 2 # Multi-hop depth (hops)
temporal_credit_window_hours = 1
キャプチャ + 検証
[capture]
auto_capture = true
extract_intent_llm = true # Use LLM to extract intent + claim + scope
capture_diffs = true
ask_back_on_failure = true # Draft a clarifying question on Failure/Partial captures (v0.8.5)
ドリームサイクル(v0.7)
[dream]
default_max_usd = 0.50 # Per-cycle budget cap
stable_threshold_days = 30 # Days before Merged → StableNoRevert
triage_model = "claude-haiku-4-5-20251001"
reflect_model = "claude-sonnet-4-6"
# Patterns phase
patterns_lookback_days = 30
patterns_min_evidence = 3
patterns_cluster_threshold = 0.75
# Contradict phase
contradict_top_n = 50
contradict_min_similarity = 0.6
contradict_max_similarity = 0.95
contradict_max_pairs = 30
contradict_min_confidence = 0.7
# Templates phase (v0.8.3)
templates_min_evidence = 3
templates_min_verification_weight = 0.30 # 0.30 = Untested (lenient); 0.60 = Merged
ストレージ + メンテナンス
[storage]
max_age_days = 180 # Max episode age for pruning
min_utility_threshold = 0.05 # Min utility to keep
min_retrievals = 2 # Min retrievals before pruning allowed
consolidation_threshold = 0.85 # BKM merge threshold
cluster_threshold = 0.85
stale_age_days = 30
stale_utility_threshold = 0.2
減衰率は、各エピソードの主張に設定された ValidityScope に応じて変わります。
| スコープ | 減衰率/日 | 半減期 |
|---|---|---|
Forever | 0.000 | ∞ |
Language { name } | 0.001 | 約3年 |
Domain { tag } | 0.005 | 約140日 |
Project { name } | 0.010 | 約70日 |
Crate { name, version } | 0.020 | 約35日 |
Workaround { ref, expires } | 0.050 | 約14日 |
| (スコープ未設定、レガシー) | 0.010 | 約70日 |
内部の仕組み
マルチホップ・ベルマン伝播
役立つエピソードの価値は、類似性グラフを複数ホップにわたって伝播します。
Hop 0: Source episodes (high helpfulness, ≥2 retrievals)
│
▼ γ¹ discount
Hop 1: Similar episodes updated
│
▼ γ² discount
Hop 2: Episodes similar to hop-1 updated
│
▼ Converges when no updates occur
セッションの連結
同じプロジェクト内で2時間以内にキャプチャされたエピソードは、自動的にリンクされます。
Session abc123:
├── Episode 1: "Investigated auth bug" (debug)
├── Episode 2: "Found root cause in token validation" (research)
└── Episode 3: "Fixed token expiry check" (bugfix, success)
↓
Temporal credit flows back to episodes 1 & 2
Session-linked propagation boosts all 3
ドリームサイクル(v0.7)
毎晩、またはオンデマンドで実行される、予算制限付きのバックグラウンドパイプラインです。各フェーズは CostBudget を共有します。無料のフェーズはこれを無視し、有料のフェーズはLLMを呼び出す前に try_spend() を確認します。
verify_advance → decay → reflect → patterns → contradict → templates
(free) (free) (Sonnet) (Sonnet) (Haiku) (Sonnet)
↓ ↓ ↓ ↓
reflections/ patterns/ contradictions templates/
- verify_advance:
stable_threshold_days経過後、エピソードをMergedからStableNoRevertに進めます。 - decay:スコープに応じた有用性の減衰(上の表を参照)。
- reflect:Haikuによるトリアージを経てSonnetが文章を作成します。シグナルの強い日には振り返りページが作成されます。
- patterns:振り返りの埋め込みに対する凝集型クラスタリングにより、日をまたぐテーマを抽出します。
- contradict:頻繁に検索されるBKMエピソードを組み合わせ、Haikuに事実に関する主張の不一致を判定させます。矛盾率についてWilsonの95%信頼区間を提示します。
- templates:検証済みの成功エピソードを
(task_type, domain)ごとにまとめ、Sonnetで再利用可能な手順を抽出します。
デフォルト設定でサイクル全体を実行した場合の最悪ケースは、約0.50ドルです。
スコアリング式
検索ランキングでは、正規化された重みを使って3つのシグナルを組み合わせます。
score = (sim_w × similarity + util_w × utility + rec_w × recency) / (sim_w + util_w + rec_w)
ハイブリッドモードのデフォルトでは、類似度が85%(ベクトル検索とBM25をRRFで正規化)、有用性が15%、新しさが0%です。各エピソードの VerificationState は顕著度に乗算されるため、十分に検証された成功事例ほど重く評価されます。
プロジェクトをまたいだルーティング(v0.10)
すべての主張には、次の項目を決定する ValidityScope が設定されています。
- 減衰率(上の表を参照)。
- 転用可能性:
is_transferable()はProject { name }以外に対してtrueを返します。retrieveとbriefの各サーフェスでは、エージェントがcross_project=trueを指定した場合に何を表示するかの判断にこれを使用します。
v0.6.4より前にキャプチャされたレガシーエピソードにはスコープが設定されていないため、デフォルトではプロジェクト内に限定されます。新しくキャプチャされたエピソード(v0.10.3以降)では、意図抽出を行うLLM呼び出しによってスコープが自動的に提案されます。形式は language:rust、crate:[email protected]、domain:async-rust、workaround:repo#123、project のように、コロンでエンコードされます。判断がつかない場合は project がデフォルトで使用され、システムの動作は保守的に保たれます。
メンテナンス
メモリを健全な状態に保つため、定期的に実行してください。
# Nightly: dream cycle (verify_advance + decay + reflect + patterns + contradict + templates)
tempera dream --max-usd 0.50
# Weekly: Propagate utility values (multi-hop with convergence)
tempera propagate --temporal
# Monthly: Clean up old/useless episodes
tempera prune --older-than 90 --min-utility 0.2 --execute
# As needed: Check trends
tempera trends
# As needed: Review and consolidate
# (via MCP) tempera_review(action: "consolidate")
# As needed: health check + auto-remediate
tempera doctor --remediate --yes
長期間にわたるメモリの健全性維持を支えるのは、ドリームサイクルです。安価な判定にはHaikuを、文章の作成にはSonnetを使用します。デフォルトの上限である0.50ドルは、すべてのフェーズを通じた最悪ケースの金額です。
環境変数
| 変数 | 説明 |
|---|---|
ANTHROPIC_API_KEY | LLMベースの意図抽出用(--extract-intent) |
TEMPERA_DATA_DIR | デフォルトのデータディレクトリを上書きします |
FASTEMBED_CACHE_DIR | 埋め込みモデルのキャッシュ場所を上書きします |
トラブルシューティング
MCP サーバーが読み込まれない
- パスを確認します:
ls /path/to/tempera-mcp - 設定を確認します:
cat ~/.claude.json - Claude Codeを完全に再起動します
/mcpを実行して確認します
初回実行時に埋め込みの処理が遅い
BGE-Small モデル(約128MB)は、初回使用時に HuggingFace からダウンロードされます。ダウンロードにはインターネット接続が必要です。ダウンロード後、モデルは ~/.tempera/models/ にキャッシュされ、オフラインで動作します。
ベクトル検索で何も見つからない
tempera index を実行して、ベクトルデータベースを作成または更新してください。
モデルのダウンロードに失敗する
ファイアウォールまたはプロキシの背後にいる場合は、huggingface.co へのアクセスを確認してください。モデルファイルは HTTPS 経由でダウンロードされます。
tempera_brief が「表示できる情報がありません」を返す
使い始めのうちは正常です。brief は、時間の経過とともに蓄積されるシグナルデータ(ミス、質問、テンプレート、キャリブレーション)を結合します。具体的には、次のとおりです。
- mistakes / should-have-asked のセクションは、渡したファイルが以前に記録された行と重複する場合にのみ表示されます。
- template セクションは、成功が確認されたエピソードが3件以上、
(task_type, domain)の組み合わせを共有している場合にのみ表示されます(テンプレートは dream cycle 中に蓄積されます)。 - calibration warning は、該当するバケットに成功と宣言されたキャプチャが5件以上ある場合に表示されます。
エピソード単位で想起するには、tempera_retrieve を使用してください。
tempera retrieve --cross-project で何も見つからない
v0.6.4 より前にキャプチャされたエピソードには ValidityScope が設定されていません。また、v0.10 のクロスプロジェクトフィルターは、スコープ未設定のクレームをプロジェクトに限定されたものとして扱います(保守的なデフォルト)。次のいずれかを行ってください。(a)v0.10.3 以降で新しいエピソードをキャプチャする。スコープが自動的に提案されます。または(b)キャプチャ時に MCP の validity_scope パラメーターを使って、以前のエピソードを手動で分類する。
ライセンス
Apache 2.0
コントリビューション
コントリビューションを歓迎します!issue または PR を作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。