# Agents

> SDK methods for the Agents module, accessed via `soat.agents`. See the [Agents module docs](/docs/modules/agents) for permissions and data model, and each method's REST page for the full request/response schema.

# Agents

SDK methods for the Agents module, accessed via `soat.agents`. See the [Agents module docs](/docs/modules/agents) for permissions and data model, and each method's REST page for the full request/response schema.

### `soat.agents.createAgent()`

Create an agent

- Method: `POST`
- Path: `/api/v1/agents`

```ts
await soat.agents.createAgent({
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/create-agent)

### `soat.agents.listAgents()`

List agents

- Method: `GET`
- Path: `/api/v1/agents`

```ts
await soat.agents.listAgents({
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/list-agents)

### `soat.agents.getAgent()`

Get an agent

- Method: `GET`
- Path: `/api/v1/agents/{agent_id}`

```ts
await soat.agents.getAgent({
  path: { agent_id },
});
```

→ [Request & response schema](/docs/api/agents/get-agent)

### `soat.agents.updateAgent()`

Update an agent

- Method: `PUT`
- Path: `/api/v1/agents/{agent_id}`

```ts
await soat.agents.updateAgent({
  path: { agent_id },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/update-agent)

### `soat.agents.patchAgent()`

Partially update an agent

- Method: `PATCH`
- Path: `/api/v1/agents/{agent_id}`

```ts
await soat.agents.patchAgent({
  path: { agent_id },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/patch-agent)

### `soat.agents.deleteAgent()`

Delete an agent

- Method: `DELETE`
- Path: `/api/v1/agents/{agent_id}`

```ts
await soat.agents.deleteAgent({
  path: { agent_id },
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/delete-agent)

### `soat.agents.createAgentGeneration()`

Run an agent generation

- Method: `POST`
- Path: `/api/v1/agents/{agent_id}/generate`

```ts
await soat.agents.createAgentGeneration({
  path: { agent_id },
  query: { /* + optional */ },
  body: { messages, /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/create-agent-generation)

### `soat.agents.submitAgentToolOutputs()`

Submit tool outputs for a paused generation

- Method: `POST`
- Path: `/api/v1/agents/{agent_id}/generate/{generation_id}/tool-outputs`

```ts
await soat.agents.submitAgentToolOutputs({
  path: { agent_id, generation_id },
  body: { tool_outputs },
});
```

→ [Request & response schema](/docs/api/agents/submit-agent-tool-outputs)

### `soat.agents.listAgentVersions()`

List an agent's config versions

- Method: `GET`
- Path: `/api/v1/agents/{agent_id}/versions`

```ts
await soat.agents.listAgentVersions({
  path: { agent_id },
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/list-agent-versions)

### `soat.agents.getAgentVersion()`

Get an archived agent config version

- Method: `GET`
- Path: `/api/v1/agents/{agent_id}/versions/{version}`

```ts
await soat.agents.getAgentVersion({
  path: { agent_id, version },
});
```

→ [Request & response schema](/docs/api/agents/get-agent-version)

### `soat.agents.restoreAgentVersion()`

Restore an archived config as a new version

- Method: `POST`
- Path: `/api/v1/agents/{agent_id}/versions/{version}/restore`

```ts
await soat.agents.restoreAgentVersion({
  path: { agent_id, version },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/restore-agent-version)

### `soat.agents.setAgentRelease()`

Set or replace a staged rollout

- Method: `PUT`
- Path: `/api/v1/agents/{agent_id}/release`

```ts
await soat.agents.setAgentRelease({
  path: { agent_id },
  body: { stable_version, canary_version, canary_percent, /* + optional */ },
});
```

→ [Request & response schema](/docs/api/agents/set-agent-release)

### `soat.agents.promoteAgentRelease()`

Promote the canary and end the rollout

- Method: `POST`
- Path: `/api/v1/agents/{agent_id}/release/promote`

```ts
await soat.agents.promoteAgentRelease({
  path: { agent_id },
});
```

→ [Request & response schema](/docs/api/agents/promote-agent-release)

### `soat.agents.abortAgentRelease()`

Abort the rollout and roll back to stable

- Method: `POST`
- Path: `/api/v1/agents/{agent_id}/release/abort`

```ts
await soat.agents.abortAgentRelease({
  path: { agent_id },
});
```

→ [Request & response schema](/docs/api/agents/abort-agent-release)
