工具展示
Agent 调用业务自己的工具时,用 renderers.tools 按工具名登记它怎么显示。
四档
从改得最少到改得最多:
按已有的工具显示:alias
后端的工具名和内置认识的名字不一样时,让它按内置的某个工具显示:
内置认识的工具:read_file、write_file、edit_file、delete_file、exec、web_search、web_fetch、grep。
一次匹配一组:match
工具名没有精确命中时,按模式匹配。适合一个 MCP 服务下的所有工具:
match 可以是正则,也可以是函数 (toolName) => boolean。正则依次检查原始名与规范化后的名字;函数只收到原始名。精确名称和别名优先于模式,多个模式命中时采用登记顺序中的第一个。
组件拿到的参数
detail 与 render 的组件拿到同一组参数(ChatkitToolViewProps):
配置项
配置项类型默认说明
settings.toolFlow
"group" | "step" | "none"'group'执行过程的显示方式:`group` 合并成可折叠的执行流;`step` 逐个工具一行;`none` 不显示。说明
- 工具名先统一格式再查:驼峰、连字符、点、空格都视为相同,并去掉
mcp__服务名__前缀。getWeather、get-weather、mcp__tools__get_weather都能命中get_weather。 - 给内置工具登记时,只改写了的部分,其余保持内置的显示。
- 同时写了
detail与render时,render生效。 hidden只隐藏工具展示,不会禁止调用或阻止参数、结果到达浏览器;敏感内容应在后端或适配器中处理。- 自定义组件需处理运行中、失败、取消和空结果;不能把所有非运行中状态都视为成功。结果结构应按具体工具校验。
- 工具调用属于执行过程:这一轮完成后随执行过程收起,点状态行展开回看。要一直显示在回答里的内容用业务卡片。
- 执行流整体的显示方式(合并、逐个、不显示)用
settings.toolFlow,见思考与工具调用。