Components
Tool call
Status display for a tool invocation. Component key `tool-call`.
Tool call
tool-call is display-only: name, status lifecycle, optional arguments and result. No interaction events.
Live preview
Tool call
Status display for a tool invocation (pending → complete/error).
tool-call{
"q": "AgentsKit"
}"Found"
Demos use docs host CSS. Package primitives are intentionally unstyled so your product theme owns the look.
When to use
- Show what the agent is doing mid-turn
- Surface tool args/result in a consistent panel across shells
Prefer something else when
- Human must approve the tool →
approval-request+ action confirmation - Percent progress of a job →
progress
Props (schema)
| Field | Type | Notes |
|---|---|---|
name | string | Tool display name |
status | pending | running | complete | error | Lifecycle |
arguments | record? | JSON-serializable args |
result | json? | Optional result payload |
Frame example
code
{
"protocol": "agentskit.chat.component",
"version": 1,
"type": "render",
"componentKey": "tool-call",
"instanceId": "tool-call-fixture",
"props": {
"name": "Search",
"status": "complete",
"arguments": { "q": "AgentsKit" },
"result": "Found"
},
"fallback": {
"kind": "tool-call",
"summary": "Search completed."
}
}Events
No events. This key is display-only — do not invent host callbacks.
Host wiring
Display-only — register the component so the frame resolves; no interact handler is required.
code
import { ToolCallComponent, defineComponentManifest, defineChat } from '@agentskit/chat'
const definition = defineChat({
id: 'app',
components: defineComponentManifest([ToolCallComponent]),
chat: { adapter },
})For agents
| Field | Value |
|---|---|
componentKey | tool-call |
| Export | ToolCallComponent |
| Protocol | agentskit.chat.component v1 |
| Envelope | type: "render" + instanceId + props + fallback |
| Events | none (display-only) |
| Host callback | none — display only |
| Interaction | Do not emit user events for this key |
| Fallback | Always include fallback.kind + fallback.summary |
Do not invent props or events outside the schema. Unknown keys and invalid props stay inert.
Shells
| Shell | Notes |
|---|---|
| React / Vue / Svelte / Solid / Angular | Same frame; replaceable slots |
| React Native | Accessibility roles from the catalog definition |
| Ink | Terminal-safe fallback when interactive chrome is limited |
Related
- Approval request — Human gate for side effects
- Progress — Percent complete
- Action policy — Tool execution rules
- Live lab — all components side-by-side