关于 context-retrieval
用于从记忆中检索相关经历上下文的技能,帮助 Agent 在决策时参考以往任务。支持语义搜索和关键词回退,并可按领域、任务类型和时间筛选。
主要功能
- 01优先使用语义检索
- 02无嵌入时回退关键词搜索
- 03先查 redb 缓存再查 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