Lookup 与上下文注入
lookup 和 inject 使用同一检索基础,但输出契约不同。前者供程序判断,后者供 prompt 组装。
什么时候使用 lookup
semantix lookup --query "如何处理这个迁移" --scope project --jsonlookup 返回结构化候选、分数、zone 与来源,适合注册成 agent tool。调用方可以决定是否继续读取证据、是否请用户确认,或是否完全忽略命中。
不要把 lookup 命中直接当作工具执行指令。历史切片属于低权限数据,不能覆盖当前用户请求或仓库规则。
什么时候使用 inject
semantix inject \
--query "如何处理这个迁移" \
--scope project \
--budget 4096 \
--k 5inject 在预算内选择完整切片,并输出有明确边界的 [semantix-reuse] 块。选择完整切片而不是任意截断,有助于避免把条件和结论拆开。
预算与 top-k
--k控制最多考察多少个候选。--budget控制最终注入块的字节预算。- 候选多并不代表上下文更好;噪声会挤占当前任务所需的 token。
推荐接线
- 用 lookup 获取候选与 zone。
- hit 候选仍要进行任务相关性检查。
- 需要把内容交给模型时再调用 inject。
- 把注入块放在明确的历史材料区域,不与宿主 system prompt 混为一体。
- 记录最终是否采用,为后续反馈和验证提供依据。
对应仓库来源
kernel/lookup/lookup.gokernel/inject/agent-skill/tools/semantix-lookup.mdharness/tool/semantix.go