Skip to main content
Runner 负责运行智能体,并连接会话存储、工具和追踪能力。VeADK 在 Google ADK 的事件执行接口上提供 run() 简化入口;需要逐个处理事件时,使用 run_async()

最简运行

先完成安装和模型配置。将示例保存为 app.py,运行 python app.py,终端应输出模型的文本回复
app.py
run() 是异步方法,需要 await 或 asyncio.run()。默认使用进程内会话;已有会话会按相同的应用、用户和会话标识继续对话,进程退出后内存中的会话丢失
显式为每段对话分配 session_id,不要依赖默认临时值生成独立会话。run() 返回执行过程中最后保留的文本片段,可能为空;多部分输出、工具事件和完整结构化结果应通过 run_async() 处理

多租户隔离

app_name、user_id 和 session_id 用于定位数据,不是身份验证或访问授权机制。服务端应从已验证的请求身份取得用户标识,不能直接相信客户端任意传入的 user_id

流式处理事件

run_async() 返回异步事件流。与 run() 不同,调用前需创建对应会话。下面使用 StreamingMode.SSE 请求流式事件,但仅打印完整回复,避免把增量片段和完整文本重复显示
stream.py
保存为 stream.py,运行 python stream.py。若接入工具,终端还会显示工具调用和返回事件名称。增量输出取决于模型和运行时是否支持流式传输;读取事件流不等于所有运行时都会逐 token 返回 要逐步显示文字,可将 partial=True 事件用于更新当前回复,并在完整事件到达时替换为完整文本。不要把两者直接追加到同一条输出

解析事件

part.text 是文本,part.thought 标记思考内容,part.function_call 和 part.function_response 分别表示工具调用和返回。展示给最终用户时应按内容类型处理,避免直接输出含凭证或敏感数据的完整工具参数

参数与行为

Runner 构造参数

可通过关键字参数传入 ADK 的 session_service、memory_service、credential_service。显式服务优先于智能体配置;自行传入会话服务时,应通过该服务创建会话并使用 run_async(),避免会话创建与读取指向不同后端。其他 ADK 参数见 Runner 参考

run 参数

VeADK run() 达到最大模型调用次数时返回空字符串。需要区分调用上限、无文本回复与其他失败时,应消费 run_async() 事件并处理执行错误
最后修改于 2026年9月19日