description: "面向用户与维护者的本地工作区 @file 补全提供方,用于启用、调整规模或排查 ctx.fileReferences 的发现能力。"
English | 中文
agent(智能体)及宿主 UI 可以用各 agent 本地工作区中经过排序的路径补全 @file mention;有界发现让大型仓库也能保持响应迅速。结果会在工具活动后刷新且不会阻塞补全,并且始终不会跟随目录符号链接。当 read 可用时,模型还会收到关于如何理解引用路径的稳定指引。当 read 使用 Harness 宿主文件系统时选择本包;远程或虚拟命名空间需要与之匹配的发现能力。
当 @file 补全应发现 Harness 宿主自身的文件系统——即随附 read 工具所操作的命名空间——时,挂载此提供方。每个 agent 的工作区从该会话的工作目录开始建立索引;会话没有工作目录时回退到宿主进程目录。
默认设置适合典型工作区,因此最小挂载无需任何配置:
- name: '@deepseek-ai/dsh-file-reference-local'
config:
maxResults: 20
在宿主 UI 中输入 @ 会为指定 agent 返回至多 maxResults 个排序路径候选。包含 / 的查询直接列出匹配目录的条目;裸查询对有界递归索引做模糊排序。目录候选以尾斜杠保持 mention 开放。任何工具结果之后,该 agent 的索引会被标记为陈旧:下一次查询仍由它作答,其替代品在后台构建,因此重建不会挡在光标前面。
| 字段 | 默认值 | 含义 |
|---|---|---|
maxResults |
20 |
单次查询返回的排序候选最大数量 |
maxEntries |
50000 |
每个 agent 工作区建立索引的文件与目录最大数量 |
excludedDirectories |
['.git', 'node_modules', 'dist', 'build', 'out', 'coverage', 'target', '.next', '.nuxt', '.turbo', '.venv', '__pycache__', '.pytest_cache', '.mypy_cache', '.gradle'] |
遍历与候选中排除的目录基名 |
所有数值都必须是正的安全整数,所有排除名都必须是不含 / 或 \ 的非空基名。
包级约定不够用时阅读以下页面。它们从本提供方所实现的 seam 进入其候选所指向的工具。
@file 语法。read 工具。read 可用时的文件引用指引当指定 agent 有实际生效的 read 工具时,提供方会贡献以下稳定的系统提示词段:
Tokens prefixed with @ are workspace paths the user explicitly referenced, relative to the workspace root. A trailing slash marks a directory: list it when its contents matter. Anything else is a file: use the read tool when its contents are needed, and do not claim to have inspected it before reading. @"..." quotes a path containing spaces.
该影响有条件且固定:只要 read 对指定 agent 可见,这一句就会存在;候选查询本身不增加 token,所选路径只会贡献普通用户消息中的对应字符。
该稳定句子会加入系统提示词前缀。挂载或移除此提供方,或者改变 read 是否可见,都会改变该前缀;查询、候选项和索引陈旧标记不会改变前缀。
这些限制说明该提供方何时不合适。它们是当前包约束。
read 实现需要使用命名空间与该工具一致的提供方。maxEntries 之后的路径;被排除或无法读取的目录不会出现。默认排除项只列没有任何生态用作源码目录的构建产物;lib 被刻意排除在外,因此构建进 lib 的工作区需通过 excludedDirectories 自行加上。.gitignore 和其他项目忽略文件不会影响发现;系统只排除已配置的目录基名。