Skip to content

上下文供给:项目规则、材料引用与技能加载 ​

项目规则、引用发现和技能目录由独立插件提供。文件引用返回候选路径,技能注册表协调来源与按需读取;模型实际获得的材料通过会话事件记录,目录可见与正文加载分别观察。

上下文来源与按需材料消费

箭头表示标注的调用或依赖关系;点击组件定位正文。完整关系见下方文字说明。

文字关系说明与章节链接

agent-instructions →(规则消息)→ Session;file-reference →(文件读取提示)→ Session;skill-filesystem →(提供目录和正文)→ skill;tool-skill →(查询与加载)→ skill;tool-skill →(目录与工具历史)→ Session。

agent-instructions · Session · file-reference · skill-filesystem · skill · tool-skill

agent-instructions 按目录提供项目规则 ​

dsh-agent-instructions 收集全局规则与项目根到当前目录的规则文件,处理相邻内容去重,并把结果纳入模型输入准备。

// 指令插件在会话首次合格步骤前组合基线,将规则作为可重放输入纳入进入批次。
'agent/pre-step'

固定版本 base 默认装配的是这项能力,session-reference、file-reference、time-context 和 tmux-context 等其他上下文是可选项。因此有了一个文件路径,并不意味着系统一定装配了引用解析,也不意味着某个终端的状态会自动进入每一次请求。

引用服务发现材料并交由消费者读取 ​

dsh-file-reference 定义只含路径与文件或目录类型的候选,file-reference-local 提供本地发现。选择 @README.md 只把普通路径文本写入用户消息,不读取或自动附加文件正文;模型需要正文时,必须显式调用 read 等文件系统工具,读取结果才进入模型可见历史。

// 输入补全消费者查询确定性排序的文件与目录路径候选,不读取文件正文。
const candidates = await ctx.fileReferences.list(agent, query, signal)

dsh-session-reference 则接收结构化会话引用,由解析器读取源会话并准备聚合上下文快照,与文件路径补全不同。系统提示组装器组合实际输入,文件工具负责文件访问;聊天界面能展开文件卡片,并不意味着文件全文已送给模型。

规则在文件操作与恢复观察点更新 ​

agent-instructions 会在成功的读、写、编辑等文件操作后发现更深目录规则与相关变化,并在恢复时重新协调;它不是对整个磁盘持续监听。

固定版本有六万五千五百三十六字节的规则预算与每源一兆字节的读取上限,预算不足时优先省略宽泛材料,再截断更具体来源。根发现遇到 I/O 失败会显式暴露,不能把访问失败解释成项目没有规则。

技能注册表连接来源与按需加载工具 ​

dsh-skill 管理技能目录与解析,skill-filesystem 提供文件来源,tool-skill 把正文加载动作交给模型。

// 技能提供者同步登记目录与正文加载能力,返回移除该提供者的 disposer。
ctx.skills.registerProvider
// 模型按目录中的准确技能名按需加载正文,收到 skill_content 内容与资源访问指引。
skill

目录主要给名称与说明,而不是把所有技能全文常驻上下文;同名技能按宿主及作用域距离,再按优先级和顺序选择。发现不完整时不能把残缺结果缓存成完整目录,列举失败会记录并省略对应来源,畸形候选按规则失败。能力可发现和正文已加载是两个状态。

辅助示例

解释项目根 README 时,agent-instructions 先提供根目录规则;随后模型读取某个子目录源码,成功文件操作可能触发更具体规则发现。若需要文档制作技能,模型先从目录确认技能用途,再调用 tool-skill 读取正文。这条路径避免把无关技能与整棵目录内容预先加入每个请求。

设计取舍 ​

按目录和需求提供材料,可以控制上下文成本并保留规则的具体性;代价是外部直接改动的文件并非实时同步,预算也会影响可见内容。解释模型行为时应检查该次请求实际记录的材料,而不是根据磁盘现状倒推模型当时一定看见。

相关包与插件
资料来源与核验范围

本章依据固定版本的官方文档整理,设计取舍根据所述机制分析;核验范围为文档,不包含运行实测。

图示
100%双指缩放 · 滑动查看