上下文文件
四个文件
将这些文件放在项目目录或全局目录 ~/.omp/agent/ 中,omp 会在下一次会话启动时自动发现。无需重新加载,也无需额外配置;发现完全由文件系统驱动。
| 文件 | 作用 | 加载时机 |
|---|---|---|
AGENTS.md | 项目说明,如约定、陷阱和目录结构。 | 会话开始时注入系统提示词。 |
SYSTEM.md | 完全替换内置系统提示词;仅在明确知道需要移除哪些内置指令时使用。 | 会话开始时替换系统提示词。 |
APPEND_SYSTEM.md | 追加到内置系统提示词之后。 | 会话开始时注入。 |
RULES.md | 始终生效的持久规则;全文会进入系统提示词。 | 每次请求都会生效。 |
文件位置
项目文件会从当前工作目录向上查找到仓库根目录(仓库外则查到主目录),因此祖先目录中的文件也可能被发现。全局文件位于 ~/.omp/agent/,对每个会话生效。
<repo>/AGENTS.md # project notes (also walked from subdirs)
<repo>/.omp/SYSTEM.md # project: replace the system prompt
<repo>/.omp/APPEND_SYSTEM.md
<repo>/.omp/RULES.md
~/.omp/agent/AGENTS.md # global notes
~/.omp/agent/SYSTEM.md # global: replace the system prompt
~/.omp/agent/APPEND_SYSTEM.md
~/.omp/agent/RULES.mdomp 还会发现相邻 Agent 工具的约定文件,例如 Codex 的 AGENTS.md、Claude 的 CLAUDE.md、Cursor 规则、.clinerules 与 Copilot 指令。每个已加载条目及其来源路径都会显示在 /extensions 中。
解析顺序
存在多个 AGENTS.md 时,omp 按以下顺序拼接,越通用的内容越靠前:
- 全局:
~/.omp/agent/AGENTS.md - 项目祖先:从
cwd向上查找的每个AGENTS.md,最远的优先 - 最近的
.omp/AGENTS.md
SYSTEM.md 和 APPEND_SYSTEM.md 只会使用一个文件:最近的项目文件优先于全局文件,不会进行拼接。RULES.md 则会同时使用全局 ~/.omp/agent/RULES.md 与最近的项目 .omp/RULES.md;二者都作为始终生效的规则加载。
AGENTS.md 的实践
将 AGENTS.md 视为 Agent 的 README:写入约定、构建命令、容易误用的文件和推荐目录结构。Agent 会在会话开始时读取一次,因此应保持简洁,过长内容会持续消耗上下文。
# Project notes for the agent
## Conventions
- Bun, not Node. Use `bun test`, not `npm test`.
- React Router v6 with file-based routes under `src/routes/`.
- No utility classes inside <Prose>; use plain HTML tags.
## Where things live
- `src/components/docs/` — PageHeader, Prose, nav.ts
- `src/routes/docs/` — one file per page
## Don’t touch
- `bun.lock` — regenerated by `bun install`.
- `public/clips/` — binary assets, do not rewrite.RULES.md 和粘性行为
RULES.md 适合必须始终遵守的指令。omp 会将其作为持续规则加载,并把全文注入系统提示词,因此多轮对话后仍会对每次请求生效。请放置硬约束,例如“绝不提交 Secret”“交付前始终运行 just test”;一般项目说明应写在 AGENTS.md 中。
更换系统提示符
SYSTEM.md 会完全替换内置系统提示词,因此也会移除 omp 自带的工具使用指导。除非确实需要完全不同的 Agent 角色,否则优先使用 APPEND_SYSTEM.md。
# ~/.omp/agent/APPEND_SYSTEM.md
You are pairing with a security-focused engineer. When reviewing diffs,
call out: missing input validation, unsafe deserialization, secrets in
logs, and authn/authz changes that broaden access.禁用发现
| 设置 / Flag | 作用 |
|---|---|
disabledProviders | 禁用指定发现来源,如 agents-md、claude;可在 /extensions 查看。 |
--no-rules | 本次运行完全跳过 RULES.md、.omp/rules/ 等规则来源。 |
--system-prompt <text|@file> | 覆盖 CLI 系统提示词,优先于 SYSTEM.md。 |
运行 omp -p '/extensions' 可确认实际加载了哪些文件。完整 Flag 请参阅 CLI 参考;其他定制能力请参阅 Skills、提示词模板 和 Hooks。
仅禁用一个上下文文件
disabledProviders 会移除整个发现来源。若只想排除某一个上下文文件、同时保留该来源提供的 MCP Server、命令、Skills、Hooks、工具和设置,请在 disabledExtensions 中列出它的扩展 ID:
# ~/.omp/agent/config.yml、.omp/config.yml 或 --config 覆盖层
disabledExtensions:
- context-file:user:CLAUDE.md上下文文件 ID 的格式为 context-file:<level>:<basename>:<level> 是 user 或 project,<basename> 是不含目录的文件名。
| ID | 禁用范围 |
|---|---|
context-file:user:CLAUDE.md | 用户级 CLAUDE.md;Claude 发现到的其他能力仍会加载。 |
context-file:project:AGENTS.md | 发现路径上每一层项目级 AGENTS.md。ID 不携带目录深度。 |
context-file:user:AGENTS.md | 任意来源提供的同名用户级 AGENTS.md。 |
禁用发生在去重之前。因此,被禁用的文件不再占用其作用域,原来被它遮蔽的候选文件会接替生效。disabledExtensions 不支持路径作用域,并且和其他数组设置一样会被更高优先级的设置层整体替换。可在 /extensions 中查看这些 ID 与当前禁用状态。