前置条件
- 已安装
veadk-python==1.0.8; - 已登录或配置火山引擎访问凭据;
- 项目包含可导入的
root_agent; - 不要把
.env、API Key 或访问凭据提交到代码仓库。
创建应用
Studio 生成的项目会调用create_agentkit_app。手动创建项目时也可以使用相同入口:
app.py
Runtime 身份绑定
create_agentkit_app 接受可选的 identity 参数,用于将 AgentKit Runtime 身份边界传递给应用。传入后,AgentKit 会在 VeADK 智能体或工具代码执行前,验证并绑定入站用户身份。不传入 identity 时,应用行为与此前一致。
VeADK 将 /ping 健康检查端点排除在身份绑定之外,该端点始终返回 {"status": "ok"};其余业务和内省端点均纳入身份验证范围。
app.py
动态 A2A 运行接口
create_agentkit_app 构建的应用覆盖标准 AgentKit 运行接口(/run、/run_sse、/invoke),使其支持动态 A2A 智能体发现。当智能体通过 REGISTRY_SPACE_ID 等环境变量配置了 AgentKit 智能体中心后,运行接口会根据用户输入从中心动态发现匹配的远程智能体,并在当前轮次中将其作为可调用工具使用。未配置智能体中心时,运行接口行为与标准 AgentKit 运行接口一致。
运行接口在指定会话不存在时会自动创建会话,不再返回 404。
会话级能力叠加
VeADK 1.0.9 起,通过create_agentkit_app 构建的应用会在 /harness 前缀下挂载一组会话级能力叠加接口。调用方可为某个会话临时挂载内置工具或远程技能,再通过 /harness/run_sse 运行应用了叠加内容的智能体。叠加内容仅对指定会话生效,不修改根智能体定义,也不会写入其他会话。
能力分为两类:
- 内置工具:来自 VeADK 内置工具目录,按工具名称引用。
- 远程技能:来自公域 Skill Hub 或 AgentKit Skill 中心,按技能名称与技能来源标识引用。
custom 为 false)且不可移除;通过叠加接口挂载的能力标记为会话能力(custom 为 true),可单独移除。
何时使用
- 需要在不重新部署 Runtime 的前提下,为单个会话临时启用额外工具或技能。
- 需要按会话隔离不同的能力组合,避免互相影响。
依赖
- 智能体需具备
tools属性;当叠加内容非空但根智能体没有tools时,挂载会失败。 - 列举与挂载远程技能需要火山引擎凭证;本地通过
VOLCENGINE_ACCESS_KEY与VOLCENGINE_SECRET_KEY提供,部署到 VeFaaS 时使用绑定的 IAM Role。
端点
使用示例
为会话挂载一个内置工具:/harness/run_sse 返回的事件格式与标准 /run_sse 一致,每个事件以 data: 前缀的 JSON 行发送。
参数
POST /capabilities 请求体:
GET /harness/skills/spaces 与 GET /harness/skills/spaces/{space_id}/skills 通过 region 查询参数指定地域:spaces 默认 all(合并北京、上海两个地域),技能列表默认 cn-beijing。
GET /harness/skills/findskill 支持以下查询参数:
限制
- 基础能力不可移除;
capability_id以base:开头时返回 409。 - 同名工具或技能不可重复挂载;与根智能体已有能力重名时返回 409。
expected_revision不匹配当前revision时返回 409,调用方应重新查询后重试。- 会话能力仅在挂载后会话的运行中生效;运行结束后不会持久化到根智能体。
- 公域 Skill Hub 搜索地址默认为
https://skills.volces.com/v1/skills,可通过环境变量FINDSKILL_SEARCH_URL覆盖。
初始化与部署
在项目目录中运行:veadk agentkit 与 AgentKit CLI 使用相同的项目配置和工作流。完整命令、参数与破坏性操作说明见 AgentKit CLI 文档。