Skip to main content
AGENT_PROMPT_FILE points at a markdown brief that becomes the agent’s mandate. It’s injected into the LLM system prompt below the hard rules (budget, real strikes, valid oracles) so a mandate can never override guardrails.

Resolution

Path resolves from the package dir or repo root:
Configured-but-unreadable to process exits 1. Filename shows in /status config + as a fleet-card badge.

Structure

A mandate typically covers four things:
  1. Identity. Who is this agent (e.g. “momentum trader”, “contrarian fader”).
  2. Risk appetite. How aggressive to size, when to hold.
  3. Market preferences. Which markets to trade (BTC only, short-dated only, etc.).
  4. Patience rules. When not to trade.

Sample: momentum.md

Sample: contrarian.md

Live behaviour

The momentum mandate ran a Groq tick where the model researched all 4 tools, then held citing “no clear momentum in the last 30-60 minutes”. Exactly the mandate’s patience rule. The old generic prompt would have happily traded any tick.

Why a file (not env)

Per-process-per-agent. Different brains compete on one leaderboard. The mandate filename becomes part of the agent’s identity:
Wizard /agents to Create agent accepts an optional Strategy brief textarea. It becomes a downloadable <slug>.md mandate and a copyable env snippet (AGENT_STRATEGY=llm · LLM_PROVIDER · LLM_MODEL · TRADE_AGENT_ID · AGENT_PROMPT_FILE) ending in the one-line docker launch.