You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADK Web中如何展示多层嵌套AgentTool的调用过程以方便调试?

问题描述

在ADK中搭建了一套多Agent框架用于查询BigQuery数据,因数据仓库结构复杂,设计了多层嵌套Agent:

  • 编排器(orchestrator)Agent调用作为AgentTool的知识图谱构建器(knowledge graph builder)
  • 知识图谱构建器又调用作为其工具的数据浏览器(data browser),执行记录扫描、distinct、max、min、avg等操作来熟悉表内数据,最终返回数据表列表及使用说明

当前问题:编排器调用知识图谱构建器时,后者会正常调用数据浏览器,但ADK Web界面仅显示对知识图谱构建器的调用记录,无法看到数据浏览器的调用过程,仅显示忙碌状态后直接返回知识图谱构建器的响应。

需求:如何让数据浏览器的调用过程也在UI中显示,以便便捷调试Agent?

解决方案

以下是几种可行的实现方法:

  • 启用嵌套工具调用的全量日志追踪
    在ADK的Agent配置里,找到tool_call_logging参数,将其设置为full模式,同时开启nested_call_visibility。这样所有层级的工具调用(包括数据浏览器的每一步操作)都会被记录并同步到UI。示例配置:

    agent_config = {
        "tool_call_logging": "full",
        "nested_call_visibility": True
    }
    
  • 修改AgentTool的返回配置
    调整知识图谱构建器作为AgentTool的定义,开启include_subtool_calls选项,让它把数据浏览器的调用详情包含在返回结果中,而不是只返回最终汇总信息。示例代码:

    KnowledgeGraphBuilderTool = AgentTool(
        name="knowledge_graph_builder",
        description="通过调用数据浏览器构建知识图谱",
        include_subtool_calls=True  # 启用子工具调用详情返回
    )
    
  • 调整ADK UI的显示设置
    在ADK Web界面的设置面板中,找到「工具调用可视化」选项,将显示层级改为「所有层级」,UI会自动展开所有嵌套的工具调用流程,展示数据浏览器的每一步操作。

  • 在数据浏览器工具中添加自定义日志
    在数据浏览器的实现代码里,手动通过ADK的日志接口上报每一步操作的详情,确保这些信息能被UI捕获展示。示例代码:

    from adk.logging import log_tool_call
    
    def data_browser_operation(operation_type, table_name):
        # 执行BigQuery操作
        operation_result = run_bigquery_query(operation_type, table_name)
        # 上报工具调用日志
        log_tool_call(
            tool_name="data_browser",
            operation=operation_type,
            target_table=table_name,
            operation_result=str(operation_result)
        )
        return operation_result
    

内容的提问来源于stack exchange,提问作者Boris Mulder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:12:33