Skip to content

上下文文件

四个文件

将这些文件放在项目目录或全局目录 ~/.omp/agent/ 中,omp 会在下一次会话启动时自动发现。无需重新加载,也无需额外配置;发现完全由文件系统驱动。

文件作用加载时机
AGENTS.md项目说明,如约定、陷阱和目录结构。会话开始时注入系统提示词。
SYSTEM.md完全替换内置系统提示词;仅在明确知道需要移除哪些内置指令时使用。会话开始时替换系统提示词。
APPEND_SYSTEM.md追加到内置系统提示词之后。会话开始时注入。
RULES.md始终生效的持久规则;全文会进入系统提示词。每次请求都会生效。

文件位置

项目文件会从当前工作目录向上查找到仓库根目录(仓库外则查到主目录),因此祖先目录中的文件也可能被发现。全局文件位于 ~/.omp/agent/,对每个会话生效。

text
<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.md

omp 还会发现相邻 Agent 工具的约定文件,例如 Codex 的 AGENTS.md、Claude 的 CLAUDE.md、Cursor 规则、.clinerules 与 Copilot 指令。每个已加载条目及其来源路径都会显示在 /extensions 中。

解析顺序

存在多个 AGENTS.md 时,omp 按以下顺序拼接,越通用的内容越靠前:

  1. 全局:~/.omp/agent/AGENTS.md
  2. 项目祖先:从 cwd 向上查找的每个 AGENTS.md,最远的优先
  3. 最近的 .omp/AGENTS.md

SYSTEM.mdAPPEND_SYSTEM.md 只会使用一个文件:最近的项目文件优先于全局文件,不会进行拼接。RULES.md 则会同时使用全局 ~/.omp/agent/RULES.md 与最近的项目 .omp/RULES.md;二者都作为始终生效的规则加载。

AGENTS.md 的实践

AGENTS.md 视为 Agent 的 README:写入约定、构建命令、容易误用的文件和推荐目录结构。Agent 会在会话开始时读取一次,因此应保持简洁,过长内容会持续消耗上下文。

md
# 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/` &mdash; PageHeader, Prose, nav.ts
- `src/routes/docs/` &mdash; one file per page

## Don&rsquo;t touch
- `bun.lock` &mdash; regenerated by `bun install`.
- `public/clips/` &mdash; binary assets, do not rewrite.

RULES.md 和粘性行为

RULES.md 适合必须始终遵守的指令。omp 会将其作为持续规则加载,并把全文注入系统提示词,因此多轮对话后仍会对每次请求生效。请放置硬约束,例如“绝不提交 Secret”“交付前始终运行 just test”;一般项目说明应写在 AGENTS.md 中。

更换系统提示符

SYSTEM.md 会完全替换内置系统提示词,因此也会移除 omp 自带的工具使用指导。除非确实需要完全不同的 Agent 角色,否则优先使用 APPEND_SYSTEM.md

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-mdclaude;可在 /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:

yaml
# ~/.omp/agent/config.yml、.omp/config.yml 或 --config 覆盖层
disabledExtensions:
  - context-file:user:CLAUDE.md

上下文文件 ID 的格式为 context-file:<level>:<basename><level>userproject<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 与当前禁用状态。