Skip to content

请教如何支持前端展示 中间过程(timeline) + 正文块 #992

@SAIKAII

Description

@SAIKAII

目前在使用 ADK 包的 ChatModelAgent 创建带工具的 Agent,在前端展示数据时遇到问题。

希望的展示形式是 timeline + (think)正文块。也就是首先会有一个可折叠的 timeline,上面每一个节点对应“用户输入”到“最终答案”中间的每一步,目前是只有“工具调用”(调用 A 工具[输入,输出])。

在 AI 输出内容时能把中间过程(工具调用)直接挂到 timeline 中作为其中的节点。最终答案则在正文块正常显示。
目前想到的办法与问题:

  1. 先在正文块输出内容,一旦判断这次输出是工具调用的话,就把正文块内容清除并在 timeline 中添加节点。会有明显的内容迁移的感觉,不太合适。
  2. 通过 Prompt 要求大模型在调用工具时不要输出原因,可以在第一个 chunk 就判断是否工具调用。但是不一定每个大模型都严格遵守,而且如果是思考模型,还是会先输出 reasoning_content,这个还是会发给前端。

这种展示形式使用 ADK 是否有技巧能实现?还是说需要另外其他实现方式?

类似下面这样的展示形式:
User Message
Assistant(expanded)
├─ ▶ Tool: query_metrics(expanded)
│ input: {...}
│ output: {...}
└─ ▶ Tool: render_chart(expanded)
output:
Answer:
(think)
CPU usage is 80%
[chart]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions