即时上下文检索
概述
即时上下文检索(Just-in-Time Context Retrieval)是一种 Agent 信息管理策略:Agent 不在运行前预加载所有可能相关的数据,而是持有轻量标识符(文件路径、存储查询、URL 等),在运行时通过工具按需动态加载所需数据。这与预推理检索(Pre-inference Retrieval)相对。
关键内容
与预推理检索的对比
| 预推理检索(Pre-inference) | 即时上下文检索(JIT) | ||
|---|---|---|---|
| 数据加载时机 | 运行前统一检索 | 运行时渐进式披露(Progressive Disclosure)</td> </tr> <tr> <td>上下文内容</td> <td>完整数据块</td> <td>轻量标识符 + 工具调用结果</td> </tr> <tr> <td>适合场景</td> <td>静态、低动态内容</td> <td>动态、大规模、难以提前枚举</td> </tr> <tr> <td>优势</td> <td>速度快(已预[[计算) | 不浪费注意力预算、不受索引陈旧影响 |
| 劣势 | 索引陈旧、上下文膨胀 | 需要工具设计和探索启发 |
Claude Code 的实现案例
Claude-Code 是 JIT 上下文检索的典型实现:
- CLAUDE.md 文件:直接载入上下文(预推理,小文件,高频引用)
- glob / grep:作为探索工具,运行时按需查找文件路径或内容模式
- Bash(head/tail):对大型数据对象只读取片段,不全量加载
- SQL 查询:动态写入目标查询,只取所需字段和行
这种混合策略(CLAUDE.md 预加载 + 工具探索 JIT)使 Claude Code 能在大型代码库中工作,同时规避陈旧索引和复杂语法树的问题。
元数据作为信号
JIT 策略的关键优势之一:引用的元数据本身就提供信息。Agent 不需要加载文件内容,仅凭路径/文件名/时间戳就能推断用途:
tests/test_utils.pyvssrc/core_logic/test_utils.py— 相同文件名,位置暗示不同角色- 文件大小 → 复杂度线索
- 命名规范 → 用途线索
- 时间戳 → 相关性代理
文件夹层级、命名约定、时间戳共同构成了无需加载内容即可辅助决策的隐式元数据层。
与渐进式披露的关系
即时上下文检索是渐进式披露原则在 Agent 工具使用中的具体实现: - 先用轻量标识符(第一层) - 有明确目标再加载(第二层) - 精确定位后才读取完整内容(第三层)
混合策略的判断标准
纯 JIT 与混合(部分预加载 + JIT 探索)之间的选择依赖任务特征:
- 高动态内容(代码库、实时数据)→ JIT 优先
- 低动态内容(法律/金融文档)→ 混合,部分预加载更快
- 模型能力越强 → 越适合纯 JIT,无需工程师过多预处理
随着模型能力提升,工程趋势是"让智能模型智能地行动"——减少人工预处理,增加 Agent 自主探索。
来源
- raw/articles/ai-engineering/anthropic-engineering/Effective context engineering for AI agents.md
- raw/articles/ai-engineering/anthropic-engineering/claude-engineering/04_context_engineering.md — 上下文工程深度分析(2026 年 4 月)
相关
- Context-Engineering — part_of(JIT 是上下文工程的核心检索策略)
- 渐进式披露-Progressive-Disclosure — implements(JIT 是渐进式披露的工具层实现)
- 注意力预算 — related_to(JIT 的核心动机是节约注意力预算)
- Claude-Code — implemented_by(Claude Code 是典型的 JIT + 预加载混合实现)
- Agent Harness模式 — related_to(工具设计是 JIT 策略的关键工程层)