# Agents and strategies

> What an agent does with strategies: reads them, writes and edits rule cards, branches, makes a version main, builds a program, runs backtests and controls a deployment, and what each act needs.

Source: https://orbitalaip.com/docs/agents/strategy-work

> [!IMPORTANT] Disclaimer
> Backtest results are hypothetical and do not predict future performance. Nothing here is investment advice: Orbital computes the rules you supplied and recommends nothing. Orbital is not a registered investment adviser or broker-dealer. Costs are as modelled by the chosen cost profile and may differ from live trading.

## What an agent can do

An agent works on [strategies](https://orbitalaip.com/docs/glossary#strategy) in its own runs, on the same records Backtesting and Trade show you.

| Act | What it does | Needs |
| --- | --- | --- |
| Read strategies, runs and deployments | Lists strategies, reads one strategy's versions and runs or one backtest, and lists and reads deployments. | Backtesting active in the project for strategies, Trade for deployments |
| Create a Rules strategy | Saves a workflow as a draft. | Nothing |
| Edit its own draft | Replaces the whole graph. | Nothing |
| Branch a deployed strategy | Copies the version a deployment runs into a new draft. | Nothing |
| Build a program | Compiles a Program node's Rust source into the module a backtest runs. | Nothing |
| Run or cancel a backtest | Prices the run, then asks you or starts it. | Build and test strategies |
| Make a version main | Moves the strategy's main mark to the version it names. | Make main |
| Control a deployment | Pauses, stops, resumes or re-limits a deployment. | Supervise deployments |

No agent act deploys a strategy or starts a forward test; you do those yourself in Backtesting and Trade.

One run may create two workflows, branches included, and make six edits and six builds. It may ask for three backtests and six deployment controls, and ask once to make a version main.

An agent with **Make trading decisions** set, in any mode, is given none of these tools. See [Make trading decisions](https://orbitalaip.com/docs/agents/permissions-and-approvals#make-trading-decisions).

## Permissions and approval requests

Backtests need **Build and test strategies**, moving main needs **Make main**, and deployment controls need **Supervise deployments**; only workspace owners and admins set them. See [The four permissions](https://orbitalaip.com/docs/agents/permissions-and-approvals#the-four-permissions).

Under **Ask**, the act waits as a card with **Approve** and **Refuse** for seven days. See [answering a request](https://orbitalaip.com/docs/agents/permissions-and-approvals#answer-a-held-action).

## Reading strategies, runs and deployments

An agent's strategy list gives the 50 most recently updated strategies, and one strategy read adds its newest 25 versions and newest ten runs. The agent is told to quote a backtest's [Sharpe ratio](https://orbitalaip.com/docs/glossary#sharpe-ratio) only with the number of configurations tried and the [deflated figure](https://orbitalaip.com/docs/backtesting/avoiding-overfitting#the-deflated-sharpe), and to state only numbers it has read. A deployment read carries no profit and loss; Trade's **Deployments** list shows **REALIZED GAIN**.

## Writing rule cards

The agent writes a Rules strategy's [rule cards](https://orbitalaip.com/docs/glossary#rule-cards) and their connections. Orbital lays out the graph, checks every required setting and saves it as a draft that runs nothing until someone runs or schedules it. Under the reply it shows as **Workflow · draft**, with **Open**.

When the graph qualifies, it appears at once in Backtesting's **Strategies** list as **Draft**, and turns **Tested** when a backtest completes. The agent may declare parameters a backtest can set without editing the graph.

It may edit only a draft it created, and only while nothing runs it; a published or scheduled workflow, or one a person made, is refused.

## Branching a deployed strategy

While a deployment runs a strategy, the agent may not change it. It branches instead: a new draft holding the version the deployment runs, named after the original with **branch** added. The deployment keeps running its own version. Changes saved after the deployed version are not in the branch.

The branch becomes a strategy on its own when its graph qualifies, and the agent edits and backtests that. It shows as **Workflow · branch**.

## Building a program

The agent saves the Program node with **History the program reads (bars of the decision bar)** set, writes the Rust source and builds it. Failed builds count toward its six a run. See [A Program from Claude or an agent](https://orbitalaip.com/docs/backtesting/program-strategies#a-program-from-claude-or-an-agent).

## Running backtests

The checks run in this order, and nothing is spent before the last:

- **The permission.** **Deny** refuses before anything is compiled.

- **The estimate.** The strategy is compiled and priced with the Run dialog's data check. A compile or data refusal comes back as an answer to fix, never as a card.

- **The spend cap.** A run the agent's **Spend cap** cannot cover is refused before any card or run exists. Backtests this run started on its own count against the cap; one you approve is your spend.

- **The card or the start.** Under **Ask** the run waits as a card titled **Run a backtest of** the strategy's name, whose detail gives the symbols, bar size, window and cost. Under **Always approve** it starts, and the credits are attributed to the agent.

The agent picks the window as a lookback such as 3y or 90d, or as dates; the end defaults to yesterday. Capital defaults to $100,000 and [margin](https://orbitalaip.com/docs/glossary#margin) to off, and the [cost profile](https://orbitalaip.com/docs/glossary#cost-profile) is Alpaca's unless it picks zero. It may also set the declared parameters and a one-line note on what the run changes; the version its backtest makes carries that note.

A configuration that already ran over the same window is refused with that run's id, so nothing is spent twice.

A run may ask for three backtests, counting cards still waiting for you. On its own, an agent may start 24 a day, resetting at midnight US Eastern; backtests you approve do not count. In your own conversation, or on a task, the agent is woken when a backtest finishes and reports the result. A scheduled run is not woken; the result waits in Backtesting.

## Making a version main

Under **Ask** the card reads **Make v2 main** for the version the agent names, and a run may ask once. It reads **No longer applies** if a Rules or Program version has no completed backtest or [main](https://orbitalaip.com/docs/glossary#main) moved after it asked. See [Main](https://orbitalaip.com/docs/workflows/runs-and-versions#main).

## Controlling a deployment

The agent can change **Budget**, **Max per trade**, **Open positions** and **Daily loss pause**; a limit it does not name keeps its value. Each card is titled with the act and the strategy's name.

| Card | What approving does |
| --- | --- |
| Pause | Nothing new is placed until it is resumed. |
| Stop | It does not trade again. |
| Resume | It then trades on its own as before. |
| Re-limit | It then trades on its own within the new limits. |

The broker account's own setting, **Ask**, is the ceiling on the agent's permission, so under **Ask**, **Auto** or **Always approve** every act waits as a card, and **Deny** refuses. See [Supervise deployments](https://orbitalaip.com/docs/agents/permissions-and-approvals#supervise-deployments) and [Manage a deployment](https://orbitalaip.com/docs/trade/manage-a-deployment).
