思考与工具调用

适配器提供的思考片段和工具调用默认合并成可折叠的执行流,无需额外开启。只有普通正文时不会凭空生成思考或工具步骤。

tool-flow.tsx
import { Chatkit, useChatRuntime } from '@volcengine/chatkit';
import { createMockAdapter } from '@volcengine/chatkit/adapters/mock';
import '@volcengine/chatkit/styles.css';

const adapter = createMockAdapter({ getScenarioId: () => 'all-tools' });

// 思考与工具调用合并成一个可折叠的执行流:分组头、步骤行、展开区(入参 / 结果)。
// toolFlow 换成 'step' 是逐个工具一行,'none' 是不显示执行过程。
export default function ToolFlow() {
  const runtime = useChatRuntime({ sessionId: 'tool-flow', adapter });
  if (!runtime) return null;
  return (
    <Chatkit
      runtime={runtime}
      settings={{
        toolFlow: 'group',
        tools: { groupDefaultExpanded: true },
        recommendations: ['把配置文件改一下并跑一遍测试'],
      }}
    />
  );
}
执行流:各类工具的内置显示(命令行、diff、网页结果、文件卡片…)新窗口打开

运行中执行流的标题带流光;结束后收起成一行汇总,展开能看每一步的入参和结果。 一轮结束后,整段执行过程随运行状态行收起,只留最终回答。

三种显示方式

settings.toolFlow效果
'group'(默认)连续的思考与工具合并成可折叠的执行流
'step'每个工具单独一行
'none'不显示工具调用
<Chatkit sessions={sessions} settings={{ toolFlow: 'step', tools: { detailDefaultExpanded: true } }} />

思考过程

reasoning.tsx
import { Chatkit, useChatRuntime } from '@volcengine/chatkit';
import { createMockAdapter } from '@volcengine/chatkit/adapters/mock';
import '@volcengine/chatkit/styles.css';

const adapter = createMockAdapter({ getScenarioId: () => 'long-reasoning' });

// 思考过程:输出中展开,结束后和工具调用一起收进执行流。这里让它结束后也能直接看到:
// 这一轮完成后不收起执行过程,执行流默认展开,其中的思考保持展开。
export default function Reasoning() {
  const runtime = useChatRuntime({ sessionId: 'reasoning', adapter });
  if (!runtime) return null;
  return (
    <Chatkit
      runtime={runtime}
      settings={{
        reasoning: { visible: true, defaultExpanded: true },
        recommendations: ['仔细想想再回答'],
      }}
    />
  );
}
长思考:输出中展开;示例里让它结束后保持展开新窗口打开

思考输出中一直展开,结束后和相邻的工具调用一起收进执行流。要在结束后直接看到思考内容,设 settings.reasoning.defaultExpanded: true:

<Chatkit sessions={sessions} settings={{ reasoning: { defaultExpanded: true } }} />

打开后,这一轮完成时执行过程不再收起,执行流默认展开。这两项也可以单独设置,单独设置的优先:

配置作用
settings.runStatus.collapseOnComplete这一轮完成后是否收起执行过程
settings.tools.groupDefaultExpanded执行流默认是否展开

不想显示思考过程时用 settings.reasoning.visible: false。

toolFlow: 'none' 只隐藏工具调用,不会隐藏思考,也不会阻止后端调用工具;同时隐藏思考需另外设置 reasoning.visible: false。

配置项

配置项类型默认说明
settings.toolFlow"group" | "step" | "none"'group'执行过程的显示方式:`group` 合并成可折叠的执行流;`step` 逐个工具一行;`none` 不显示。
settings.tools.groupDefaultExpandedbooleanfalse执行流默认是否展开。没有设置时跟着 `reasoning.defaultExpanded` 走。
settings.tools.detailDefaultExpandedbooleanfalse单个工具的详情(入参 / 结果)默认是否展开。
settings.reasoning.visiblebooleantrue是否显示思考过程。
settings.reasoning.defaultExpandedbooleanfalse思考结束后是否保持展开(输出中始终展开)。打开后,这一轮完成时执行过程不再收起、执行流默认展开; 单独设置了 `runStatus.collapseOnComplete` 或 `tools.groupDefaultExpanded` 的,以单独设置为准。
renderers.toolsRecord<string, ChatkitToolRenderer>—工具:按工具名登记。

说明

  • 内置认识的通用工具:read_file、write_file、edit_file、delete_file、exec、web_search、web_fetch、grep。其他工具用通用样式显示。
  • 业务自己的工具怎么显示,见工具展示。
  • 工具调用的状态(运行中、完成、失败、已取消)由适配器给出,界面照着显示。