Defined in: [src/agent/tool-caller.ts:40](https://github.com/strands-agents/harness-sdk/blob/576da59fdc411b55036a7cf66d4e1659a67d4d0d/strands-ts/src/agent/tool-caller.ts#L40)

A handle to a specific tool, providing `.invoke()` and `.stream()` methods.

Returned by the Proxy get trap when accessing `agent.tool.toolName`. This aligns with the agent-level `agent.invoke()` / `agent.stream()` pattern.

## Properties

### invoke

```ts
invoke: (input?, options?) => Promise<ToolResultBlock>;
```

Defined in: [src/agent/tool-caller.ts:48](https://github.com/strands-agents/harness-sdk/blob/576da59fdc411b55036a7cf66d4e1659a67d4d0d/strands-ts/src/agent/tool-caller.ts#L48)

Invoke the tool and return the final result.

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `input?` | [`JSONValue`](/pr-cms-3708/docs/api/typescript/JSONValue/index.md) | The input parameters for the tool |
| `options?` | [`DirectToolCallOptions`](/pr-cms-3708/docs/api/typescript/DirectToolCallOptions/index.md) | Optional configuration for this call |

#### Returns

`Promise`<[`ToolResultBlock`](/pr-cms-3708/docs/api/typescript/ToolResultBlock/index.md)\>

The tool result

---

### stream

```ts
stream: (input?, options?) => AsyncGenerator<ToolStreamEvent, ToolResultBlock, undefined>;
```

Defined in: [src/agent/tool-caller.ts:57](https://github.com/strands-agents/harness-sdk/blob/576da59fdc411b55036a7cf66d4e1659a67d4d0d/strands-ts/src/agent/tool-caller.ts#L57)

Stream the tool execution, yielding intermediate events and returning the final result.

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `input?` | [`JSONValue`](/pr-cms-3708/docs/api/typescript/JSONValue/index.md) | The input parameters for the tool |
| `options?` | [`DirectToolCallOptions`](/pr-cms-3708/docs/api/typescript/DirectToolCallOptions/index.md) | Optional configuration for this call |

#### Returns

`AsyncGenerator`<[`ToolStreamEvent`](/pr-cms-3708/docs/api/typescript/ToolStreamEvent/index.md), [`ToolResultBlock`](/pr-cms-3708/docs/api/typescript/ToolResultBlock/index.md), `undefined`\>

Async generator that yields ToolStreamEvents and returns ToolResultBlock