context-retrieval
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseContext 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
检索策略
- Parse query (key terms, domain, task type)
- Check embedding availability
- Query cache (redb) first, fall back to Turso
- Rank by relevance or recency
- Filter and limit results
- Format context structure
- 解析查询(关键词、领域、任务类型)
- 检查嵌入向量是否可用
- 先查询缓存(redb),再回退到Turso
- 按相关性或时效性排序
- 过滤并限制结果数量
- 格式化上下文结构
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
故障排除
| Issue | Solution |
|---|---|
| Low recall | Check embeddings, expand tags, increase limit |
| Slow retrieval | Check cache, verify indexes, reduce result set |
| Poor relevance | Use semantic search, improve query, filter by domain |
| 问题 | 解决方案 |
|---|---|
| 召回率低 | 检查嵌入向量,扩展标签,增加结果限制数量 |
| 检索速度慢 | 检查缓存,验证索引,减少结果集大小 |
| 相关性差 | 使用语义搜索,优化查询,按领域过滤 |