context-retrieval について
エージェントの判断に過去のタスク経験を活用するため、メモリから関連するエピソード情報を取得するスキルです。セマンティック検索とキーワード検索への切り替えに対応し、領域、タスク種別、期間で絞り込めます。
主な機能
- 01セマンティック検索を優先
- 02埋め込みがない場合はキーワード検索
- 03redb キャッシュの後に Turso を検索
- 04関連度または新しさで順位付け
- 05領域、タスク種別、日付で絞り込み
活用シーン
- 01類似する実装タスクの検索
- 02よく使うツール手順の再確認
- 03領域ごとの最近の経験の取得
- 04判断前に関連する過去の文脈を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ d-o-hub/ rust-self-learning-memory --skill context-retrievalインストール後、Claude Code で/context-retrievalを入力して読み込まれたか確認します。
詳細
コンテキストの取得
十分な情報に基づいた意思決定のため、メモリから関連するエピソードコンテキストを取得します。
取得方法
セマンティック検索(推奨)
埋め込みが利用可能な場合:
let context = memory
.retrieve_relevant_context(
"implement async batch updates",
task_context,
limit: 5
)
.await?;
利点:意味的に類似したタスクを見つけ、意図を捉えます
キーワード検索(代替手段)
// SQL index-based search
SELECT * FROM episodes
WHERE task_type = ? AND tags LIKE ?
ORDER BY timestamp DESC
LIMIT ?;
利点:高速で、埋め込みの計算が不要で、決定論的です
取得戦略
- クエリを解析します(重要な語句、分野、タスクの種類)
- 埋め込みが利用可能か確認します
- まずキャッシュ(redb)を検索し、見つからない場合はTursoを検索します
- 関連性または新しさに基づいて順位付けします
- 結果を絞り込み、件数を制限します
- コンテキストの構造を整えます
コンテキストのフィルタリング
// By domain
TaskContext { domain: "storage".to_string(), .. }
// By task type
task_type_filter: Some("implementation")
// By recency (last 30 days)
since: Some(now - Duration::days(30))
// By success only
verdict: Some(Verdict::Success)
応答形式
pub struct RetrievedContext {
pub episodes: Vec<EpisodeSummary>,
pub patterns: Vec<Pattern>,
pub heuristics: Vec<Heuristic>,
pub relevance_scores: Vec<f32>,
}
pub struct EpisodeSummary {
pub id: String,
pub task_description: String,
pub verdict: Verdict,
pub key_steps: Vec<String>,
pub reflection: String,
pub relevance: f32,
}
使用例
// Find similar implementation tasks
let retrieved = memory
.retrieve_relevant_context(query, context, 10)
.await?;
// Find common tool sequences
let patterns = memory
.get_patterns_by_type("ToolSequence")
.filter(|p| p.success_rate > 0.8)
.await?;
// Find error resolutions
let solutions = memory
.retrieve_error_resolutions("borrow checker error", 5)
.await?;
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| 再現率が低い | 埋め込みを確認し、タグを増やし、上限を引き上げます |
| 取得が遅い | キャッシュを確認し、インデックスを検証し、結果セットを減らします |
| 関連性が低い | セマンティック検索を使い、クエリを改善し、分野で絞り込みます |
コメント
Markdown 対応