# Agent harness limits > This page lists the limits and defaults of the agent harness, and what the harness does not do. ## Agent run defaults These are the `AgentConfig` defaults for each run. | Setting | Default | |---|---| | `actions` | `("calendar.create_event",)` | | `allow_undo` | `True` | | `max_steps` | 6 | | `run_timeout_s` | 90 seconds | | `spend_cap` | 100,000 tokens | | `context_token_budget` | 4096 | | `history_turns` | 20 | `RunResult.stopped_reason` can be `completed`, `cut_off`, `max_steps`, `spend_cap`, `timeout`, `model_error` or `blocked`. ## Long job limits Long jobs are off by default. Set `long_task=LongTaskConfig(...)` in `AgentConfig` to turn them on. | Setting | Default | |---|---| | Model calls per turn | up to 100 | | Seconds per turn | up to 3,600 | | Turns in a chain | up to 10 | | Spend cap | 5,000,000 tokens | On a transient provider error, a long job tries the next model of the preset that the deploy holds a key for. ## Memory API limits These limits apply to the Memory API. See the [Memory API errors](/docs/memory-api/errors) page for refusals. | Field or limit | Value | |---|---| | `content` | 500,000 characters | | `label` | 200 characters | | `id` | 512 characters | | `metadata` | 64 KiB | | Batch ingest | 1 to 1,000 items | | Recall `limit` | 1 to 200 | | Recall `level` | low 8,000, medium 16,000, high 24,000, extra-high 32,000 tokens | | Rate limit | Per-minute limit; over it returns 429 with `Retry-After` | Each user trait key is up to 200 characters. Each trait value is up to 2,000 characters. ## What the harness does not do - **Harny does not host your agent.** The agent loop runs on your own model key. The long-job folder and any shell are yours. Harny hosts nothing. - **Harny never sees your model key.** The model key is read from the provider's usual variable, such as `ANTHROPIC_API_KEY`, or passed as `api_key=` with `provider=`. - **Actions are limited to the catalog.** The agent can perform only `calendar.create_event`, `email.send`, `ticket.create`, `slack.post_message` and `notion.create_page`. Each has an undo except `email.send`. Undo needs the action record id. - **Learning does not write rules.** A learned settings offer changes one action kind's setting only when you apply it. You can keep the current setting or restore the previous one. A restore changes the setting for future actions only. - **Completing a manual action does not create a rule.** It also does not run the step a second time. - **Long jobs are off by default.** They run only when you set `long_task`. Permissions apply to every action. The strictest overlapping setting wins. ## Where limits come from Per-run limits are `AgentConfig` settings. Memory API limits belong to the Memory API. You set permissions and learning in the console under Actions, Automation. ## Next - [Agent harness overview](/docs/agent-harness/overview) - [Permissions](/docs/agent-harness/permissions) - [Long jobs](/docs/agent-harness/long-jobs)