mcpField
C
context-retrieval

context-retrieval

github.com/d-o-hubAgent 工作流1344 次安装今天更新
代码仓库

关于 context-retrieval

用于从记忆中检索相关经历上下文的技能,帮助 Agent 在决策时参考以往任务。支持语义搜索和关键词回退,并可按领域、任务类型和时间筛选。

主要功能

  1. 01优先使用语义检索
  2. 02无嵌入时回退关键词搜索
  3. 03先查 redb 缓存再查 Turso
  4. 04按相关性或时间排序
  5. 05按领域、任务类型和日期筛选

适用场景

  1. 01查找相似的实现任务
  2. 02回忆常见工具调用序列
  3. 03按领域检索近期经验
  4. 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 ?;

优点:速度快,无需计算嵌入,结果确定

检索策略

  1. 解析查询(关键词、领域、任务类型)
  2. 检查嵌入是否可用
  3. 首先查询缓存(redb),失败时再查询 Turso
  4. 按相关性或最近时间排序
  5. 筛选并限制结果数量
  6. 设置上下文结构的格式

上下文筛选

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