---
url: 'https://adk.nht.io/api/@nhtio/adk/forge/interfaces/RawArtifactTool.md'
description: 'Plain input object supplied to [`ArtifactTool`](https://adk.nht.io/api/@nhtio/adk/forge/classes/ArtifactTool) at construction time.'
---

# Interface: RawArtifactTool

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

Plain input object supplied to [ArtifactTool](../classes/ArtifactTool.md) at construction time.

## Remarks

Mirrors the base `RawTool` except `artifactConstructor` is forbidden — an `ArtifactTool`
emits a [@nhtio/adk!Tokenizable](../../common/classes/Tokenizable.md) directly into `ToolCall.results` and explicitly opts out of
`SpooledArtifact` wrapping. The forbidden field is enforced by [ArtifactTool.schema](../classes/ArtifactTool.md#property-schema)
at construction time.

## Properties

| Property                                         | Type                                                                                                               | Default value | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Defined in                                                                                                              |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|  `description`  | `string`                                                                                                           | `undefined`   | Human-readable description passed to the model to explain what the tool does.                                                                                                                                                                                                                                                                                                                                                                                          | [lib/classes/artifact\_tool.ts:40](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L40) |
|  `ephemeral?`     | `boolean`                                                                                                          | `false`       | When `true`, marks this tool as owned by a specific [@nhtio/adk!DispatchContext](../../types/interfaces/DispatchContext.md). **Remarks** `ArtifactTool` instances produced by `SpooledArtifact.forgeTools(ctx)` set this to `true` so that `ToolRegistry.pruneEphemeral()` drops them at ctx-completion.                                                                                                                                                               | [lib/classes/artifact\_tool.ts:56](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L56) |
|  `handler`          | [`ArtifactToolHandler`](../type-aliases/ArtifactToolHandler.md)                                                    | `undefined`   | Execution function. Returns a string or [@nhtio/adk!Tokenizable](../../common/classes/Tokenizable.md); the ADK wraps a bare string into a `Tokenizable` at the result-wrapping site.                                                                                                                                                                                                                                                                                   | [lib/classes/artifact\_tool.ts:44](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L44) |
|  `inputSchema`  | `Schema`                                                                                                           | `undefined`   | @nhtio/validation schema for the tool's input arguments.                                                                                                                                                                                                                                                                                                                                                                                                               | [lib/classes/artifact\_tool.ts:42](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L42) |
|  `meta?`               | [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)<`string`, `unknown`> | `undefined`   | Optional arbitrary metadata for this tool. Defaults to `{}`.                                                                                                                                                                                                                                                                                                                                                                                                           | [lib/classes/artifact\_tool.ts:46](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L46) |
|  `name`                | `string`                                                                                                           | `undefined`   | Unique identifier used in LLM tool definitions. Recommend lowercase snake\_case.                                                                                                                                                                                                                                                                                                                                                                                        | [lib/classes/artifact\_tool.ts:38](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L38) |
|  `onCollision?` | `"keep"` | `"replace"` | `"throw"`                                                                               | `'throw'`     | Self-declared merge collision policy honoured by `ToolRegistry.merge`. **Remarks** Forged artifact-query tools set this to `'replace'` so that merging multiple `Subclass.forgeTools(ctx)` outputs (whose base-method tools overlap by name) resolves silently — the descriptors, snapshot, and handler behaviour are interchangeable across subclasses, so replacement is a behavioural no-op.                                                                        | [lib/classes/artifact\_tool.ts:81](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L81) |
|  `trusted?`         | `boolean`                                                                                                          | `false`       | When `true`, declares that this tool's output should be treated as **trusted developer/user intent** rather than as untrusted third-party text when surfaced to the model. **Remarks** Forged artifact-query tools default to `false` because their results are derived from spooled artifact bodies — which may themselves be untrusted upstream tool output. The trust signal does not promote handle-query results above the trust tier of the underlying artifact. | [lib/classes/artifact\_tool.ts:69](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/classes/artifact_tool.ts#L69) |
