eve gives you several levers for controlling what the model sees and when.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/vercel/eve/llms.txt
Use this file to discover all available pages before exploring further.
instructions.md (or instructions.ts) is always on, skills/ are available but loaded on demand, and the workspace and sandbox are visible through tools rather than pasted into the prompt. This page explains each lever, automatic compaction, and how to pick the right one for each case.
Base identity with instructions.md
Use instructions.md for the core contract of the agent — the stable behavior that should apply on every turn:
Compose instructions in TypeScript with instructions.ts
To build the instructions prompt from typed helpers, library code, or environment-derived values, author it as a module instead of markdown:
agent/instructions.ts
Load procedures on demand with skills/
Skills stay out of the always-on prompt by default. This keeps rich procedures available without bloating every turn. eve advertises the available skills and adds a framework-owned load_skill tool. When the request clearly matches a skill description, or the user names a skill explicitly, the model activates that skill, and eve appends the skill’s markdown to the active instructions for later turn work.
Flat skill
agent/skills/get-weather.md
Packaged skill
agent/skills/research/SKILL.md
references/, assets/, or scripts/ under the same skill directory. Those paths show up under the runtime workspace root, so the model can inspect them with the normal file or shell tools instead of pasting their content into the prompt.
Put runtime files in the workspace, not the prompt
eve does not inline the entire authored surface into the prompt. Instead, it gives the model a shallow workspace hint and runtime tools to inspect deeper when needed. Skill files are available under the active workspace root, and the model inspects them with the sharedbash tool. This keeps prompts smaller and makes file and command work explicit.
Automatic context-window compaction
The default harness keeps a long session from overflowing the model’s context window. Once the conversation crosses a configurable fraction of the window, eve summarizes the older turns into a compact form and keeps going.How compaction works
When the context approaches the threshold:- eve emits a
compaction.requestedevent (carryingmodelId,sessionId,turnId,usageInputTokens). - The summary uses the active turn model unless overridden.
- Once the compaction checkpoint is written to durable history, eve emits
compaction.completed. - The session continues with the compacted context.
Configuring compaction
Tune when compaction kicks in using thecompaction key in agent/agent.ts:
agent/agent.ts
0.9 (90% of the model’s context window). There is no per-tool hook to configure — compaction is managed entirely by the harness.
Compaction events
| Event | Carries | Meaning |
|---|---|---|
compaction.requested | modelId, sessionId, turnId, usageInputTokens | Compaction began; context was nearing the threshold. |
compaction.completed | — | Compaction checkpoint written to durable history; session continues. |
Delegate to a specialist with a subagent
If a task deserves its own prompt and tool surface, use a local subagent instead of overloading the root agent. Subagents are a context-control lever too: they get their owninstructions.md, tools, and sandbox, and they run inside their own delegated context instead of extending the root agent inline.
Use subagents only for real specialization boundaries — where the task genuinely needs a different prompt, tool set, or behavior. Overusing subagents adds coordination overhead without benefit.
Dynamic context with defineDynamic
The levers above are static — authored once and the same on every session. When the right context depends on who is calling (their team, tenant, plan, or feature flags), resolve it at runtime with defineDynamic:
defineDynamicinagent/instructions/returns the per-session system prompt.defineDynamicinagent/skills/returns the set of skills a caller can load.
ctx.session.auth or channel metadata, so a caller on the billing team gets the billing instructions and playbook while no one else sees them.
Recommended context layout
Pick the lever by what the context is for:| Lever | Use for |
|---|---|
instructions.md | The agent’s permanent identity. Keep it short and stable. |
instructions.ts | Composing the prompt from typed helpers at build time. |
skills/ | Optional procedures that should load only when needed. Move long procedures here instead of into the always-on prompt. |
tools/ | Typed integrations the model can call. |
| Subagent | Tasks that need a genuinely different specialist surface. Use only for real specialization boundaries. |
| Workspace / sandbox | When the model should inspect files or run commands instead of relying on pasted instructions. |
Skills
The full authoring model for on-demand procedures.
Subagents
Delegate to a specialist with its own prompt and tools.
Tools
Resolve per-session capabilities with
defineDynamic.Execution Model
How sessions, turns, and steps run durably.