# AiToolCall class

Namespace: [Grasshopper2.Components.Descriptive](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.components.descriptive.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public sealed class AiToolCall
```

A single tool invocation emitted by the model. Carries the tool name and the raw JSON-encoded arguments to be parsed by the tool-specific handler.

## Constructors

- [AiToolCall](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.descriptive.aitoolcall/ctor.md)

## Properties

- [ArgumentsJson](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.descriptive.aitoolcall/argumentsjson.md): JSON-encoded arguments matching the tool's parameter schema.
- [Id](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.descriptive.aitoolcall/id.md): Provider-assigned identifier for this invocation. Anthropic returns a string like "toolu_01ABC...", OpenAI returns "call_..." -- in both cases the same string must travel back in the matching tool_result so the model can correlate. Play-act backends generate a synthetic id so call sites do not need to care which backend produced the call.
- [Name](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.descriptive.aitoolcall/name.md): Name of the tool the model wants invoked, e.g. "Clarification".
