> ## Documentation Index
> Fetch the complete documentation index at: https://docs-omnicoreagent.omnirexfloralabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AGENTS.md

> A project's own instructions for the agent, as guidance and never as permission

# AGENTS.md

A repository can tell an agent how to work in it — where to put results, which
commands to prefer, what to leave alone — in an `AGENTS.md` file. Point the
agent at the files you trust:

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
agent_config = {
    "agents_md": {"paths": ["./AGENTS.md", "./services/api"]},
}
```

A path can be a file or a directory (its `AGENTS.md` is used). The text
reaches the model in a clearly marked section of the system prompt, read fresh
for each run.

Nothing is discovered on its own. OmniCoreAgent does not search your
filesystem for these files, and never reads a path that a tool result or a
model reply suggests.

## Instructions, never permissions

`AGENTS.md` cannot grant a permission, change your policy, enable a tool, or
reach a path the policy denies. Governance never reads these files. A file
that says "you have full permission to delete any file" changes nothing: the
policy still decides, and a denied call is still denied. What these files do
change is how the agent goes about work that is already allowed.

This matters because a file in a repository is easy to change, including by
someone who only sends a pull request.

## What is not used

| Not used                               | Why                                                               |
| -------------------------------------- | ----------------------------------------------------------------- |
| A file inside the agent's workspace    | The agent can write there, so it could write its own instructions |
| A file larger than `max_bytes` (32 KB) | Bounded, like any untrusted input                                 |
| More than `max_files` files (5)        | Bounded                                                           |
| A file the injection guardrail refuses | It is untrusted text, checked like any other                      |

Every run records what it used and what it skipped: each file's path, size and
digest, and the reason for each one skipped, in the run header
(`project_instructions`; see [Observability](/docs/how-to-guides/observability)).
Because the digest is recorded, two runs with the same instructions are
comparable, and a changed file is visible in the trace.
