Debug Server 使用指南
概述
Debug Server 是 trpc-agent-go 框架提供的一个调试工具。 它可以帮助开发者快速测试和调试 Agent 功能。 它可以和 ADK Web UI 结合,从而允许你通过可视化的交互界面来验证 Agent 的行为和工具调用。
主要功能
- 可视化调试界面:通过 ADK Web UI 提供友好的图形界面
- 实时交互测试:支持与 Agent 进行实时对话和工具调用
- 流式响应:支持 Server-Sent Events (SSE) 流式响应
- 会话管理:支持创建和管理多个对话会话
- 工具验证:可以直观地测试和验证 Agent 的各种工具功能
设计说明与适用范围
- 目标定位:用于配合 ADK Web 进行快速可视化调试,不推荐直接用于生产环境。
- Runner 构造:Debug Server 接收
Agent
,并根据前端请求的应用名在服务端延迟创建runner.Runner
;不支持让用户在此处手动传入Runner
实例。 - 单一会话后端:由于 Debug Server 自身提供会话 REST(list/create/get),要求使用同一个
session.Service
作为全局后端,并在内部创建的所有 runner 之间共享。- 通过
debug.WithSessionService(...)
配置(默认内存实现)。 - 为保持一致性,Debug Server 会在创建 runner 时强制注入同一会话后端(追加
runner.WithSessionService(s.sessionSvc)
),覆盖你通过WithRunnerOptions
传入的会话后端。 - 此处不支持按 app/runner 的多会话后端。
- 通过
- 生产建议:面向生产(如 AG‑UI)建议自建接受预配置
runner.Runner
的服务,或按需使用server/a2a
,以便完整控制会话/记忆/工件、鉴权与扩展能力。
架构图
数据流向:
使用步骤
- 创建 Agent。
- 将 Agent 作为构造参数,创建 Debug Server,Debug Server 本身能提供 http Handler 函数。
- 创建 tRPC HTTP 服务,将 Debug Server 的 http Handler 注册为 tRPC HTTP 服务的处理函数。
- 启动 tRPC HTTP 服务作为后端服务。
- 安装 ADK Web UI,方便前端可视化调试
- 启动 ADK Web UI,指定 tRPC HTTP 服务为后端服务
- 可以在浏览器前端,直接通过 ADK Web UI 输入用户请求,进行调试,前端页面会展示可观测数据。。
具体可以运行的例子见examples/debugserver
调试结果展示
通过 ADK Web UI,您可以直接测试调用场景,Web 界面会显示 event 和 trace 信息。 例如下面展示了调试一个具备计算器功能的 agent 的情况。