Runner

Runner

VeADK 中的智能体执行引擎

运行方法

快速运行

直接调用 Runner 中的 run 方法,可以执行 Agent:

agent_run.py
import asyncio

from veadk import Agent, Runner

agent = Agent()

runner = Runner(agent=agent)

response = asyncio.run(
    runner.run(
        messages="你好",
        session_id="tmp_session",
    )
)

生产部署版本

为实现自定义消息内容、获取运行时的中间事件,我们推荐您采用异步生成器的方式来运行 Agent,以便控制其运行时的中间事件。

自定义消息:

agent_run.py
from google.genai.types import Blob, Content, Part

user_message = Content(
  role="user",
  parts=[
    Part(
      text="请详细描述这张图片的所有内容,包括物体、颜色、布局和文字信息(如有)。"
    ),
    Part(
      inline_data=Blob(
        display_name=os.path.basename(image_path),
        data=read_png_to_bytes(image_path),
        mime_type="image/png",
      )
    ),
  ],
)

采用异步生成器的方式来获取中间事件:

agent_run.py
async for event in runner.run_async(
  user_id=runner.user_id,
  session_id=session_id,
  new_message=user_message,
  run_config=RunConfig(max_llm_calls=1),
):
  # process event

中间事件的格式详见这里

Runner 初始化参数

agent
BaseAgent | Agent
智能体实例,类型可以是 BaseAgent 或 Agent
short_term_memory
ShortTermMemory | None
默认为 None - 智能体的短期记忆
app_name
string
默认为 veadk_default_app - 应用名称
user_id
string
默认为 veadk_default_user - 用户 ID
upload_inline_data_to_tos
bool
默认为 False - 是否上传多模态数据(例如图片)到 TOS

run 方法参数

messages
RunnerMessage
要处理的消息实例
user_id
string
默认为空字符串 "" - 用户 ID
session_id
string
默认为 tmp-session-{formatted_timestamp()} - 会话 ID,默认使用临时时间戳生成
run_config
RunConfig | None
默认为 None - 运行配置,可提供 RunConfig 实例
save_tracing_data
bool
默认为 False - 是否保存追踪数据
upload_inline_data_to_tos
bool
默认为 False - 是否上传多模态数据(例如图片)到 TOS,这将会暂时覆盖定义 Runner 类时的属性