在工作台中选择智能体时,Studio 会先完成会话列表、智能体信息、能力和自动评测状态的加载,再切换可见选中项,避免切换过程中出现中间加载状态。
在本地启动
从智能体目录的上一级目录运行:--open 会在服务就绪后打开 http://127.0.0.1:8000。未传入该选项时,Studio 只启动服务,不自动打开浏览器。
火山引擎凭证用于工作台中的模型、云资源查询和 AgentKit 部署。生产环境应通过环境变量或密钥管理服务提供凭证,不要把凭证写入项目文件。
使用 BytePlus 作为云服务商时,传入 --provider byteplus,并通过 BYTEPLUS_ACCESS_KEY、BYTEPLUS_SECRET_KEY 和可选的 BYTEPLUS_SESSION_TOKEN 环境变量提供凭证;Runtime 列表默认查询的地域为 BYTEPLUS_REGION 或 ap-southeast-1。未显式指定 --provider 时,本地 CLI 始终使用火山引擎。
Studio 持久化存储
视频创作、自动评测优化和产物持久化等 Studio 能力需要持久化对象存储来保存参考素材、生成结果、优化项快照和对话产物。Studio 使用 TOS 作为持久化存储后端。未单独配置发布存储时,技能发布也会复用持久化存储桶,详见技能发布存储。云端部署
veadk studio deploy 部署时会自动创建或复用名为 veadk-studio-<账号 ID> 的私有 TOS 存储桶,存储地域与部署地域一致。该桶名由云账号 ID 确定,使重复部署幂等。管理员也可以通过 VEADK_STUDIO_TOS_BUCKET 环境变量显式指定已有存储桶名称;指定时该存储桶必须已存在于部署地域,否则部署会报错。
一个存储桶创建在某个地域后,不能以同名在其他地域重复创建。切换部署地域时,如果目标地域已存在同名存储桶则复用,否则需要显式指定该地域可用的存储桶。
本地启动
本地启动时,通过以下环境变量配置持久化存储:
两个变量均需设置,Studio 才会启用持久化存储。未配置时,依赖持久化存储的功能(如视频参考素材上传)会被禁用,并在对应位置显示「管理员未配置持久化存储」;纯文本功能不受影响。本地 Studio 使用已配置的火山引擎或 BytePlus AK/SK 访问存储桶。
旧的
VEADK_VIDEO_TOS_* 和 DATABASE_TOS_* 环境变量仍作为临时兼容回退:当 VEADK_STUDIO_TOS_BUCKET 和 VEADK_STUDIO_TOS_REGION 均未设置时,Studio 会尝试从旧变量读取存储桶、地域和端点。新部署只需配置 VEADK_STUDIO_TOS_* 两个变量。veadk-studio/v1/users/<编码用户 ID>/<命名空间>/<范围>/<资源 ID>/。视频参考素材使用 video/<素材角色>/<素材 ID>/ 命名空间,存储在该路径下的文件内容及 metadata.json。
自动评测生成的优化项快照存储在 veadk-studio/v1/evaluation-optimizations/<Runtime ID>/<应用名>.json 路径下,每个 Runtime 应用保留最新一份快照。
自定义品牌
使用--site-title 设置最多 16 个字符的系统名称,使用 --site-logo 指定本地图片或 HTTP(S) 图片 URL。Logo 会用于侧边栏、登录页和浏览器 favicon。浏览器页面标题会随当前界面动态变化:新会话首页只显示系统名称;进入对话后显示会话名称;进入自动化、系统信息、创建智能体、库、搜索等功能页时,标题为「系统名称 - 页面名称」。省略 --site-title 时使用默认名称 AgentKit Studio。
VEADK_SITE_TITLE 与 VEADK_SITE_LOGO 环境变量配置。部署到 VeFaaS 时可使用相同参数;网络图片会在部署时下载并打包,部署后的站点不依赖原图片 URL。
创建智能体
- 在「智能体」页面中点击「创建智能体」,在创建菜单中选择「从 0 快速创建」进入自定义配置,选择「智能模式」用自然语言描述目标由 Codex 构建,选择「从代码包添加和部署」上传已有项目,或选择「从存量项目迁移」将 LangChain、Dify 等框架的项目迁移至 VeADK。
- 配置模型、系统提示词、工具、记忆和知识库,并从 Skill Hub、本地上传或 AgentKit SkillSpace 添加技能。多智能体项目还可以配置顺序、并行、循环或 A2A 节点,并在画布中查看和编排智能体拓扑。
- 检查生成的项目文件,并在受限的临时进程中测试运行;需要离线使用时下载 ZIP。
- 在「优化」步骤中按需为智能体启用 Harness Sidecar 优化项;该步骤为可选,不勾选时不启动优化。
- 在「环境」步骤中选择需要预装到云端运行时镜像的命令行工具,或自定义构建镜像使用的 Dockerfile;该步骤为可选。
- 选择部署到 AgentKit,在工作台中观察构建镜像、部署和发布进度。部署完成后,智能体以已发布状态出现在工作台,后续可在同一 Runtime 上更新。
自定义创建中的资源选择器(如智能体中心、知识库集合)支持按关键词本地筛选:在下拉框中输入文字即可过滤当前已加载的选项。筛选只作用于已经加载的列表,不会改变地域、项目范围或刷新逻辑。
部署进入构建镜像阶段时,Studio 会在部署进度卡片中实时展示构建日志。日志在服务端完成凭据脱敏与篇幅截断后下发到浏览器,面板显示同步状态(同步中、已同步或读取失败)与行数,可展开、收起并复制内容;构建失败时失败原因会追加到日志末尾。日志同步依赖部署所用的火山引擎凭证,无法读取时面板显示失败状态,不影响部署继续进行。自定义创建和代码包部署均支持该能力。
部署进行期间,工作台详情页聚焦于部署进度:保留智能体标题并展示可滚动的部署进度面板,同时隐藏其余详情标签与内容;部署结束后恢复显示常规详情标签。自定义创建、代码包部署与更新已部署智能体均遵循该行为。
部署到 AgentKit 时,根智能体的描述会自动整理为符合 Runtime 规范的单行描述(至多 255 字节,去除换行、控制字符与不安全符号);完整描述保留在项目中,仅用于生成 Runtime 描述。若整理后的描述被 Runtime 拒绝,Studio 会去掉描述后重试创建,不影响其他配置。
智能体的系统提示词(
instruction)至多 40,000 个字符,超出时生成或测试项目会报错。模型选择
配置 LLM 智能体时,可在模型选择器中浏览当前账号在火山方舟已开通的模型,并选择目标模型。模型列表由 Studio 服务端从火山方舟获取,仅展示支持智能体调用的 LLM 和 VLM 模型,包含模型名称、展示名称、厂商和开通状态;已停用的模型不会出现在列表中。模型列表有缓存,需要获取最新状态时使用刷新按钮。 模型来源分为以下两类,Studio 根据模型 API 地址是否为当前云服务商的官方 Ark 端点自动判断:
使用 Ark 模型时,Studio 服务端会从当前账号的火山方舟 API Key 列表中选择一个用于调试运行和部署。默认选择与
MODEL_AGENT_API_KEY_NAME 匹配的 API Key,未匹配时使用列表中的第一个 Key。也可以在部署配置区手动选择指定的 Ark API Key:所选 Key 的明文由 Studio 服务端解析并注入运行环境,不会下发到浏览器。列表为空时需先在火山方舟控制台创建 API Key。
使用自定义模型地址时,发布页会在环境变量区域显示「自定义模型凭据」分组,为每个使用自定义地址的智能体提供必填的 API Key 输入框,可选项还包括模型提供方和模型 API 地址。输入的凭据仅用于本次发布,不保存在草稿中。生成的项目代码通过以下环境变量读取对应配置,并在 .env.example 中以占位符形式列出:
配置部署参数
在部署配置区选择发布区域和网络模式,并按需设置 Runtime 实例数。实例设置仅在创建新 Runtime 时出现,更新已有 Runtime 时不显示。更新已有 Runtime 时,发布区域和网络模式从现有 Runtime 读取并保持不变。
实例数必须为大于 0 的整数,且最小实例数不能大于最大实例数。当智能体的短期记忆后端为
local(in-memory)或未配置时,Studio 会将最大实例数默认设为 1,并提示多实例、进程重启或滚动发布可能导致会话丢失,建议改用基于数据库的持久化短期记忆存储。部署进度会根据实例范围显示相应阶段:当实例范围不是默认的 1~5 时,在创建 Runtime 后增加「更新实例配置」阶段。
创建新 Runtime 时,Studio 会根据根智能体名称自动生成 Runtime 名称(由英文字母、数字、下划线和连字符组成,长度 4–64 个字符),确保智能体与 Runtime 的命名一致且可预测。Runtime 名称可手动修改,Studio 会在部署前校验名称格式并检查是否与当前地域已有的 Runtime 重名;名称重复时部署会报错并提示修改。部署结果中会同时返回智能体名称和 Runtime 名称。
创建新 Runtime 时,访问鉴权默认为 API Key;如需改用用户身份验证,可在部署配置区选择 VeIdentity 用户池。Studio 服务端使用自身配置的火山引擎凭证加载当前账号可见的用户池列表,浏览器不接触凭证。列表中会标记当前 Studio 登录所用的用户池:选择该用户池时,Studio 会把登录后验证的 JWT 转发给 Runtime,调用方无需另行获取令牌;选择其他用户池时,调用方需使用该用户池签发的 JWT 访问 Runtime。用户池所在地域通过 VEIDENTITY_REGION 环境变量确定。火山引擎模式下未设置 VEIDENTITY_REGION 时,依次回退到 REGION 环境变量与默认地域 cn-beijing;BytePlus 模式固定为 ap-southeast-1。
配置构建资源
部署到 AgentKit 时,Studio 使用以下云资源完成镜像构建与发布:- TOS 存储桶:存放源代码包,供云端构建服务拉取。
- 容器镜像仓库(CR):存储构建产物镜像,包含实例、命名空间和镜像仓库。
- CodePipeline:管理云端构建流水线,包含 Workspace 和 Pipeline。
默认全部使用「自动创建」。选择「指定名称」或「选择已有」时,需填写或选择完整的资源信息;TOS 需指定存储桶,CR 需同时指定实例、命名空间和镜像仓库,CodePipeline 需指定 Workspace 和 Pipeline,缺项会在部署前校验失败并提示。
构建资源配置仅在创建新 Runtime 时出现。更新已有 Runtime 时,Studio 从 Runtime 标签读取上次部署所选资源并保持不变,不显示资源配置区。
账号 ID 和随机字符在部署时按当前云账号生成,页面仅展示名称模板。
选择「选择已有」时,Studio 服务端使用自身配置的火山引擎凭证加载当前账号在所选地域下的已有资源列表。TOS 存储桶和 CR 资源按名称展示并选择;CodePipeline Workspace 按 ID 选择,选中 Workspace 后加载其中的 Pipeline,仅展示与 AgentKit 构建流水线兼容的条目。列表支持按名称搜索和分页加载,加载失败时可重试。
配置智能体优化
自定义创建在「调试」与「环境」之间增加了「优化」步骤,用于为智能体启用 Harness Sidecar 优化。Harness Sidecar 在独立的受控运行时中执行智能体增强行为,应用进程本身不加载相关插件实现。Harness Sidecar 优化仅支持火山引擎账号。BytePlus 账号暂不支持优化项,保持优化项为空即可继续部署,普通 BytePlus 智能体不受影响。
选择「运维场景」时会自动加载 SQL 只读保护。优化组件按用途分为三组:
启用优化项后,发布步骤会要求补充所依赖的运行时配置:
- 勾选「上下文治理」「上下文与结果压缩」「回答校验与修复」或「Goal 任务控制」且使用火山方舟模型时,需要补充模型网关配置。Studio 自动填充模型提供方、模型 API 地址与模型名称,Ark API Key 由所选 API Key 注入,无需手动填写。
- 勾选「MCP 稳定性治理」时,需要填写 MCP 统一网关地址(
MCP_URLS)与 API Key(MCP_API_KEY)。
配置云上环境
自定义创建的生命周期依次为「架构」「调试」「优化」「环境」「发布」五个步骤。「环境」步骤位于优化与发布之间,用于选择需要预装到云端 Runtime 镜像的命令行工具,或自定义构建镜像使用的 Dockerfile。该步骤为可选:不选择任何工具且未自定义 Dockerfile 时,部署使用 AgentKit 默认镜像构建,生成的项目中不包含Dockerfile。
选择命令行工具
可在「环境」步骤中选择以下官方命令行工具,所选工具会被预装到部署镜像中:
选择任一工具后,Studio 会生成一份与云服务商对应的 Dockerfile 并加入生成的项目(文件路径为
Dockerfile)。该 Dockerfile 基于 AgentKit 提供的基础镜像(火山引擎使用北京地域镜像,BytePlus 使用新加坡地域镜像),安装所选工具所需的系统依赖,并从官方 GitHub Release 归档下载二进制文件,按 amd64 与 arm64 架构分别校验 SHA-256 后安装;Pandoc 通过系统包安装。镜像随后安装 Python 依赖、复制应用代码,入口为 python -m app。
生成的 Dockerfile 不包含任何访问密钥或凭据。工具所需的令牌等凭据应在部署后通过运行时环境变量提供,不要写入 Dockerfile。
自定义 Dockerfile
通过「环境」步骤底部的「高阶配置」可打开 Dockerfile 编辑器,直接编辑构建镜像使用的内容。
Dockerfile 至多 64 KiB,且不能为空;内容为空或超长时无法进入发布步骤,Studio 会提示并停留在「环境」步骤。
只要选择了工具或填写了自定义 Dockerfile,生成的项目就会包含
Dockerfile,部署时由云端构建服务使用。仅自定义 Dockerfile 而不选择任何工具时,同样会生成 Dockerfile 并原样使用。
智能模式
智能模式是一种基于自然语言目标的创建方式:在「添加智能体」中选择「智能模式」,用一段话描述智能体要解决的问题,沙箱中的 Codex 会自动判断意图,完成项目构建、调试和临时云端验证,生成可部署的源码产物。智能模式需要已配置开发沙箱 Tool(
SANDBOX_DEV 或 --sandbox-dev-tool-id)。未配置时该入口显示为「暂不可用」。veadk studio deploy 部署时默认自动创建该 Tool;本地启动时可手动指定已有 Tool ID。使用流程
1
描述目标
在「智能模式」页面输入目标描述,例如「创建一个能读取销售数据、生成周报并校验输出格式的 Agent」。如有影响结果的关键信息,Codex 会在开始前向你确认。
2
构建与验证
Studio 创建一个智能开发沙箱会话,Codex 在其中梳理目标与实现方式,编写、运行和验证智能体代码。构建过程中,进度消息以独立的进度指示器形式显示在对话中,与助手回复文本区分开;进度指示器在当前轮次结束后自动消失。交付物说明采用统一的结构化格式:先给出一句话结果摘要,随后按「已完成」「验证」「遗留问题」分节列出具体内容。开发环境最多保留 8 小时,可在同一会话中持续优化。
3
查看与部署产物
构建完成后,对话中出现交付物卡片,展示智能体名称、入口文件、文件数量、产物大小和验证状态。已通过云端验证的产物标记为「已验证交付物」并展示通过的检查项数量;未经验证的产物标记为「生成的 Agent 源码」。在卡片中可查看源码文件、下载 ZIP 或直接部署到 AgentKit Runtime。
部署已验证源码
从智能模式部署时,源码由服务端从已验证的交付物中物化,浏览器无法替换文件,仅支持创建新 Runtime。部署页面展示 Runtime 名称(可修改,需符合 4–64 个字符、仅含英文字母、数字、下划线和连字符的格式)、入口文件、产物校验值等信息,并支持选择发布区域和网络模式。部署时 Runtime 名称取自交付物中的智能体名称,资源标签会记录来源为智能开发。会话管理
智能开发会话出现在侧边栏的历史会话列表中,与普通对话混合并按时间排列。会话进行中显示「正在构建」状态;可随时切换到其他页面,返回后恢复会话。恢复或重新打开已结束的会话时,对话历史仅展示用户消息和助手回复,内部的意图判断与任务调度过程不会显示。已结束的会话可重新打开继续对话或删除,删除进行中的会话需先停止当前构建。智能开发过程中的工具调用、思考内容和进度消息在发送到浏览器前会经过服务端脱敏:任务凭据和私有路径会被移除,不会出现在浏览器中。
从代码包添加和部署
代码包部署是一种独立的创建方式:在「添加智能体」中选择「从代码包添加和部署」,上传一个已有的智能体项目压缩包,即可在 Studio 中查看或编辑其文件并直接部署到 AgentKit,无需逐项配置模型、工具和技能。适合把在外部编写好的 VeADK 项目快速上线,或对已有项目做少量调整后重新部署。1
上传代码包
在「添加智能体」菜单中选择「从代码包添加和部署」,点击上传区域或拖拽文件即可选择
.zip 压缩包。压缩包最大 50 MB,解压后文件数不能超过 800 个。启动入口默认为根目录的 app.py;如果压缩包根目录包含 agentkit.yaml 且其中声明了 common.entry_point,则以该配置指定的文件作为启动入口。2
查看或编辑文件
上传成功后,Studio 会列出已识别的文件数量,并按压缩包文件名生成项目名称(符合 Google ADK 命名规则:以英文字母或下划线开头,仅含英文字母、数字和下划线,不使用保留名
user,长度不超过 64 个字符)。点击「查看文件」可在代码浏览器中预览或编辑文件内容;需要替换内容时重新上传压缩包即可。3
配置部署参数
在部署配置区选择发布区域和网络模式,与自定义创建的部署页一致。代码包部署不显示智能体拓扑和飞书渠道开关。
4
部署到 AgentKit
选择「部署」后,Studio 按四个阶段展示进度:上传代码包、镜像打包、创建 Runtime 和发布服务。每个阶段完成或失败时会在部署进度区显示对应状态。
Studio 会对压缩包做安全处理:自动忽略
__MACOSX 目录与 .DS_Store 文件;当全部文件位于同一个顶层目录时,会去掉这层包裹目录后再校验入口。包含绝对路径、空段、.、.. 段或空字节的条目会被拒绝;重复文件路径也会报错。启动入口文件必须位于去除包裹目录后的根目录。从存量项目迁移
存量项目迁移是一种独立的创建方式:在「添加智能体」中选择「从存量项目迁移」,上传一个已有的智能体项目压缩包,Studio 会在 Dev Sandbox 中自动分析项目框架和入口,生成可部署的 VeADK 项目。 迁移支持以下框架:1
上传项目压缩包
在「添加智能体」菜单中选择「从存量项目迁移」,上传一个
.zip 压缩包。压缩包最大 50 MB。2
自动分析
Studio 创建一个用户独占的 Dev Sandbox Session(有效期 1 小时),调用预装的 Codex 对上传项目进行只读分析,识别框架、入口文件和迁移边界。分析结果包含每个框架的置信度和证据(文件路径与行号)、推荐框架与入口、需要用户确认的问题,以及迁移边界(包含和排除的文件)。
3
确认迁移参数
分析完成后,用户需确认框架、入口文件(Structured 框架必填)和应用名称,回答分析中提出的开放问题,并确认迁移边界后开始迁移。
4
执行迁移
Structured 框架运行
ak migrate 直接转换;Dify 和 Any 框架在同一个 Dev Sandbox Session 中由 Codex 辅助执行 ak migrate --execution in-place。迁移过程中的状态、日志和产物均保存在 Session 内。5
预览、下载或部署
迁移完成后,可在 Studio 中预览迁移产物文件、下载 ZIP,或直接部署到 AgentKit。部署时 Studio 服务端从当前用户的 Session 中解析并校验迁移产物,不依赖浏览器提交的文件。
从迁移产物部署到 AgentKit 时,Studio 会根据当前云服务商自动适配模型环境变量(
MODEL_AGENT_API_BASE、MODEL_AGENT_NAME 和 MODEL_NAME),确保迁移产物在目标云环境下使用正确的模型端点和模型名称。分析与迁移过程中,Studio 在「Codex 执行动态」面板中以结构化形式展示 Codex 的执行进展:分析计划与迁移计划按条目显示完成状态与进度,命令执行、文件更新、外部工具调用、网络搜索和子任务协作分别显示输入、输出与退出码或错误信息,并在执行异常时展示错误详情。所有动态内容在发送到浏览器前均经过服务端脱敏,密钥、令牌等敏感字段会被移除。
添加技能
创建智能体时可从以下来源添加技能,添加后技能文件写入生成项目的skills/ 目录:
- Skill Hub:在火山引擎公开技能仓库中按关键词检索技能并添加。
- 本地上传:拖入文件夹或选择 ZIP 包。每个技能目录需包含
SKILL.md;Studio 检查文件是否存在、文件数量、大小和路径安全,并自动忽略__MACOSX目录中的 macOS 元数据文件,完整的 frontmatter 与技能格式由 ADK 在加载时校验。生成项目中的技能目录名取自SKILL.md的name字段或上传目录名。 - AgentKit SkillSpace:浏览当前账号可见的技能空间,选择技能及其版本。
VOLCENGINE_ACCESS_KEY 与 VOLCENGINE_SECRET_KEY 提供访问权限;部署到 VeFaaS 时使用绑定 IAM Role 的临时凭证。启用 SSO 登录后,浏览技能空间需要先完成 Studio 登录。
技能空间列表默认跨地域返回当前账号可见的全部空间;选择某个空间后,按该空间所在地域加载其中的技能列表。需要重新获取列表时使用刷新按钮。
本地上传不再在导入阶段强制校验
SKILL.md 的 name 与 description 格式,也不要求目录名与 name 一致。如果技能在运行时报错,检查 SKILL.md frontmatter 是否符合 ADK 技能要求。从 AgentKit SkillSpace 添加技能时,若云端版本提供完整文件包,Studio 会下载其中的
SKILL.md、脚本、参考文档和资源;未提供完整包时仅使用 SKILL.md。单个智能体可添加的技能数量没有固定上限。智能生成智能体配置
自定义创建的构建画布上方提供「智能生成」入口。在输入框中用一句自然语言描述目标,例如「创建一个短视频生产智能体,依次完成趋势调研、脚本编写、素材生产、视频生成和质量复核」,点击「智能生成」即可。 Studio 调用doubao-seed-2-0-lite-260428 模型,根据需求生成一份经过校验的完整智能体配置草稿并填入画布,生成过程会消耗 Token。
生成结果会替换当前画布与属性配置。如果画布存在未保存的修改,Studio 会先要求确认是否继续。
生成结果的结构
生成的配置遵循以下规则:- 优先使用 LLM 智能体作为根智能体,使其能够直接推理并灵活响应用户需求;不会仅因需求涉及多个任务或步骤就选择编排型根智能体,仅在需要严格控制执行流程时才使用编排型智能体作为根。
- 编排型智能体(顺序、并行、循环)只负责调度子智能体,不包含模型、提示词、工具、记忆、知识库或链路观测配置。
- LLM 智能体始终为叶子节点,自动填充名称、描述、系统提示词、模型和工具,且不能再嵌套子智能体。
- 生成的 LLM 智能体统一使用
doubao-seed-2-1-pro-260628模型。 - 编排型智能体的迭代上限默认为
3;循环型智能体按需求中指定的循环上限设置。 - 所有智能体与自定义工具名称为全局唯一的 snake_case Python 标识符。
- 仅在需求需要时启用工具,不会为只做审查的智能体分配媒体生成工具。
- 智能生成不配置记忆、知识库与链路观测。生成的草稿中这些能力始终处于关闭状态,对应后端使用默认值(记忆使用
local,知识库使用viking);如需启用,请在生成后于画布中手动配置。
生成配置不会为 LLM 智能体分配企业知识库搜索工具。记忆、知识库与链路观测需在生成后于画布中按需启用,各后端的完整参数见对应组件页面。
使用 BytePlus 作为云服务商时,
web_search 和 parallel_web_search 不出现在自定义创建和智能生成的内置工具列表中;火山引擎模式下不受影响。未决项
生成结果会列出尚未确定的资源或标识(如实例 ID、URL、凭证、MCP 服务或技能 ID),Studio 不会虚构这些信息。生成后需在画布中按需补充实际资源。使用步骤
1
输入需求
在构建画布上方的输入框中用自然语言描述目标,输入长度上限为 8000 字符。
2
生成配置
点击「智能生成」。生成期间输入框置灰,完成后画布填入新的配置草稿,并显示一条摘要说明。
3
检查未决项
查看生成结果中的未决项提示,按需在画布中补充实际资源或标识。
4
调整与测试
像自定义创建一样检查、编辑配置,然后生成项目并启动临时测试,或下载 ZIP、部署到 AgentKit。
权限与失败处理
启用角色访问控制时,智能生成仅对developer 和 admin 开放。
生成失败时 Studio 会弹窗提示。常见情况包括:
添加远程智能体
远程智能体通过 AgentKit 智能体中心发现并调用,适合把已经发布到中心的专业能力接入多智能体项目。远程智能体只能作为子智能体,不能作为根智能体;根智能体需要使用 LLM、顺序、并行或循环类型。 使用该能力前,应满足以下条件:- Studio 已配置可访问 AgentKit 的火山引擎凭证;部署到 VeFaaS 时,所绑定的 IAM Role 需要具备相应权限。
- 目标地域的
default项目中至少存在一个当前账号可见的 AgentKit 智能体中心,且中心内已有可调用的远程智能体。 - 启用 Studio 角色权限时,当前用户具有
developer或admin角色。
1
配置根智能体
创建 LLM 或编排型根智能体,并完成模型、描述和系统提示词等必要配置。
2
添加远程智能体节点
在左侧智能体结构中为根智能体或其他本地智能体添加子智能体,然后将类型设为「远程智能体」。根节点上的远程智能体类型不可选择。
3
选择智能体中心
默认加载北京地域
default 项目下当前账号可见的智能体中心。使用其他地域时,先在「更多选项」中修改地域,再从下拉框选择中心;需要重新获取列表时使用刷新按钮。4
配置发现范围
按需设置召回数量和 OpenAPI 地址。远程智能体的名称、描述和能力来自中心返回的 Agent Card,无需单独填写名称或 A2A 地址。
5
测试调用
生成项目并启动临时测试,输入一个需要目标中心专业能力的问题。响应能够使用中心内匹配智能体返回的信息,即表示发现和调用链路可用。
例如,创建名为
support_router 的 LLM 根智能体,为其添加一个远程智能体子节点,选择「售后服务」智能体中心,并保留召回数量 3 与北京地域。测试时输入「查询订单配送异常并给出处理建议」;如果中心中存在匹配能力,根智能体会调用相应的远程智能体完成任务。
排查远程智能体问题
测试运行进程默认保留 1800 秒,可通过
--generated-agent-test-run-ttl 调整。每位登录用户最多同时运行 3 个生成智能体测试进程;超出上限时返回 429,需关闭不再使用的调试页面后重试。刷新页面后遗留的测试进程会被自动清理,单次测试运行最多接受 300 个项目文件。测试代码可能调用外部服务或访问运行环境中的数据,只应测试可信项目,并为 Studio 使用权限受限的凭证。
测试运行会自动规范化生成智能体中配置的 HTTP MCP 工具端点:URL 未以
/mcp 结尾时会自动补全 /mcp,并通过 Streamable HTTP 验证工具发现。若无法连接 MCP 服务完成工具发现,测试会返回错误,提示确认 URL 是否指向实际 MCP endpoint(通常以 /mcp 结尾)并检查 Token;画布中保存的原始 URL 不会被修改。调试运行仅支持当前云服务商的官方 Ark 模型端点。配置了自定义模型地址的智能体无法在调试运行中启动,需改用官方地址或通过部署后的 Runtime 测试。
配置记忆
为智能体启用长期记忆后,可在 Studio 中选择以下后端:
本地向量库、OpenSearch、Redis 与 mem0 后端的连接和向量化模型参数以环境变量形式写入生成项目;VikingDB Memory 与 OpenViking 使用火山引擎凭证链,由 Studio 服务端转发到调试运行和 AgentKit 运行时,无需在创建页重复填写 AK/SK。各后端的完整参数、默认值和限制见对应组件页面。
选择 VikingDB Memory 时,Studio 会通过服务端凭证列出当前账号在当前云服务商地域下可见的 VikingDB 记忆库集合。列表依次查询
DATABASE_VIKINGMEM_PROJECT、VEADK_STUDIO_PROJECT 环境变量指定的项目与 default 项目中的集合。选择已有集合后,其名称将作为长期记忆的集合索引,Studio 同时根据所选集合自动填充项目、地域和记忆类型(对应 DATABASE_VIKINGMEM_PROJECT、DATABASE_VIKING_REGION、DATABASE_VIKINGMEM_MEMORY_TYPE 环境变量,这些变量不在创建页展示);未选择已有集合时,集合名称默认根据智能体名称自动生成,运行时若集合不存在会自动创建。需要重新获取列表时,可使用刷新按钮。
本地启动时,通过 VOLCENGINE_ACCESS_KEY 和 VOLCENGINE_SECRET_KEY 提供查询权限;部署到 VeFaaS 后,使用绑定 IAM Role 的临时凭证。凭证只在服务端使用,不会下发到浏览器。
选择 OpenViking 时,Studio 在创建页填写以下配置项并写入生成项目的环境变量:
OpenViking 的记忆归属 ID(
DATABASE_OPENVIKING_USER_ID)与运行时用户标识(Runner.user_id)是不同的概念:前者隔离不同应用或租户的记忆,后者作为 OpenViking 的 peer ID 隔离终端用户记忆。详见使用 OpenViking 存储。配置知识库
为智能体启用知识库后,可在 Studio 中选择以下后端:
Studio 不提供
local 后端,因为创建页面不能为进程内向量库存入文档。如需本地调试,可使用 VeADK SDK 配置本地知识库。
选择 VikingDB Knowledge 时,Studio 会列出北京地域 default 项目中当前账号可见的知识库集合。选择已有集合后,其名称将作为知识库索引;未选择已有集合时,索引名称默认为 <智能体名称>_kb。需要重新获取列表时,可使用刷新按钮。
本地启动时,通过 VOLCENGINE_ACCESS_KEY 和 VOLCENGINE_SECRET_KEY 提供查询权限;部署到 VeFaaS 后,使用绑定 IAM Role 的临时凭证。凭证只在服务端使用,不会下发到浏览器。
选择 OpenViking Knowledge 时,Studio 在创建页填写以下配置项并写入生成项目的环境变量:
此外,Studio 提供「资源索引」字段,用于指定
KnowledgeBase 的 index。留空时生成项目使用智能体名称自动生成索引(如 my_agent_kb)。未配置 DATABASE_OPENVIKING_TARGET_URI 时,资源目录自动拼接为 viking://user/<知识库归属 ID,未填则 default>/resources/<资源索引>/;填写 DATABASE_OPENVIKING_TARGET_URI 后直接使用该完整 URI。
OpenViking 的知识库归属 ID(
DATABASE_OPENVIKING_USER_ID)与运行时用户标识(Runner.user_id)是不同的概念:前者隔离不同应用或租户的资源目录,后者标识终端用户。详见使用 OpenViking 存储。添加代码执行工具
在自定义创建的内置工具中选择「代码执行」后,Studio 会把run_code 工具加入生成的 Python 代码,并在内置工具列表下方显示该工具依赖的沙箱配置。代码、语言和超时由智能体按 run_code 的工具函数签名在运行时传入,tool_context 由 ADK 自动注入,无需在 Studio 中填写。
这两个值会同时用于本地调试运行和部署后的运行时,生成的
.env.example 也会包含这两个变量。沙箱 ID 与地域只在 Studio 服务端使用,不会下发到浏览器。run_code 的完整参数、Shell 执行和凭证要求,参见代码沙箱。
查看子智能体移交
在多智能体项目中,根智能体可以把任务移交给子智能体执行。当发生移交时,Studio 会在对话中为子智能体的回复单独显示一张标注「智能体移交」的卡片,并展示该子智能体的名称和描述;子智能体的输出不再与根智能体的回复混在同一个消息气泡中。 子智能体的名称和描述来自项目结构中的智能体配置。如果子智能体未配置描述,卡片会显示默认说明。子智能体完成输出后,后续回复继续显示为根智能体的消息。该展示适用于本地子智能体和远程智能体。远程智能体只能作为子智能体,不能作为根智能体。
对话调用链路与问题反馈
在对话页面,每条助手回复旁提供调用链路查看和问题反馈入口,便于排查单轮执行问题。这些入口仅在普通智能体对话中可用,内置 Codex 智能体对话不提供。查看调用链路
每条助手回复旁的「Tracing 火焰图」按钮打开调用链路观测面板,以 span 树和详情面板展示该会话的执行轨迹,并在打开时以该轮回复的结束时间作为查询截止点。- 本地调试会话直接读取 ADK 调试链路。
- 连接云端 Runtime 时,Studio 服务端使用自身配置的云服务商凭证向 APMPlus 查询该会话的链路,浏览器不接触凭证。查询使用的 APMPlus OpenAPI 接入地址按当前云服务商选择:火山引擎为
open.volcengineapi.com,BytePlus 为open.byteplusapi.com。
云端 Runtime 的链路观测需在火山引擎控制台为对应智能体开启 APMPlus 链路观测。通过 Studio 部署的 Runtime 默认启用 APMPlus 链路观测;未开启链路观测的 Runtime 打开链路面板时会提示「该 Agent 暂未开启链路观测,请到控制台打开后使用」,链路查询失败时会提示稍后重试。
问题反馈
每条助手回复旁的「问题反馈」按钮可针对该轮回复上报问题。在对话框中选择问题类型并补充描述后提交,提交内容会一并携带该轮的输入、输出、工具调用记录和链路信息,便于排查,并在上报前做凭据脱敏处理。可选问题类型如下:
侧边栏底部的「问题反馈」入口(标记为 Beta)用于反馈 Studio 整体使用问题:选择所属模块、问题类型并填写描述后提交。所属模块与当前所在页面对应,可在对话、智能体、自动化、搜索或其他之间选择;平台问题类型包括页面加载慢、功能无法使用、页面显示异常、操作无响应和其他问题。
问题反馈数据会上报到 AgentKit 团队用于改进产品,提交成功后会显示确认信息。请在描述中避免填写密钥、Token 等敏感信息;当前会话不可用时反馈可能失败,可关闭后重试。
分享对话为图片
每条助手回复旁的「分享为图片」按钮可将截至该轮回复的全部输入与输出导出为一张 PNG 图片。图片在浏览器本地生成,不依赖网络请求;导出内容包含从会话开始到当前回复的所有用户消息和助手回复,并在底部附加「上述会话由 AgentKit Studio 导出,仅供参考」的说明。 生成完成后可在对话框中预览图片,支持以下操作:该按钮在普通智能体对话和内置 Codex 智能体对话中均可用,仅在回复完成(非流式输出中且未等待 OAuth 授权)时显示。当会话过长导致图片尺寸超出浏览器画布限制时,生成会失败并提示会话过长,可在缩短会话后重试。
使用智能搜索
智能搜索提供会话、网络、知识库和长期记忆四种检索源:- 会话:在当前智能体的历史消息中执行全文检索。
- 网络:调用当前智能体挂载的
web_search工具实时检索。 - 知识库:使用当前智能体挂载的知识库执行语义检索。
- 长期记忆:使用当前智能体挂载的长期记忆后端执行语义检索。
部署网络模式
在部署页可为 AgentKit Runtime 选择网络模式,决定 Runtime 的公网暴露方式:
选择 VPC 或公网 + VPC 模式时,需要填写 VPC ID 和子网 ID。
VPC 私有 Runtime 部署完成后不返回公网数据面地址,Studio 通过服务端运行时代理访问该 Runtime,数据面 API Key 始终保留在服务端,不会下发到浏览器。该连接方式与「选择云端 Runtime」中所述的服务端运行时代理一致。
部署完成后,Studio 会自动连接新创建的 Runtime。连接时 Studio 会最多等待 60 秒重试探测 Runtime 端点,直到端点可达或超时。若超时后仍无法连接(网关域名可能仍在生效,或当前网络/DNS 无法访问该 Runtime),部署任务会标记为「部署完成,暂未连接」并保留进度卡片与提示信息,可在「管理智能体」中重试连接。
管理智能体
「管理智能体」列出当前用户可见的 AgentKit Runtime,可见范围由登录账号的角色决定:admin 可见全部 Runtime,developer 和普通用户仅可见自己创建的 Runtime。列表默认展示北京区域的 Runtime,也可以切换到上海。当可见范围包含全部 Runtime 时,当前用户创建的 Runtime 会标注「我创建的」。可以查看:
- Runtime 名称、ID、状态、区域和创建时间;
- 模型、描述、项目、版本、资源规格和更新时间;
- 绑定的 Memory、Tool、Knowledge 与 MCP Toolset 标识;
- Runtime 环境变量和主智能体信息。
- 智能体拓扑、远端调用链路与全局部署任务状态。
删除前 Studio 会弹出确认对话框,列出即将删除的智能体或草稿;确认后才会执行删除。删除过程中,被删除的智能体会从列表中暂时隐藏。若当前对话正在使用被删除的智能体,Studio 会清除当前选择并返回智能体管理页。
构建或部署阶段失败时,Studio 会在工作台展示服务端返回的完整错误信息,默认展开且可复制,便于直接定位问题;部署与更新失败时还可在错误面板中重新发起。部署失败或取消后,进度卡片提供「返回编辑」按钮,可直接回到草稿继续调整配置后重新发起部署。
管理草稿
在自定义创建过程中,Studio 会将未发布的智能体草稿保存在当前浏览器中,并按登录用户隔离。草稿与已部署 Runtime 一并出现在「管理智能体」列表,每条草稿显示更新时间与「草稿」标识;正在部署的草稿显示「部署中」标识,可在该草稿上查看部署进度。草稿支持编辑与删除,删除前会弹出确认对话框。MCP 工具的鉴权 Token 会转换为环境变量引用保存:生成源码仅保留
${ENV_NAME} 引用,Token 值写入部署环境变量;YAML 导出与浏览器草稿均保留对应的环境变量值。更新已部署的 Runtime 时会重新加载已有环境变量值,在部署表单中输入新的 Token 会覆盖原有值。端云接力到云端继续执行
端云接力用于把本地 Codex 正在进行的会话与项目迁移到 Studio 云端 Codex Sandbox,并在云端继续执行任务。适用于本地算力、环境或运行时长受限,需要把当前编码任务转到云端 Codex 继续推进的场景。该入口位于「管理智能体」页面的 Codex 标签下,仅对具备创建智能体权限的角色(admin 与 developer)可见。
1
安装 AgentKit Studio Plugin
首次使用时,在「接力到云端继续执行」对话框中选择安装方式。选择「与 Codex 对话安装」可复制一段提示词,粘贴到本地 Codex 对话中由其执行安装;选择「从终端安装」则复制以下命令在本地终端执行:
2
复制接力提示词
插件安装完成后,点击「复制接力提示词」。提示词中包含当前 Studio 地址和一次性配对码,配对码默认有效期 20 分钟,并在对话框中显示倒计时。配对码过期或失效时可点击「刷新配对码」重新生成。
3
在本地 Codex 中执行接力
将提示词粘贴到本地 Codex 对话中。插件会将当前项目的 Git 跟踪文件与非忽略的未跟踪文件、Git 元数据,以及当前任务中可见的用户与助手消息(含用户消息附带的本地图片)打包上传到 Studio,创建一个临时云端 Codex Sandbox Session,恢复项目并注入会话历史,最后发送一条续跑消息让云端 Codex 继续任务。上传完成后云端任务独立运行,本地终端可断开。
4
查看进度并进入云端会话
对话框的「接力状态」面板按「等待端侧请求」「创建云端 Session」「恢复项目」「发送续跑任务」四个阶段展示进度。接力完成后点击「进入 Codex」即可在 Studio 中打开创建的云端 Sandbox Session 继续对话。
端云接力环境变量
更新已部署的智能体
已部署到 AgentKit 的智能体可以在 Studio 中重新编辑并更新到同一 Runtime,而不必每次创建新部署。更新会基于该 Runtime 的当前版本生成递增的镜像版本,并在原 Runtime 上发布新版本。1
选择已部署的智能体
在智能体工作台中选择一个已部署的智能体。Studio 从该 Runtime 读取智能体的名称、描述、模型、系统提示词、工具与子智能体结构,并加载到可编辑草稿中。
2
修改配置
在画布或配置面板中调整模型、系统提示词、工具、技能或子智能体结构,与创建智能体时使用相同的编辑能力。
3
更新并发布
选择「更新并发布」。Studio 按准备、构建镜像、部署服务、发布的阶段展示进度;部署服务阶段会复用原 Runtime 标识并发布递增版本。
4
验证更新
更新完成后,工作台中该智能体的版本号递增,部署状态恢复为已发布。可在对话页面连接该 Runtime 验证新配置是否生效。
在更新过程中取消部署任务不会销毁已有 Runtime,原版本仍保持可用。仅创建全新部署时,取消任务才会清理未完成的 Runtime 资源。
admin 可更新全部 Studio 管理的 Runtime,developer 只能更新自己创建的 Runtime,普通用户无权更新。
更新 Runtime 时,Studio 会从该 Runtime 加载已有环境变量并保留;在部署表单中显式填写的值覆盖原有值。选择 Runtime 目标进行调试测试时,该 Runtime 的环境变量会注入测试进程。
更新已部署的智能体时,Studio 以该 Runtime 当前部署的配置为唯一来源重建可编辑草稿,不混入本地保存的旧草稿内容。若因网络或服务端错误无法读取该 Runtime 的 Agent 配置,更新入口会显示提示并暂时禁用更新,请稍后重试。
通过 GitHub 交付智能体
Studio 可将自定义创建生成的智能体源码交付到 GitHub 仓库,提供两种交付模式。「GitHub 代码同步」把生成的源码直接推送到目标分支,Runtime 仍由部署按钮发布;「挂载持续交付」在目标分支写入 AgentKit Runtime 的 GitHub Actions 工作流,后续向该分支推送代码会自动构建并发布到绑定的 Runtime。两种模式适用于需要版本管理与持续交付的团队。「挂载持续交付」会向仓库写入 GitHub Actions Secret,需要安装
github-cicd 可选依赖组以提供加密能力,安装方式见安装。「GitHub 代码同步」不写入 Secret,无需该依赖。交付模式
在部署配置区选择 GitHub 交付后,可在以下两种模式间切换:配置 GitHub 交付
两种模式共用以下表单字段:
使用 BytePlus 作为云服务商时,对应的 Secret 名称与 Runtime 发布凭据为
BYTEPLUS_ACCESS_KEY、BYTEPLUS_SECRET_KEY 和可选的 BYTEPLUS_SESSION_TOKEN;火山引擎模式下为 VOLCENGINE_ACCESS_KEY、VOLCENGINE_SECRET_KEY 和可选的 VOLCENGINE_SESSION_TOKEN。地域沿用部署配置区的发布区域。
部署时挂载持续交付
选择「挂载持续交付」创建新 Runtime 时,点击部署后 Studio 会先创建 Runtime,再执行「挂载 GitHub 持续交付」阶段:初始化目标分支并写入 GitHub Actions 工作流,初始化成功后才完成部署流程。该阶段在部署进度中独立展示,并实时显示 GitHub 挂载日志,可在同步中、已同步或读取失败等状态间展开与复制,日志在服务端完成凭据脱敏后下发。 工作流文件写入仓库的.github/workflows/publish-agentkit.yml,在以下情况触发:
- 推送到目标分支(提交信息包含
[skip runtime]时跳过发布); - 手动触发。
版本管理与回退
在工作台选中已绑定 GitHub 持续交付的 Runtime 后,详情页提供「版本」标签。该标签列出目标分支的提交历史与工作流运行记录,每个版本显示提交、分支、来源、发布状态与创建时间:
选择某个历史版本可创建回退。已挂载持续交付时,Studio 自动合并回退 Pull Request,将目标分支恢复到所选版本并触发工作流发布该版本;仅做代码同步时,Studio 创建回退 Pull Request 等待人工合并。回退事件同样记录在版本列表中。
使用命令行同步源码
除 Studio 界面外,可使用veadk github-cicd-pipeline 命令将 Studio 导出的 AgentProject JSON 推送到目标分支,对应「GitHub 代码同步」模式:
该命令仅同步源码到目标分支,不写入 GitHub Actions 工作流与 Secret,也不会发布 Runtime。
与「自动化集成」中的 AgentKit Runtime 持续交付 不同,本节能力内嵌在自定义创建的部署流程中,针对 Studio 生成的智能体源码,并可在创建 Runtime 的同时初始化 GitHub 交付。两者可按需分别使用。
查看接入方式
在「管理智能体」中选择一个已部署的智能体后,详情页提供「接入方法」标签。该标签探测当前 Runtime 实际暴露的公开接入协议与端点,并给出可直接参考的调用示例,方便在不查阅控制台的情况下从外部调用该智能体。接入方式由 Studio 在打开标签时向 Runtime 发起只读探测确认,仅展示已确认的协议与地址。Runtime 未暴露的协议显示为不可用,Studio 不会虚构未确认的端点。
支持的协议
探测期间 Studio 会显示加载状态。若探测因网络或鉴权问题失败,标签内会显示错误提示并提供「重试」按钮;Runtime 未暴露某个协议时该协议显示为不可用,不影响另一协议的展示。
鉴权方式与 API Key
标签会显示 Runtime 当前的鉴权方式:
当鉴权方式为 API Key 时,标签会显示 API Key 字段。出于安全考虑,API Key 默认以
**** 掩码显示,仅当点击显示按钮后才会向 Runtime 请求真实值并在页面中短暂展示;切换标签或离开当前智能体后会自动清除已显示的值。示例代码中的凭证始终使用占位符,不会填入真实 API Key。
调用示例
标签根据探测到的协议和鉴权方式,生成对应的 Python 请求示例。示例中的端点和应用名称来自探测结果,凭证使用占位符。 API Server 协议的示例通过requests 创建会话并调用 /run_sse 流式接口:
message/send 方法调用智能体:
示例仅用于说明调用方式。实际端点、应用名称和鉴权方式以标签中探测到的结果为准;未启用鉴权时无需传入
Authorization 头。浏览智能体
侧边栏的「智能体」入口打开智能体目录,用于浏览、连接和查看当前账号下的 AgentKit Runtime。对话页面顶部导航栏的智能体选择器也提供进入该目录的入口。 智能体目录通过顶部的类型标签切换,默认显示「通用智能体」:
通用智能体列表跨全部地域加载当前用户自己的 Runtime,并在滚动到列表底部时自动加载下一页,加载完成后提示「已加载全部智能体」。使用顶部的搜索框可按名称过滤已加载的智能体。
每张智能体卡片显示 Runtime 名称和创建时间。点击卡片进入该 Runtime 的详情视图,卡片上的「连接」按钮将该 Runtime 设为当前对话使用的智能体并切换到对话页面;已连接的智能体会置顶显示。列表加载失败时显示错误信息并提供「重新加载」按钮,列表为空时显示对应的空状态提示。连接失败时的排查方式与选择云端 Runtime一致。
智能体目录仅列出当前登录用户创建的 Runtime,不按地域筛选。需要浏览其他用户或全部 Runtime 时,使用导航栏的智能体选择器或管理页面,可见范围取决于角色权限。
选择云端 Runtime
在云端模式下,对话页面顶部的智能体选择器会列出当前用户可见的 AgentKit Runtime,可见范围与「管理智能体」一致,由登录账号的角色决定,并按区域分页浏览。每条 Runtime 提供两个独立操作:- 连接:将该 Runtime 设为当前对话使用的智能体,选择器随即关闭并切换到该 Runtime。
- 信息:展开一个分标签信息面板,无需连接或持久化即可预览该 Runtime 的能力。
- 智能体信息:读取 Runtime 提供的名称、模型、描述、子智能体、工具、技能、可用检索源,以及已挂载组件及其后端类型。该信息不包含系统提示词、凭据或环境变量值。
- Runtime 详情:展示 Studio 可读取的模型、描述、状态、区域、资源规格、版本和环境变量。
「Runtime 详情」标签可能展示 Runtime 的环境变量值。仅向经过授权的用户开放 Studio,并优先使用平台支持的密钥管理能力。
- 权限不足:当前账号无权访问该 Runtime,可刷新列表或重新登录后重试。
- Agent Server 不可连接:Runtime 的 Agent Server 未提供连接接口,通常是 Runtime 尚未就绪或版本不兼容,需确认 Runtime 状态与版本。
- 私网 Runtime 不可达:Runtime 仅部署在 VPC 内且未暴露公网地址,而当前 Studio 所在环境无法访问该 VPC。请使用已绑定相同 VPC 的 Studio 访问,或改用公网或公网 + VPC 部署模式。
- 鉴权失败:Runtime 服务拒绝了连接请求,需检查 Runtime 的鉴权配置。
新会话工作区
新建会话时,Studio 在会话页面顶部提供三种工作区模式,模式选择器对所有已登录用户可见:- 智能体:与当前选中的智能体对话,或使用内置智能体进行临时会话。
- 技能定制:从自然语言描述生成新技能,或对已有技能进行优化。该模式仅在管理员配置了可用的 Dev Sandbox 时显示。
- 视频创作:根据文本提示和可选的参考素材生成视频。
智能体对话与内置智能体
智能体工作区支持两种模式:- 智能体对话:与当前选中的智能体进行普通多轮对话。空输入时显示快捷提示,可点击快速填入常用提问。
- 内置智能体:使用平台提供的智能体进行对话。当前可选 Codex 智能体和 DeepSeek Harness。Codex 智能体在独立的 AgentKit CodeEnv Session 中使用专用编辑器进行多轮对话;DeepSeek Harness 在独立的 AgentKit CodeEnv Session 中打开 DeepSeek Harness 工作区。两者退出后均删除云端 Session,内容不写入普通历史会话。
与内置 Codex 智能体对话时,若 Codex app-server 返回错误或连接中断,Studio 会在对话中展示完整的错误详情,包括 JSON-RPC 错误码、错误消息和附加数据,以及导致错误的底层原因。所有错误信息在展示前均做凭据脱敏处理。
内置 Codex 会话在连接空闲超时或传输层断开后会自动恢复。Studio 会在下一次发送消息或请求时重建连接并恢复当前 Thread,保留已有的对话历史、工作空间锁定状态与上下文用量,无需手动新建会话。恢复过程对用户透明;若恢复失败,仍会在对话中展示经过凭据脱敏的错误详情。
在云端模式下,Studio 不会自动选择第一个可用智能体。开始新会话前需在对话页面顶部的智能体选择器中手动连接一个 Runtime;未选择智能体时开始新会话会提示先选择智能体,并打开智能体管理页。
本地配置
本地使用内置智能体前,准备一个处于Ready 状态的 AgentKit CodeEnv Tool,并配置其 ID:
创建内置智能体的 Session、查找对应 Tool 时,Studio 会优先使用
AGENTKIT_SANDBOX_REGION 指定的地域;火山引擎模式下未设置时依次回退到 REGION 环境变量与默认 cn-beijing。若该地域返回资源不存在,会自动回退到另一个支持地域(北京 ↔ 上海)继续操作,其他错误不会触发回退。部署到 VeFaaS 时该地域与 --region 一致。Codex 智能体和 DeepSeek Harness 共用同一个 AgentKit CodeEnv Tool(
SANDBOX_CHAT_CODEX),无需为 DeepSeek Harness 单独配置 Tool。两类内置智能体的会话通过 agent 类型标识区分,不会互相影响。Codex 会话控件
选择 Codex 智能体后,对话使用专用的 Codex 会话编辑器。该编辑器在输入框左侧提供权限与工作空间入口,在「添加」菜单中提供终端、浏览器与文件上传入口,并支持快捷命令、模型切换和 Skill 调用。这些控件只作用于当前 Sandbox Session,不修改已部署的智能体。快捷命令
在输入框中以/ 开头可调出快捷命令菜单,支持按名称或关键词筛选。选中的命令会填入输入框,回车发送后由当前 Codex Session 执行。
模型与 Skill
输入/model 可触发模型列表,从中选择或直接输入模型 ID 切换当前对话使用的模型。输入 $ 可浏览当前工作区可用的 Skill,选中后以标签形式插入输入框,发送时一并提交;在输入框为空时按退格键可移除最后一个已选 Skill。
工作空间
点击输入框左侧的工作空间按钮可选择当前 Codex Thread 执行命令与修改文件的目录。在对话框中可直接输入绝对路径或浏览目录树选择。对话开始后工作空间会被锁定,需新建 Sandbox 会话后才能重新选择。当管理员启用
STUDIO_EXPOSE_SANDBOX_ENDPOINT 环境变量(设为非 0/false 值)后,Codex 会话编辑器输入框旁会显示「复制 Sandbox Endpoint」按钮,可将当前 Sandbox 的公开端点复制到剪贴板。未启用时该按钮不显示。该变量在本地启动与云端部署的 Studio 中均通过环境变量配置,默认关闭。权限
点击输入框左侧的权限按钮可打开「Codex 权限」对话框。设置保存到当前 Sandbox Session,并同步到其中的所有 Thread。操作审批
当审批策略需要人工确认且 Codex 请求执行命令或修改文件时,Studio 会弹出审批对话框,展示待审批的命令、文件变更和执行目录。可选择「拒绝」「仅本次允许」或「本会话允许」。审批结果会以活动记录的形式显示在对话中。终端与浏览器
在「添加」菜单中选择「进入终端」或「查看浏览器」,可在当前 AgentKit Session 中打开交互式终端或浏览器视图。连接过程中显示加载状态,打开失败时可重试。还可以从该菜单上传图片、文档或 PDF 以及视频到当前对话;上传的图片会在对话中显示预览,点击后通过共享图片查看器打开。状态与历史
/status 会以活动记录形式展示当前 Thread、工作空间、模型、运行状态、累计 Token 与上下文窗口。每轮助手回复后会显示该轮的 Token 用量。输入 /resume 可打开「恢复 Codex 对话」对话框,选择最近更新的 Thread 恢复。
沙箱会话列表中的「创建者」显示当前登录用户的显示名称(OAuth 邮箱或本地用户名),便于在多用户部署中区分会话归属;未获取到显示名称时回退为内部用户标识。显示名称的 UTF-8 编码超出会话元数据字节上限时,Studio 会按字符边界截断并追加省略号,确保会话创建不受影响。
当内置智能体的会话结束后留下可恢复的快照时,管理员打开沙箱会话列表会自动恢复当前智能体类型的可恢复快照:Studio 在后台并发恢复(至多 3 个),恢复完成后列表刷新并直接展示就绪的会话,无需手动唤醒。恢复失败的快照会被跳过,不影响其余会话展示。该能力仅对
admin 角色开放,且仅在已配置对应的沙箱快照 Tool 时可用。技能定制
技能定制工作区在新建会话页面提供技能生成与优化的快捷入口,复用技能中心的 Dev Sandbox 技能生成能力。该模式仅对developer 和 admin 角色开放,且仅在管理员配置了处于可用状态的 Dev Sandbox 及其模型凭据后才会在工作区模式选择器中显示;未配置时该模式被隐藏,不会展示无法完成的操作。
技能生成
在输入框中用自然语言描述目标技能,例如「生成一个用于分析 CSV 文件并输出统计摘要的技能」,发送后 Studio 会跳转到技能中心 Dev Sandbox 技能生成工作台,并以该描述作为初始意图预填入。技能优化
切换到「技能优化」后,先从 AgentKit SkillSpace 中选择需要优化的技能空间与技能,再在输入框中描述优化目标,例如「增强对中文列名的兼容性」。发送后 Studio 跳转到技能中心工作台,对所选技能执行优化并可覆盖发布到原技能空间。技能定制的生成与优化流程、Dev Sandbox 会话管理、候选方案对比与发布方式与技能中心一致,工作区仅作为快捷入口。浏览 AgentKit SkillSpace 由 Studio 服务端使用自身配置的火山引擎凭证完成,浏览器不接触凭据。
视频创作
视频创作工作区根据文本提示和可选的参考素材生成视频,适用于内容创作、素材预览等场景。该模式对所有已登录用户开放;上传参考素材需要管理员配置持久化存储,未配置时参考素材上传被禁用,但文生视频不受影响。使用方式
- 在新建会话页面选择「视频创作」工作区。
- 选择视频任务模式,并按需上传参考素材、设置画面比例、分辨率和时长。
- 在输入框中输入视频描述,发送后 Studio 会先优化提示词,再创建视频生成任务。
- 在视频任务对话框中查看生成进度:生成阶段会区分任务排队与模型生成状态并显示已等待时长。生成过程中可以关闭对话框,任务会在后台继续运行,不影响生成结果;生成完成后可预览和下载结果视频。
视频任务模式
生成参数
生成流程
视频生成分为两个阶段,均在 Studio 服务端完成:- 提示词优化:使用增强模型对输入的提示词进行扩写和规范化,并解析最终的任务模式。
- 视频生成:使用生成模型按优化后的提示词和参数创建视频任务,任务完成后返回预览地址和下载链接。
视频生成过程异步执行,对话框实时显示优化和生成两个阶段的状态:生成阶段会区分任务排队与模型生成并显示已等待时长。生成过程中可以关闭对话框,任务会在后台继续运行,不影响生成结果。任一阶段失败时,对话框会显示服务端返回的错误详情(已自动脱敏其中的密钥与签名信息),可从失败阶段重试,无需重新输入提示词。
参考素材与持久化存储
参考素材上传和生成结果保存依赖 Studio 持久化存储。未配置持久化存储时,参考素材上传控件被禁用并在对应位置显示「管理员未配置持久化存储」,文生视频等纯文本功能不受影响。持久化存储的配置方式见 Studio 持久化存储。管理会话能力
VeADK 1.0.9 起,连接的 Runtime 暴露会话级能力叠加接口时,Studio 可管理当前会话的工具与技能。 当连接的 Runtime 暴露会话级能力叠加接口时,对话页面的智能体信息面板会在工具与技能列表中显示「在此对话中添加工具」与「在此对话中添加技能」入口。添加的能力仅对当前会话生效,不修改已部署的根智能体,也不会写入其他会话。- 内置工具:从 VeADK 内置工具目录中选择,可按中文名称或工具标识搜索。
- 远程技能:从公域 Skill Hub 搜索,或从 AgentKit Skill 中心按地域与项目浏览后选择。
VOLCENGINE_ACCESS_KEY 与 VOLCENGINE_SECRET_KEY 提供,VeFaaS 部署使用绑定的 IAM Role。能力叠加接口的完整端点与参数见部署到 AgentKit。
自动评测与优化反馈
部署到 AgentKit 的智能体在工作台中支持自动评测和优化反馈。部署时开启「自动创建评测集」后,Studio 会为该智能体创建 Good Case 和 Bad Case 评测集;会话结束后,Studio 自动评估每轮对话的质量并归入对应评测集,再基于累计的评测案例生成优化建议。评测集创建
部署配置区提供「自动创建评测集」开关,默认开启。部署成功后,Studio 调用 AgentKit 评测接口为该智能体幂等创建{agent_name}_good_case 与 {agent_name}_bad_case 两个评测集。创建过程在「创建评测集」阶段执行,完成后部署流程进入结束阶段。
评测集创建失败不影响已部署的 Runtime。失败时部署结果中会显示警告信息,已成功部署的智能体仍可正常使用。
自动评测
用户在 Studio 中与已部署智能体对话时,每轮对话结束后 Studio 会等待一段静默时间(默认 300 秒),然后自动评估该轮对话的质量。评估过程如下:- Studio 从 Runtime 读取该轮会话的最新助手回复。
- 调用
doubao-seed-2-0-lite-260428模型,从任务完成度、事实与逻辑可靠性、工具使用合理性、清晰度和安全性等维度对回复评分。 - 评分范围为 0–1;评分不低于 0.6 的归入 Good Case 评测集,低于 0.6 的归入 Bad Case 评测集。
- 自动评测案例会写入对应的 AgentKit 评测集,并在案例列表中标记来源为「自动回流」,同时展示评分和评分理由。
如果用户在同一会话中发送新消息,静默计时会被重置,确保只在对话暂停后才执行评测。
优化建议
当自动评测积累了足够的案例后,Studio 基于该智能体已有的评测案例生成优化建议。优化建议按优先级和模块分组展示在工作台的「优化项」标签中:优化建议由
doubao-seed-2-0-lite-260428 模型根据累计评测案例和智能体配置生成,仅供参考。评测模型可通过环境变量 VEADK_STUDIO_EVALUATION_MODEL 覆盖。配置 Studio 持久化存储时,优化项快照保存在 TOS 中,进程重启后仍然可见,并在多个实例间共享;未配置持久化存储时,优化项快照仅保留在进程内存中,重启后丢失。持久化存储的配置方式见 Studio 持久化存储。
标注回复为 Bad Case
在与已部署智能体对话时,可以直接在助手回复中选中一段文字并添加批注,将该轮回复作为 Bad Case 评测案例保存到对应的 Bad Case 评测集。批注会保留选中的文字片段和说明,便于后续基于具体片段定位问题。 该能力仅在以下条件同时满足时可用:- 连接到已部署的火山引擎 Runtime(BytePlus 部署和本地调试会话不支持);
- 回复已生成结束(流式输出进行中或等待授权时不可用)。
- 在助手回复气泡中选中一段文字,松开鼠标后会在选区附近弹出批注弹窗,并展示已选中的文字片段。
- 在「批注内容」输入框中说明问题或期望的修改方式。
- 点击「加入 Bad Case」,Studio 将选中片段与批注说明组合保存为评测案例的备注,并把该轮回复写入 Bad Case 评测集。提交成功后弹窗显示确认信息。
标注保存的 Bad Case 评测案例在案例列表中标记来源为「手动回流」,评分显示为 0 分,评分理由显示为批注内容;通过赞/踩创建且未附带批注的手动回流案例评分仍显示为「—」。
查看评测案例
工作台的「评测集」标签展示该智能体的所有评测案例,支持按 Good Case / Bad Case 和自动回流 / 手动回流筛选。自动回流案例显示评分(0–100 分制)和评分理由;通过赞/踩创建且未附带批注的手动回流案例评分列显示为「—」,通过标注创建的手动回流案例显示评分与批注理由。两种来源的案例均可删除。自动化集成
Studio 侧边栏的「自动化」页面提供研发工具和消息渠道的自动化集成。自动化按分类组织,当前包括「研发」和「消息渠道」两个分类。Coding Agents 集成在本地检测并配置已安装的编程智能体客户端;GitHub 自动化通过浏览器直接调用 GitHub API 创建分支、文件和 Pull Request;飞书自动化在 Studio 中生成基础智能体并直接部署到 AgentKit Runtime。配置 Coding Agents
将 VeADK 与 AgentKit 内置 Skills 全局安装到本机已安装的编程智能体客户端,使其在开发 VeADK 应用时具备构建、调试、部署与平台操作能力。该集成标记为「本地」,仅在启动 Studio 的本机执行检测与安装,不访问云资源。「配置 Coding Agents」卡片仅在通过
http://127.0.0.1 访问 Studio 时启用。通过其他主机名(包括 localhost 或已部署的 VeFaaS 公网地址)访问时,该卡片显示为禁用状态,并提示「仅本地部署可用」。
检测到命令行可执行文件时,Studio 还会显示其版本号;未检测到时标注为不可用。
内置 Skills 为固定集合,不可自定义内容:
选择一个或多个已检测到的客户端与一个或多个内置 Skills 后,Studio 会将所选 Skills 写入对应客户端的全局 Skills 目录(如
~/.claude/skills/<skill_id>)。每个 Skill 以独立子目录写入,包含 SKILL.md 及其附带的脚本、参考文档和资源。
浏览器只能从固定的客户端与 Skill 标识中选择,不接受任意的 Shell 命令、文件系统路径或 Skill 内容;Skills 来源于 Studio 内置资源,不来自浏览器上传。安装前可预览每个 Skill 包含的文件。
developer 或 admin 角色。
模板项目导入
在目标仓库中创建一个包含完整 Studio App Server 的最简 VeADK 智能体项目,并附带持续交付工作流。提交后 Studio 在目标仓库创建发布分支,发起包含模板文件和 GitHub Actions 工作流的 PR。 模板项目包含app.py 服务入口、一个带示例工具的智能体、requirements.txt、Dockerfile、.env.example、.gitignore 和 .dockerignore,以及持续交付工作流文件。合并 PR 后,推送到目标分支即触发 AgentKit Runtime 发布。
AgentKit Runtime 持续交付
为已有仓库添加持续发布到 AgentKit Runtime 的 GitHub Actions 工作流。推送代码到目标分支时自动构建并发布 Runtime 新版本。持续交付和模板导入工作流均需要在仓库中配置
VOLCENGINE_ACCESS_KEY 和 VOLCENGINE_SECRET_KEY GitHub Secrets;使用临时凭据时还需配置 VOLCENGINE_SESSION_TOKEN。这些 Secrets 在 GitHub 中管理,不经过 Studio。PR 自动评审
在目标仓库中添加 GitHub Actions 工作流,在隔离的 AgentKit Sandbox 中评审同仓库的非草稿 PR,并将评审结果发布为 GitHub Review。
PR 评审工作流需要在仓库中配置以下 GitHub Secrets:
飞书机器人
飞书机器人自动化当前标记为 Beta。
飞书机器人的 App Secret 仅用于本次部署,不写入生成源码、工作流或日志。部署期间可取消部署,取消将停止任务并清理已创建的 Runtime。
库
侧边栏的「库」页面集中管理技能、知识库和产物,分为三个标签页:技能库
技能库标签页提供技能空间管理和 Dev Sandbox 技能生成。在此页面可以创建和管理技能空间、上传和浏览技能、以及通过 Dev Sandbox 从自然语言描述生成新技能或优化已有技能。生成技能使用独立的 AgentKit DevEnv Tool,与内置智能体的 CodeEnv 模式互不影响。前提条件
技能中心的管理和生成操作由 Studio 服务端使用自身配置的火山引擎凭证完成,浏览器不接触凭证。本地启动时通过VOLCENGINE_ACCESS_KEY 与 VOLCENGINE_SECRET_KEY 提供访问权限;部署到 VeFaaS 时使用绑定 IAM Role 的临时凭证。
Dev Sandbox 技能生成需要管理员配置处于 Ready 状态的 AgentKit DevEnv Tool。本地启动时通过 SANDBOX_DEV 环境变量指定 Tool ID;部署到 VeFaaS 时通过 --sandbox-dev-tool-id 自动创建或复用。未配置时,技能空间的管理和上传功能不受影响,但「创建技能」和「优化」入口会显示「管理员未配置 Dev Sandbox」并禁用。
Dev Sandbox 技能生成仅对
developer 和 admin 角色开放。技能空间的浏览对所有已登录用户开放,但非管理员仅能看到自己创建的技能空间。技能发布存储
发布技能到技能空间时,Studio 会将技能包上传到 TOS 存储桶。存储桶按以下优先级选择:
存储桶内对象前缀通过
VEADK_SKILL_CREATOR_TOS_PREFIX 环境变量指定,默认为 agentkit/skills。
已配置 Studio 持久化存储时,技能发布会自动复用该存储桶,无需额外配置。如需为技能发布使用独立存储桶,设置
VEADK_SKILL_CREATOR_TOS_BUCKET 环境变量即可。管理技能空间
技能空间按地域加载,支持按名称搜索。管理员可以查看全部地域中当前账号可见的全部技能空间;非管理员仅能看到自己创建的空间。新建技能空间时需选择地域:火山引擎可选
cn-beijing 与 cn-shanghai,默认 cn-beijing;BytePlus 为 ap-southeast-1。技能空间卡片会展示其所属地域,未显式记录地域的空间显示当前云服务商的默认地域。管理技能
进入某个技能空间后,可以浏览其中全部技能并按名称搜索。每个技能支持以下操作:上传 ZIP 时,Studio 会检查压缩包是否包含
SKILL.md、文件数量和路径安全,并自动忽略 __MACOSX 目录中的 macOS 元数据文件。完整的 frontmatter 与技能格式由 ADK 在加载时校验。上传前可使用校验功能预检 ZIP 内容。技能名称需在目标技能空间内唯一。如果目标技能空间中已存在同名技能,上传会被拒绝,可重命名后重新上传或使用优化功能覆盖。通过 Dev Sandbox 生成技能
在技能空间页面中选择「创建技能」可进入 Dev Sandbox 技能生成工作台。该工作台通过 DevEnv Tool 创建独立的开发沙箱会话,根据自然语言描述生成符合 ADK 技能格式的SKILL.md 及其相关文件。
生成方案
每组配置可选择的风格预设:
模型列表从 DevEnv Tool 的配置中读取,也可直接输入模型 ID。
生成流程
1
填写目标与配置
在生成工作台中填写目标描述、可选的 Skill 名称,并为每组候选方案选择模型和风格。
2
生成候选方案
点击「生成」后,每组配置会启动独立的 Dev Sandbox 会话并行生成。生成过程中实时展示活动记录,包括状态、思考内容和工具调用。
3
校验与自动修复
生成完成后,Studio 会校验技能格式。若校验未通过且属于格式问题(如
SKILL.md 缺失、frontmatter 不符、目录名不匹配等),会自动修复至多 2 次;自动修复耗尽后仍可手动再次修复。4
预览与调整
校验通过的候选方案会展示完整文件树。可以在输入框中继续描述调整需求,对当前候选方案进行迭代优化。
5
下载或发布
生成完成后可将技能下载为 ZIP,或直接发布到当前技能空间。发布时技能名称需在目标技能空间内唯一;如果已存在同名技能,发布会被拒绝,可重命名后发布或使用优化功能覆盖。优化已有技能时可选择覆盖原技能。
Dev Sandbox 会话的有效期为 1 小时。离开工作台时会停止正在运行的会话并释放资源。生成过程中刷新或关闭页面不影响已启动的会话,但建议保持页面打开以便跟踪进度。
优化已有技能
在技能空间中浏览技能时,可对已有技能选择「优化」。优化流程与创建类似,但以现有技能作为来源:填写优化目标后启动 Dev Sandbox 会话,生成改进版本。优化完成后可选择覆盖原技能或作为新技能发布。知识库
知识库标签页用于创建和管理用户拥有的 AgentKit 知识库,并上传文件或导入网页作为知识数据。知识库创建在 AgentKit 平台上,创建和写入操作需要 Studio 使用火山引擎或 BytePlus 凭证调用 AgentKit 知识库服务。创建知识库
点击「新建知识库」打开创建对话框,填写以下信息:知识库描述限制为 80 个字符,是因为 Studio 会在描述中追加签名标记以标识知识库归属,该标记与描述合计不超过 AgentKit 知识库的 200 字符描述上限。
cn-beijing 和 cn-shanghai 两个地域的知识库;BytePlus 部署时列出 ap-southeast-1 地域的知识库。新建知识库时,火山引擎部署的地域选项为 cn-beijing,BytePlus 部署为 ap-southeast-1。
管理知识库
每个知识库卡片展示名称、描述、创建者和状态。有管理权限的用户可以编辑知识库描述、添加数据或删除知识库;无管理权限的用户仅可浏览。添加知识数据
进入知识库后,有管理权限的用户可以添加知识数据。数据来源分为三类:导入网页时,Studio 先抓取页面并提取正文为 Markdown,在保存前展示渲染预览。确认后才会将预览的 Markdown 存入知识库;取消或预览失败不会创建任何数据。网页文档的名称自动取自页面标题,未获取到标题时使用域名作为名称。当主要提取方式无法获取正文时,Studio 尝试以备用方式提取页面可见文本;若页面依赖 JavaScript 动态渲染而无可见内容,会提示该页面可能无法导入。已导入的网页文档在知识库中预览时显示原始 Markdown 原文,而非分块后的检索结果。
文件上传通过 Studio 的私有 TOS 存储中转后导入 AgentKit 知识库。已配置 Studio 持久化存储时自动复用对应存储桶。
产物
产物标签页集中展示对话中生成的文档、图片和视频等产物。图片和视频产物会持久化保存到 Studio 持久化存储中,刷新页面或切换会话后仍然可用;文档类产物仅在对应的会话事件可用时展示。产物按会话来源分组,显示所属应用、会话和生成时间,支持按类型筛选和搜索。点击产物可预览图片或视频,文档类产物支持在线预览。 打开产物标签页时,Studio 会自动收集当前可见会话事件中的图片和视频产物并同步到持久化存储。已经保存过的产物不会重复写入;同步仅处理图片和视频类型的产物。管理产物
每条持久化产物支持以下操作:
编辑产物信息时,名称至多 180 个字符,描述至多 500 个字符,标签至多 10 个且单个标签不超过 32 个字符。
依赖
产物持久化依赖 Studio 持久化存储。未配置持久化存储时,产物标签页无法同步和展示持久化产物,并提示「管理员未配置持久化存储」。持久化存储的配置方式见 Studio 持久化存储。 产物同步过程包含来源校验:仅接受来自受信任生成服务的 HTTPS 地址,并阻止解析到内网或保留地址的来源,防止从不可信地址写入内容。默认信任的来源域名后缀为volces.com、volccdn.com、byteplus.com 和 bytepluses.com。单个产物的最大大小默认为 512 MB。
以下环境变量用于调整产物同步行为:
veadk studio 参数
部署到 VeFaaS
veadk studio deploy 将 Studio 部署为 VeFaaS 应用,并接入 VeIdentity 登录。部署命令会创建或复用 Serverless API Gateway;未指定 IAM Role 时,还会创建或复用 VeADKFrontendServiceRole 及 VeADKFrontendPolicy。未指定 --user-pool-id 与 --allowed-client-id 时,命令会在部署地域自动创建或复用同名的 VeIdentity 用户池与 Web 客户端。部署完成后,命令会把公网回调地址注册到用户池客户端并更新应用配置。
部署前,命令会检查 VeFaaS 服务角色 ServerlessApplicationRole:缺失时自动创建并绑定 vefaas_full_access 自定义策略及所需系统策略;角色已存在时,补齐缺失的自定义策略与系统策略,火山引擎与 BytePlus 均适用。该检查独立于 --iam-role,即使指定自定义角色也会执行。
准备符合权限要求的火山引擎凭证,然后执行:
--user-pool-id 与 --allowed-client-id 时,部署命令会在 --region 指定的地域自动创建或复用名为 veadk-studio-{vefaas-app-name} 的用户池和名为 veadk-studio-{vefaas-app-name}-web 的 Web 客户端,并在部署完成后回显它们的 ID。也可以同时传入这两个参数以使用已有的用户池和客户端;仅传入 --user-pool-id 时,命令会在该用户池中创建或复用 Web 客户端。单独传入 --allowed-client-id 而不指定 --user-pool-id 时会报错。
Preview 中的未发布 Studio 能力需要从 VeADK 源码目录执行部署,并使用 --from-source 将当前源码构建进 VeFaaS。省略该参数时,部署使用最新 PyPI 发布版本,不包含尚未发布的能力。
部署凭据按以下顺序解析:优先使用 --volcengine-access-key / --volcengine-secret-key 显式传入;未提供时读取当前进程的 VOLCENGINE_ACCESS_KEY / VOLCENGINE_SECRET_KEY 环境变量;两者均缺失时,读取 ~/.volc/credentials 中的 [default] 配置。任一来源解析到完整的 Access Key 与 Secret Key 即可继续部署。STS 临时凭证的 Session Token 通过 --volcengine-session-token 显式传入,或依次读取 VOLCENGINE_SESSION_TOKEN、VOLC_SESSIONTOKEN 环境变量和 ~/.volc/credentials 中 [default] 配置的 session_token 字段;未提供时留空,仅使用长期 AK/SK。
部署成功后,终端会输出公网 URL、VeFaaS 应用 ID,以及 Identity 地域、用户池 ID、用户池域名和客户端 ID。打开公网 URL 时,Studio 会先跳转到 VeIdentity 完成登录。
当部署过程中自动创建了 Identity 用户池、TOS 存储桶或沙箱 Tool 时(即未通过 --user-pool-id 与 --allowed-client-id 指定已有用户池、未通过 VEADK_STUDIO_TOS_BUCKET 指定已有存储桶、或未通过沙箱 Tool ID 参数指定已有 Tool),终端会额外输出已配置的云资源清单,包括每个沙箱 Tool 的类型与 ID、私有 TOS 存储地址、用户池 ID 和客户端 ID,并给出对应云服务商的 Identity 控制台链接。该清单同时提示密码登录默认关闭,邀请用户前需先配置 SSO 身份提供者。
--region 指定 Studio 的部署地域,默认为 cn-beijing,也支持 cn-shanghai;VeFaaS Application、Function、API Gateway 和 AgentKit 资源均使用所选部署地域。同时传入 --user-pool-id 与 --allowed-client-id 时,命令会在所部署地域以及北京、上海两个地域之间查找已有的 VeIdentity 用户池与客户端:优先查询部署地域,未命中时跨地域查询另一个地域;跨地域命中时终端会输出 warning 并继续部署。省略这两个参数时,用户池与客户端在部署地域创建或复用,不进行跨地域查找。--project 指定 VeFaaS 函数所属项目,默认为 default。
部署者的长期 AK/SK 不会写入 VeFaaS 应用环境变量。已部署的 Studio 使用绑定 IAM Role 的临时凭证访问火山引擎服务。部署时自动生成或复用知识库签名密钥并写入 VEADK_STUDIO_KNOWLEDGE_SIGNING_KEY 环境变量,用于标识知识库归属。若已存在该环境变量则保留原值,否则根据部署密钥和部署标识生成确定性密钥,使同一部署在更新后仍能验证已创建的知识库。
未指定 --sandbox-chat-codex-tool-id 时,部署命令会在 --region 指定的地域创建内置智能体使用的 AgentKit CodeEnv Tool;同时还会额外创建一个 DevEnv Tool 用于开发沙箱。这些 Tool 创建的 Session 与 VeFaaS Function、API Gateway 保持同一地域。模型凭据只配置在各自 Tool 中,VeFaaS Function 只接收 Tool ID。若已有符合要求且地域一致的 Tool,可通过参数直接复用。
沙箱 Tool 使用的模型、接入地址和候选地域按云服务商区分:火山引擎使用 doubao-seed-2-1-pro-260628 模型与 https://ark.cn-beijing.volces.com/api/v3,候选地域为 cn-beijing 与 cn-shanghai;BytePlus 使用 dola-seed-2-1-turbo-260628 模型与 https://ark.ap-southeast.bytepluses.com/api/v3,候选地域为 ap-southeast-1。
部署和更新过程中创建沙箱 Tool 时,CLI 会自动对限流、网络错误和服务端临时故障进行重试,并在并发创建多个 Tool 时错开请求以避免触发限流。每次创建请求携带幂等令牌,确保重试不会产生重复 Tool。Tool 创建失败时,错误信息会包含 Tool ID 和云服务返回的错误码、状态码与请求 ID,便于排查。
IAM 权限预检
veadk studio deploy 在创建任何云资源前,自动执行只读 IAM 权限预检。预检读取当前调用者已绑定的 IAM 策略,逐一评估部署所需 IAM Action 是否满足。所需权限范围取决于部署配置:当未通过 --user-pool-id 与 --allowed-client-id 指定已有身份资源时,需要创建用户池相关权限;未指定 --iam-role 时需要角色管理权限;未通过 VEADK_STUDIO_TOS_BUCKET 指定已有存储桶时需要存储桶创建权限;未指定沙箱 Tool ID 时需要 Tool 创建权限;未指定 --gateway-name 时需要网关管理权限(包括开放 Studio API 所需 HTTP 方法的 apig:UpdateRoute 权限);未启用 --keep-failed-deploy 时还需要清理失败资源的删除权限。
预检完成后,终端输出一张权限表格,列出每项 IAM Action 的作用及是否满足。若存在缺失权限,部署在创建云资源前终止;终端同时输出对应云服务商的 IAM 配置入口链接,便于前往补充权限。火山引擎入口为 https://console.volcengine.com/iam/policymanage,BytePlus 入口为 https://console.byteplus.com/iam/policymanage。
使用 --precheck-only 可仅执行权限预检而不创建任何云资源,用于在正式部署前确认凭证权限是否完备:
应用内更新
Studio 固定从维护在北京地域的veadk-studio TOS 发布源读取新版本,客户部署地域无需额外配置;部署完成后管理员可在导航栏中把前端与 Python 后端一起升级。使用 --studio-update-bucket 与 --studio-update-prefix(或对应的 VEADK_STUDIO_UPDATE_BUCKET、VEADK_STUDIO_UPDATE_PREFIX 环境变量)可覆盖默认发布源,发布源地域始终为 cn-beijing。发布包不绑定云服务商,火山引擎与 BytePlus 部署共用同一发布源;更新时根据部署环境中的 CLOUD_PROVIDER(或 AGENTKIT_CLOUD_PROVIDER)自动选择对应的云服务商入口,BytePlus 部署在更新过程中同步写入 BYTEPLUS_REGION。
Studio 每三分钟检查一次更新,列出可用版本及其变更说明。管理员确认升级后,Studio 会校验完整发布包,同时替换 Python 后端与前端资源并重新发布原 Application;Application 与 Function ID、访问 URL、SSO 客户端和服务端 Secret 保持不变。
更新过程中,Studio 会检查当前 VeFaaS Function 缺失的云资源并自动补齐:若未配置持久化存储(VEADK_STUDIO_TOS_BUCKET 与 VEADK_STUDIO_TOS_REGION),则按部署地域创建或复用 TOS 存储桶;若缺少沙箱快照 Tool(SANDBOX_CHAT_CODEX_SNAPSHOT、SANDBOX_CHAT_OPENCLAW_SNAPSHOT、SANDBOX_CHAT_HERMES_SNAPSHOT),则按当前云服务商自动创建。补齐的资源以环境变量形式写入 Function 配置,使旧版本 Studio 在升级后也能使用新增的持久化存储和沙箱能力。更新进度面板会显示「检查并补齐 Studio 云资源」阶段。
更新状态中的 VeFaaS Function 控制台链接按云服务商区分:火山引擎指向 console.volcengine.com,BytePlus 指向 console.byteplus.com。
应用内更新不会修改 Function 的 IAM 角色策略。如需更新 IAM 权限,请使用
veadk studio update 命令。vefaas:GetApplicationRevisionLog 权限时,日志面板替换为权限提示,并显示对应云服务商的 IAM 控制台链接(火山引擎为 console.volcengine.com/iam,BytePlus 为 console.byteplus.com/iam),管理员可据此前往补充权限;更新不受影响,继续进行。更新完成后,Studio 会自动刷新页面以加载新版本;刷新前如有未关闭的更新对话框,也会在重新打开页面后自动恢复显示。
应用内更新仅对具备
admin 角色的登录用户开放,更新 Studio 自身的 VeFaaS Function,不影响已部署的 AgentKit Runtime。更新时补齐云资源使用部署者配置的火山引擎或 BytePlus 凭证。部署参数
前端使用数据采集
Studio 前端的产品行为数据通过 TEA 上报,用于统计 Studio 实例访问量、登录使用情况,以及智能体部署、沙箱创建、智能体连接、对话发送、调试测试和源码下载的结果。运行veadk studio(包括本地启动和 veadk studio deploy 部署的实例)时自动启用,无需任何配置;veadk frontend 不启用。上报失败时不影响 Studio 正常使用。页面加载后,Studio 会在用户登录前记录一次匿名的页面访问;用户身份确认后再关联用户信息,用于区分匿名访问与登录访问。
部署时 Studio 会自动通过 /web/ui-config 接口下发部署 ID、用户池 ID、应用 ID、函数 ID、部署地域、项目和云账号 ID 等上下文供前端关联事件,无需手动设置。云账号 ID 由 veadk studio deploy 和 veadk studio update 在部署或更新时自动解析并写入运行时环境,不涉及用户个人身份。
埋点仅采集使用统计维度,包括部署 ID、云账号 ID、用户 ID、角色、地域、来源、创建方式、是否使用智能生成,以及智能体部署、沙箱创建、智能体连接、对话发送、调试测试和源码下载的成功或失败结果与失败阶段。匿名入口访问不包含用户 ID,仅在登录后关联。失败事件仅保留稳定的错误类别和错误码,不采集错误堆栈、错误正文或自由文本。埋点不采集对话内容、提示词、生成代码、环境变量值或任何密钥。
此变更仅影响 Studio 前端的产品行为埋点。VeADK 运行时的 APMPlus OpenTelemetry 链路观测和问题反馈中的 APMPlus 查询能力不受影响,继续保留。
更新已部署的 Studio
veadk studio update 从本地 VeADK 源码重新构建 Studio,更新已有 VeFaaS Function 的代码并重新发布原 Application。运行前安装 Node.js 与 npm,并在 VeADK 源码目录执行:
--region 和 --project 时,命令会在北京、上海及全部可见项目中查找同名 Application。若存在多个候选项,需要补充地域或项目缩小范围。更新保留 Application 与 Function ID、访问 URL、SSO、IAM、网关和已有环境变量;品牌和各 CodeEnv、DevEnv Tool ID 仅在显式传入相应参数时覆盖。更新时自动检查并补齐 VEADK_STUDIO_KNOWLEDGE_SIGNING_KEY 环境变量:若缺失则根据当前环境生成,确保更新后知识库管理功能可用。若函数使用默认 Studio IAM Role,更新时会同步刷新该角色的托管策略至最新版本;使用自定义 Role 时不做修改。更新还会向已绑定的 VeIdentity 用户池客户端注册当前 Studio 公网地址的 /oauth2/callback 回调并启用免确认,确保更新后 SSO 登录回调可用;注册失败时终端会输出 warning,并提示在用户池客户端的允许回调地址中手动添加该地址。查询已有部署与提交代码包更新时,命令会对限流、网络抖动等服务端临时故障自动重试;重试后仍失败时终端会提示云端发布可能仍在进行,可稍后重新执行同一更新命令。
Studio 角色与 Runtime 权限
--admin 和 --developer 各自接收逗号分隔的本地用户名或 OAuth 邮箱名单。空格会被忽略,身份匹配不区分大小写;同一身份同时出现在两个名单时,admin 优先。本地启动示例:
VEADK_STUDIO_ADMINS 和 VEADK_STUDIO_DEVELOPERS 环境变量设置这两个名单。部署 Studio 时使用相同参数:
admin 处理,拥有全部 Studio 能力并可见全部 Runtime。只要传入任一名单就会启用角色权限;未命中名单的身份为普通用户。
Studio 根据登录账号限制 Runtime 的可见范围;没有创建者记录的历史 Runtime 仅
admin 可见。
查看系统信息
登录后,侧边栏底部的账号菜单提供「系统信息」入口,选择后在当前页面上方打开系统信息页面,展示 Studio 的版本、存储、沙箱信息和用户池。页面左上角的返回按钮可回到打开系统信息前所在的页面,当前页面保持不变。页面中的 TOS 存储桶、沙箱 Tool 和用户池均提供跳转到对应云服务商控制台的链接,点击后在新标签页打开。该页面仅对admin 角色开放,所有资源标识均为只读;管理员可对需要修复的 Codex Sandbox Tool 执行模型环境变量回填(见沙箱信息)。
通用
显示 Studio 的「当前版本」。本地启动或从源码构建部署时,版本号取自已安装的 VeADK 版本。当 Studio 切换到云端 Frontend 发布版本时,显示对应的发布版本号;未取到版本信息时显示「—」。存储
显示 Studio 持久化存储使用的 TOS 地址。配置了VEADK_STUDIO_TOS_BUCKET 与 VEADK_STUDIO_TOS_REGION 时显示对应的存储桶访问地址,例如 veadk-studio-<账号 ID>.tos-cn-beijing.volces.com,点击地址可在云控制台中打开对应存储桶;未配置时显示「未配置」。
沙箱信息
列出 Studio 已配置的沙箱 Tool 及其 ID,包括 Codex Sandbox(SANDBOX_CHAT_CODEX)、DeepSeek Harness Sandbox(SANDBOX_CHAT_CODEX)、OpenClaw Sandbox(SANDBOX_CHAT_OPENCLAW)、Hermes Sandbox(SANDBOX_CHAT_HERMES)和 Dev Sandbox(SANDBOX_DEV),各项按固定顺序排列。其中 DeepSeek Harness Sandbox 与 Codex Sandbox 共用同一个 AgentKit CodeEnv Tool(SANDBOX_CHAT_CODEX),因此两者显示相同的 Tool ID。已配置的 Tool ID 提供跳转到云控制台对应 Tool 详情页的链接;未配置的 Tool 显示「未配置」。
Codex Sandbox 模型环境变量修复
对于 Codex Sandbox(SANDBOX_CHAT_CODEX)与 Codex Sandbox 快照版(SANDBOX_CHAT_CODEX_SNAPSHOT),系统信息页面还会检测其 Tool 环境变量中是否已配置 MODEL_AGENT_API_KEY 与 MODEL_AGENT_BASE_URL。当检测到缺失其中任一变量、且 Tool 中同时存在 CODEX_API_KEY 与 CODEX_BASE_URL 时,该 Tool 的 ID 旁会显示更新按钮。
管理员点击更新按钮后,Studio 服务端使用自身配置的火山引擎或 BytePlus 凭证从 Tool 当前环境变量中读取 CODEX_API_KEY 与 CODEX_BASE_URL,回填缺失的 MODEL_AGENT_API_KEY 与 MODEL_AGENT_BASE_URL,完成后在 Tool ID 旁显示更新结果。整个过程中密钥不会下发到浏览器。
若 Tool 缺少
CODEX_API_KEY 或 CODEX_BASE_URL,更新按钮不会出现,Tool ID 旁会显示缺少哪些变量的错误提示。此时需先在云控制台为该 Tool 补充对应的环境变量,再刷新系统信息页面重新检测。