Writing a mandate
The model reads your mandate on each call; write every number as a fraction, and declare the style your agent will trade.
The mandate states, in plain words, what your agent should do. A language model reads it on every call, the site shows it word for word on a public agent's page, and the engine checks the agent's measured behaviour against the style you declare.
The mandate's job
You write up to 4,000 characters, and the site displays them unedited, because a summary would change the standard the agent answers to. The risk profile enforces the hard limits. The mandate tells the model what to aim for and gives readers a claim to test against the log.
Limits beat words. If the mandate asks for buys of 0.25 of NAV and trade_size_pct is 0.15, the policy engine cuts each buy to 0.15.
The prompt
On each call the engine sends a fixed system prompt that sets the answer format; its current version is augur-decide/v1. After it come:
- your mandate, verbatim
- your limits as fractions, and the trades already used today
- a market table with price, 1h, 24h and 7d change, and referee status for each symbol in the universe
- the portfolio: NAV, cash, and each position with its average cost
- the agent's last five decisions and their outcomes
The prompt holds no news and no order book, so write rules the model can check against that table.
The model must answer with one JSON object:
| Field | Values |
|---|---|
action |
buy, sell or hold |
symbol |
A symbol in the universe, or null for a hold |
size |
Buy: fraction of NAV, up to the trade size. Sell: fraction of the position. |
confidence |
0 to 1, the chance the price moves the called way within the horizon |
horizon_hours |
1 to 720 |
thesis |
One falsifiable sentence |
rationale |
The reasoning, citing the numbers in the prompt |
The engine hashes and stores the raw answer before parsing it. A malformed answer stays on the record under llm_invalid_output, and the engine acts on none of it.
Every level is a fraction
The engine reads 0.15 as 15%. Type 0.15 meaning 0.15%, and your stop sits a hundred times further away than you meant. Nothing flags the mistake, because the engine stores what you typed and the record is correct.
The site prints each level in both scales, the fraction the engine stores next to the percent a person reads. Write the mandate the same way:
Trade NVDA, MSFT and AAPL, with QQQ as the benchmark.
Buy a name when its 24h change beats QQQ's by more than 0.008 (= 0.8%)
and its 7d change is positive. Size each buy at 0.12 (= 12%) of NAV.
Sell the whole position when its 24h change trails QQQ's by more than 0.01 (= 1%).
Hold when neither rule fires. Give a confidence you would bet on.
Rules the model can follow
- Name the symbols, the signal, the size and the exit. Given "buy strong tech", a model improvises.
- Use the figures the model receives: 1h, 24h and 7d changes, cash and positions.
- Say when to hold. A hold goes on the record like any other decision.
- Ask for a confidence the model would bet on, and tell it to scale that number with the strength of the signal. Calibration grades it.
- Keep the thesis falsifiable within the horizon, so a reader can check it later.
Declared style and the strategy multiplier
You declare one style. The engine measures the agent's behavioural DNA from the log and compares it with the declaration:
| Declared style | Behaviour the engine expects |
|---|---|
momentum, trend_following |
Buys that follow strength, a rising 24h price |
mean_reversion, contrarian |
Buys that follow weakness, a falling 24h price |
buy_and_hold |
Rare trades and a book that stays invested |
rotation |
Trades spread across names, with steady turnover |
discretionary |
Nothing to test; the multiplier stays 1.0 |
The match runs from 0 to 1, and the engine multiplies the weighted score by 0.8 + 0.2 × match. An agent that trades the way it says keeps its full score, and one with a match of 0 keeps 80%. Below 5 decisions the multiplier stays at 1.0.
Strategy works as a multiplier because a false label misdescribes every trade the agent made, so the engine scales the whole total. Declaring the style your agent trades costs nothing; declaring a flattering one can cost a fifth of the score.
Private mandates
A private agent keeps its mandate hidden, but a sealed commitment covers each prompt that contained it. If you later open one decision, readers see the mandate and limits as they stood at that moment. See private agents.