跳转到内容

.agentignore

.agentignore 为 Dline 定义工作区路径权限。路径模式使用 .gitignore 语法,还可以在行尾加权限属性,分别限制扫描、读取、写入和执行。

在工作区根目录创建 .agentignore。Dline 也接受 .dlineignore 和 .clineignore,按 .agentignore → .dlineignore → .clineignore 的顺序只使用第一个存在的文件。

  • 子目录中的 .agentignore 不会被读取。
  • 文件的新增、修改和删除会被自动监测,修改后立即生效。
  • 可以用 !include <file> 引入另一个文件中的规则。被引入的文件发生变化时不会被自动监测,需要重新保存 .agentignore 才会生效。
# 在扫描中隐藏大型生成目录,但仍可按路径读取
coverage/ -s
.next/ -s
*.map -s
# 允许读取第三方代码,但禁止修改
vendor/ -w
# 禁止以不受信任的目录作为命令工作目录
scripts/untrusted/ -x
# 不带属性的规则同时禁止扫描、读取、写入和执行
.env
.env.*
secrets/
规则效果
secrets/禁止扫描、读取、写入和执行
generated/ -s不出现在扫描和列表中;按路径指定的文件仍可读写
vendor/ -w允许读取,禁止写入
scripts/untrusted/ -x禁止以该路径作为命令的工作目录
private/ -r禁止读取,其他权限不变
build/ -sw禁止扫描和写入;属性可以合并书写
!audit.log -s重新允许扫描之前被排除的路径

属性字母为 r(读取)、w(写入)、x(执行)和 s(扫描),可以分开写(-s -w)或合并写(-sw)。空行和以 # 开头的行会被忽略。

在大范围扫描(例如列出目录、搜索文件)时,Dline 会跳过 .gitignore 中的路径以及内置的 .git、node_modules、dist、build、out、tmp 目录。这种跳过只为降低扫描开销,不限制按路径直接读写。另有一条内置规则始终禁止写入 .git/ 目录。

.agentignore 中的限制则是权限:即使在任务中直接指定了被限制的路径,读取、写入和搜索工具也会拒绝访问。当前生效的忽略文件本身也受保护,Dline 无法读取或修改它。

  • 读取、写入或执行被拒绝时,聊天中会显示 “Dline tried to access <path> which is blocked by the .agentignore file.”,模型也会收到相应错误并被要求不使用该文件继续任务。
  • 在目录列表中,不可读取的路径会带 🔒 标记。
  • 直接搜索被 -s 限制的路径时,搜索会被拒绝。

写入被 .agentignore 中的 vendor/ -w 规则拒绝时,聊天中显示的拦截提示写入被 .agentignore 中的 vendor/ -w 规则拒绝时,聊天中显示的拦截提示

检查点只遵循 .gitignore 和内置排除规则,不受 .agentignore 的权限规则影响。