Files
MujicaUI/docs/components/262-tool-call-group.md
T

48 lines
1.4 KiB
Markdown

# 262 ToolCallGroup 工具调用组
## 用途
把连续的工具调用折叠成一组,标题行显示调用次数、总耗时与失败数。
## 最小示例
```go
open := false
calls := []mujica.ToolCall{
{ID: "a", Name: "list_dir", State: mujica.AgentDone, Duration: 300 * time.Millisecond},
{ID: "b", Name: "read_file", State: mujica.AgentFailed, Error: "not found"},
}
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
mujica.ToolCallGroup(c, &open, calls, mujica.ToolCallGroupOptions{})
}
ui.Render(view, 400, 300, 1)
```
签名:`func ToolCallGroup(c *ui.Context, open *bool, calls []ToolCall, opts ToolCallGroupOptions) ChoiceResult`。`open` 为 nil、调用 `ID` 为空或重复时 panic。
## 参数
| 字段 | 类型 | 默认值 | 含义 |
| --- | --- | --- | --- |
| `Title` | `string` | “N 次工具调用” | 替换内置标题。 |
| `Still` | `bool` | `false` | 停止执行中动画;系统减少动画时也自动静止。 |
## 状态
- 组的状态:有调用执行中为执行中,否则有失败为失败,否则为完成。
- 失败数以文字“N 次失败”显示。
- 展开后每次调用用 ToolCallCard 显示。
## 事件
- `Changed()`:用户展开或折叠该组。
## 键盘操作
- Tab 到组标题,Enter / Space 展开或折叠;组内卡片各自可折叠。
## 限制
- 总耗时是各调用耗时之和,不扣除并行重叠。