---
url: https://salimhamed.github.io/jigs/api/steps/agents.md
---
# steps/agents

Execute agent and model requests outside workflow code.

Wrap steps in a factory-owned `"use step"` file. Never call them directly from a workflow.

## Functions

### executeAgent()

```ts
function executeAgent(wire, metadata): Promise<
  | AgentResult
  | {
  jitFailure: object & object[];
}
  | {
  resumeFailed: string;
}>;
```

Run or ask an agent harness, checking worktree requirements before a run.

#### Parameters

| Parameter | Type |
| :------ | :------ |
| `wire` | [`AgentRequest`](../jigs.md#agentrequest) |
| `metadata` | [`RunMetadata`](../steps.md#runmetadata) |

#### Returns

`Promise`<
| [`AgentResult`](../jigs.md#agentresult)
| {
`jitFailure`: `object` & `object`\[];
}
| {
`resumeFailed`: `string`;
}>

***

### executeJev()

```ts
function executeJev<QUESTIONS>(wire, metadata): Promise<JevResult<QUESTIONS>>;
```

Evaluate typed questions with a decision-capable model.

#### Type Parameters

| Type Parameter |
| :------ |
| `QUESTIONS` *extends* [`JevQuestions`](../jigs.md#jevquestions) |

#### Parameters

| Parameter | Type |
| :------ | :------ |
| `wire` | [`AskJevOptions`](../jigs.md#askjevoptions)<`QUESTIONS`> |
| `metadata` | [`RunMetadata`](../steps.md#runmetadata) |

#### Returns

`Promise`<[`JevResult`](../jigs.md#jevresult)<`QUESTIONS`>>

***

### executeModel()

```ts
function executeModel(wire, metadata): Promise<ModelResult>;
```

Ask an API-backed model source.

#### Parameters

| Parameter | Type |
| :------ | :------ |
| `wire` | [`ModelRequest`](../jigs.md#modelrequest) |
| `metadata` | [`RunMetadata`](../steps.md#runmetadata) |

#### Returns

`Promise`<[`ModelResult`](../jigs.md#modelresult)>
