context-retrieval

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Context Retrieval

上下文检索

Retrieve relevant episodic context from memory for informed decision-making.
从记忆中检索相关情景上下文,以便做出明智的决策。

Retrieval Methods

检索方法

Semantic Search (Preferred)

语义搜索(首选)

When embeddings available:
rust
let context = memory
    .retrieve_relevant_context(
        "implement async batch updates",
        task_context,
        limit: 5
    )
    .await?;
Advantages: Finds semantically similar tasks, captures intent
当存在嵌入向量时:
rust
let context = memory
    .retrieve_relevant_context(
        "implement async batch updates",
        task_context,
        limit: 5
    )
    .await?;
优势:找到语义相似的任务,捕捉意图

Keyword Search (Fallback)

关键词搜索(备选)

rust
// SQL index-based search
SELECT * FROM episodes
WHERE task_type = ? AND tags LIKE ?
ORDER BY timestamp DESC
LIMIT ?;
Advantages: Fast, no embedding computation, deterministic
rust
// SQL index-based search
SELECT * FROM episodes
WHERE task_type = ? AND tags LIKE ?
ORDER BY timestamp DESC
LIMIT ?;
优势:速度快,无需嵌入计算,结果确定

Retrieval Strategy

检索策略

  1. Parse query (key terms, domain, task type)
  2. Check embedding availability
  3. Query cache (redb) first, fall back to Turso
  4. Rank by relevance or recency
  5. Filter and limit results
  6. Format context structure
  1. 解析查询(关键词、领域、任务类型)
  2. 检查嵌入向量是否可用
  3. 先查询缓存(redb),再回退到Turso
  4. 按相关性或时效性排序
  5. 过滤并限制结果数量
  6. 格式化上下文结构

Context Filtering

上下文过滤

rust
// 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)
rust
// 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)

Response Format

响应格式

rust
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,
}
rust
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,
}

Usage Examples

使用示例

rust
// 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?;
rust
// 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?;

Troubleshooting

故障排除

IssueSolution
Low recallCheck embeddings, expand tags, increase limit
Slow retrievalCheck cache, verify indexes, reduce result set
Poor relevanceUse semantic search, improve query, filter by domain
问题解决方案
召回率低检查嵌入向量,扩展标签,增加结果限制数量
检索速度慢检查缓存,验证索引,减少结果集大小
相关性差使用语义搜索,优化查询,按领域过滤