---
url: 'https://adk.nht.io/api/@nhtio/adk/forge/type-aliases/ArtifactToolHandler.md'
description: 'The execution function for an [`ArtifactTool`](https://adk.nht.io/api/@nhtio/adk/forge/classes/ArtifactTool).'
---

# Type Alias: ArtifactToolHandler

```ts
type ArtifactToolHandler = (
  args: unknown,
  ctx: DispatchContext,
  meta: Registry,
) => string | Tokenizable | Promise<string | Tokenizable>;
```

Defined in: [lib/classes/artifact\_tool.ts:21](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L21)

The execution function for an [ArtifactTool](../classes/ArtifactTool.md).

## Parameters

| Parameter | Type                                                           |
| --------- | -------------------------------------------------------------- |
| `args`    | `unknown`                                                      |
| `ctx`     | [`DispatchContext`](../../types/interfaces/DispatchContext.md) |
| `meta`    | [`Registry`](../../common/classes/Registry.md)                 |

## Returns

| `string`
| [`Tokenizable`](../../common/classes/Tokenizable.md)
| `Promise`<`string` | [`Tokenizable`](../../common/classes/Tokenizable.md)>

## Remarks

Identical to the base tool handler except the return type is narrowed to
`string | Tokenizable | Promise<string | Tokenizable>`. Forged artifact-query tools emit
model-visible strings — the ADK wraps a bare-string return into a [@nhtio/adk!Tokenizable](../../common/classes/Tokenizable.md)
at the result-wrapping site so downstream code can rely on
`ToolCall.results instanceof Tokenizable` for every `ArtifactTool` invocation.
