在工作台中选择智能体时,Studio 会先完成会话列表、智能体信息、能力和自动评测状态的加载,再切换可见选中项,避免切换过程中出现中间加载状态。
发送消息或调试运行智能体时,Studio 通过流式接口接收回复。若 30 秒内未收到首个流式事件,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 时,依次读取 AGENTKIT_CLOUD_PROVIDER 与 CLOUD_PROVIDER 环境变量确定云服务商,均未设置时使用火山引擎。
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_* 两个变量。使用火山引擎作为云服务商且未自定义 TOS 端点时,Studio 会在首次访问 TOS 时探测默认的公网端点(
tos-<地域>.volces.com)。若探测遇到传输层网络错误,Studio 自动切换到对应的内网端点(tos-<地域>.ivolces.com),后续访问继续使用所选端点。鉴权失败、权限不足等非网络类 TOS 服务错误不会触发回退。浏览器端获取的签名 URL 始终使用公网端点,确保外部可访问。BytePlus 和自定义端点不受此机制影响。veadk-studio/v1/users/<编码用户 ID>/<命名空间>/<范围>/<资源 ID>/。视频参考素材使用 video/<素材角色>/<素材 ID>/ 命名空间,存储在该路径下的文件内容及 metadata.json。
自动评测生成的优化项快照存储在 veadk-studio/v1/evaluation-optimizations/<Runtime ID>/<应用名>.json 路径下,每个 Runtime 应用保留最新一份快照。
智能开发项目版本存储在 veadk-studio/v1/users/<编码用户 ID>/intelligent-development/projects/<项目 ID>/versions/<版本 ID>/ 路径下,每个版本包含不可变的源码压缩包、验证报告和提交标记。查看、下载和部署已保存的版本不依赖原始 Sandbox;项目摘要仅作为索引。
自定义品牌
使用--site-title 设置最多 16 个字符的系统名称,使用 --site-logo 指定本地图片或 HTTP(S) 图片 URL。Logo 会用于侧边栏、登录页和浏览器 favicon。浏览器页面标题会随当前界面动态变化:新会话首页只显示系统名称;进入对话后显示会话名称;进入自动化、系统信息、创建智能体、资源库、搜索等功能页时,标题为「系统名称 - 页面名称」。省略 --site-title 时使用默认名称 AgentKit Studio。
VEADK_SITE_TITLE 与 VEADK_SITE_LOGO 环境变量配置。部署到 VeFaaS 时可使用相同参数;网络图片会在部署时下载并打包,部署后的站点不依赖原图片 URL。
界面语言
Studio 支持简体中文(zh-CN)和英文(en-US)两种界面语言。首次访问时,Studio 根据浏览器语言设置自动检测并选择匹配的界面语言;未匹配到受支持语言时默认使用英文。
语言选择会保存在浏览器本地存储中,后续访问保持上次选择的语言。也可以在侧边栏底部的账号菜单中选择「语言」,手动切换界面语言,切换即时生效,无需重新加载页面。
创建智能体
- 在「智能体」页面中点击「创建智能体」,在创建菜单中选择「从 0 快速创建」进入自定义配置,选择「智能模式」用自然语言描述目标由 Codex 构建,选择「从代码包添加和部署」上传已有项目,或选择「从存量项目迁移」将 LangChain、Dify 等框架的项目迁移至 VeADK。
- 配置模型、系统提示词、工具、记忆和知识库,并从 Skill Hub、本地上传或 AgentKit SkillSpace 添加技能。多智能体项目还可以配置顺序、并行、循环或 A2A 节点,并在画布中查看和编排智能体拓扑。
- 检查生成的项目文件,并在受限的临时进程中测试运行;需要离线使用时下载 ZIP。
- 在「优化」步骤中按需为智能体启用 Harness Sidecar 优化项;该步骤为可选,不勾选时不启动优化。
- 在「环境」步骤中选择预构建的运行环境镜像,或使用 AgentKit 默认运行环境;该步骤为可选。
- 选择部署到 AgentKit,在工作台中观察构建镜像、部署和发布进度。部署完成后,智能体以已发布状态出现在工作台,后续可在同一 Runtime 上更新。
除了上述自定义创建流程,Studio 还支持 DeepSeek Harness 创建模式:在创建菜单中选择「快速创建」后,在 Agent 类型对话框中选择「DeepSeek Harness」可进入 DeepSeek Harness 配置页面,配置 DeepSeek 模型服务、自定义模型提供方、命令执行和子智能体模型选择等参数,然后预览、导出或部署为 AgentKit Runtime。详见DeepSeek Harness 创建与部署。
自定义创建中的资源选择器(如智能体中心、知识库集合)支持按关键词本地筛选:在下拉框中输入文字即可过滤当前已加载的选项。筛选只作用于已经加载的列表,不会改变地域、项目范围或刷新逻辑。
部署进入构建镜像阶段时,Studio 会在部署进度卡片中实时展示构建日志。日志在服务端完成凭据脱敏与篇幅截断后下发到浏览器,面板显示同步状态(同步中、已同步或读取失败)与行数,可展开、收起并复制内容;日志支持语法高亮,并默认自动滚动到末尾,手动向上滚动后暂停跟随,回到底部时恢复跟随;构建失败时,Studio 会重试同步最终构建日志并标记为失败状态,便于在日志末尾定位真实失败原因。日志同步依赖部署所用的火山引擎凭证,无法读取时面板显示失败状态,不影响部署继续进行。自定义创建和代码包部署均支持该能力。
部署过程中因连接中断导致无法确认最终状态时,Studio 将该任务标记为「部署状态待确认」,在工作台和部署进度卡片中显示独立的状态图标与提示横幅,并禁用部署或更新按钮以避免重复部署。提示用户前往 AgentKit 或 Code Pipeline 查看同一任务的状态。此前这种情况会显示为「部署失败」。
部署进行期间,工作台详情页聚焦于部署进度:保留智能体标题并展示可滚动的部署进度面板,同时隐藏其余详情标签与内容;部署结束后恢复显示常规详情标签。自定义创建、代码包部署与更新已部署智能体均遵循该行为。
部署到 AgentKit 时,根智能体的描述会自动整理为符合 Runtime 规范的单行描述(至多 255 字节,去除换行、控制字符与不安全符号);完整描述保留在项目中,仅用于生成 Runtime 描述。若整理后的描述被 Runtime 拒绝,Studio 会去掉描述后重试创建,不影响其他配置。
智能体的系统提示词(
instruction)至多 40,000 个字符,超出时生成或测试项目会报错。系统提示词编辑器提供所见即所得的 Markdown 编辑能力。当内容包含编辑器无法解析的 Markdown 语法时,编辑器自动切换为纯文本模式,仍可正常编辑与保存。
自定义创建支持「快速创建」模式:启用后,生成的智能体项目自动内置
CreateAgentToolset 动态智能体委派工具集,主智能体可在运行时根据用户任务收集资源、创建子智能体并移交执行。快速模式下生成的 requirements.txt 固定使用 veadk-python 1.1.11 版本,并附带兼容模块以确保动态委派能力在当前部署版本中可用。部署到 AgentKit 时,若 Runtime 使用 Studio 自动生成的默认运行角色,Studio 会自动为该角色附加 AgentKitFullAccess 策略,使子智能体具备访问 AgentKit 资源的权限;使用自定义运行角色时不自动修改,需自行确保角色已具备所需权限。在自定义创建和快速创建向导中编辑智能体名称时,Studio 会在输入或失焦时即时校验并显示名称错误(如不符合命名规则或名称在结构中不唯一),无需等到提交。
模型选择
配置 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 中以占位符形式列出:
模型回退配置
配置 LLM 智能体时,可为每个智能体添加有序的回退模型。当主模型不可用时,VeADK 按顺序依次尝试回退模型。回退模型分为两类:- 同提供商回退:仅指定模型名称,自动复用主模型的提供商、API 地址和 API Key。生成的项目代码通过
model_name列表实现回退。 - 跨提供商回退:为每个回退端点单独指定模型提供方、API 地址和 API Key。生成的项目代码使用
ModelFallbackEndpoint对象,通过model_fallbacks参数传入。
模型回退的完整参数说明与使用限制参见模型。
FALLBACK_MODEL_<智能体名称>_<序号>_API_KEY,并在 .env.example 中以占位符形式列出:
配置部署参数
在部署配置区选择发布区域和网络模式,并按需设置 Runtime 实例数。实例设置仅在创建新 Runtime 时出现,更新已有 Runtime 时不显示。更新已有 Runtime 时,发布区域和网络模式从现有 Runtime 读取并保持不变。
最小实例数为大于等于 0 的整数,最大实例数为大于 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 稳定性治理」时,Studio 从先前在「添加 MCP 工具」中配置的 HTTP MCP 工具自动注入 MCP 配置,无需手动填写。至少需要配置一个使用 HTTP 传输的 MCP 工具并提供有效的服务地址;Bearer Token 仅在该服务需要认证时填写,不同 HTTP MCP 工具可以使用各自的认证凭证。不满足上述条件时,发布步骤会提示返回「添加 MCP 工具」补充配置后再重新发布。stdio 传输的 MCP 工具不支持 MCP 稳定性治理。
配置云上环境
自定义创建的生命周期依次为「架构」「调试」「优化」「环境」「发布」五个步骤。「环境」步骤位于优化与发布之间,用于选择预构建的运行环境镜像。该步骤为可选:选择「默认环境」时,部署使用 AgentKit 默认镜像构建,生成的项目中不包含Dockerfile。
在「环境」步骤的下拉列表中选择已构建成功的运行环境。列表展示环境名称、操作系统、Python 版本和构建状态(准备中、排队中、构建中、扫描中、可用或构建失败);仅构建状态为「可用」的环境可选。选中后,部署时以该环境镜像作为基础镜像构建智能体镜像,所选环境版本固定到此次部署。未选择环境时使用 AgentKit 默认运行环境。
工作区
Studio 侧边栏提供「工作区」入口,用于将可复用的运行环境按用途组织为工作区。一个工作区可以包含多个环境,同一个环境也可以加入多个工作区;删除工作区只会删除组合关系,不会删除环境本身。智能体的创建与部署仍直接选择具体环境及其构建版本,工作区仅用于组织和管理环境。 工作区页面提供「工作区」和「环境」两个标签页,可在两者之间切换。工作区列表展示每个工作区的名称、描述、包含的环境数量和可用环境数量;点击「管理」进入工作区详情,可在其中添加或移除环境。每个环境卡片同时展示引用该环境的工作区数量。工作区元数据保存在与环境相同的 Studio 私有 TOS 存储桶中。工作区需要管理员配置持久化存储后才能使用。未配置持久化存储时,工作区相关功能不可用。
被工作区引用的环境不能直接删除。删除环境前需要先从引用该环境的所有工作区中移除该环境。
管理运行环境
在「工作区」页面的「环境」标签中创建、管理和构建可复用的运行环境。运行环境是一份包含操作系统、Python 版本、命令行工具、技能和 Dockerfile 的配置定义,构建后生成容器镜像,可在部署智能体时作为基础镜像选择。环境定义、生成的 Dockerfile、构建版本、日志元数据和镜像地址保存在 Studio 私有 TOS 存储桶中。环境管理需要管理员配置持久化存储后才能使用。未配置持久化存储时,环境相关功能不可用。
创建运行环境
在「环境」标签中点击「创建环境」后,选择创建方式:
四种方式均需填写环境名称和描述。「自定义配置」和「上传 Dockerfile」通过 Studio 管理的 Dockerfile 构建镜像;「从 Git 仓库构建」从外部仓库获取 Dockerfile 并构建;「绑定已有 CR 镜像」直接使用已有镜像,不触发构建。
自定义配置
选择「自定义配置」后,填写以下配置项:
选择命令行工具时,可从以下官方工具中按需勾选,所选工具会被预装到环境镜像中:
创建或保存环境时,Studio 根据操作系统、Python 版本和所选工具自动生成 Dockerfile。未提供自定义 Dockerfile 时,使用自动生成的版本。镜像基于所选操作系统的官方 Ubuntu 镜像,安装 Python 运行时、所选工具的系统依赖,并预装 VeADK 运行时依赖。火山引擎构建使用火山引擎 APT 镜像、阿里云 PyPI 镜像、华为云 Python 源码镜像和 npmmirror 的 Playwright 浏览器镜像;BytePlus 构建使用对应的官方源。跨版本 Python 组合(如 Ubuntu 22.04 + Python 3.12)使用固定补丁版本的源码编译,不依赖 GitHub 托管的二进制文件。
生成的 Dockerfile 不包含任何访问密钥或凭据。工具所需的令牌等凭据应在部署后通过运行时环境变量提供,不要写入 Dockerfile。
基础环境类型
创建环境时可选择以下基础环境:上传的 Dockerfile 中包含
aio.sandbox 时,Studio 自动识别为 AIO Sandbox 基础环境;包含 /codexenv: 时,自动识别为 Codex Sandbox 基础环境。/opt/gem/run.sh,端口 8080),并注入模型相关环境变量。Tool 创建过程异步执行,环境版本在 Tool 就绪后才会变为完全可用。Tool 未就绪时,该环境版本无法挂载到对话中执行命令。
选择 Codex Sandbox 基础环境时,构建镜像后 Studio 同样会自动创建关联的 AgentKit Sandbox Tool 并注入模型相关环境变量。Tool 就绪后,该环境版本可挂载到对话中,智能体通过 delegate_to_codex_sandbox 工具将完整任务委派给 Codex App Server 执行,而非通过 Sandbox Shell 直接执行命令。
每个环境版本提供只读 Manifest,可通过 GET /web/environments/{environmentId}/builds/{versionId}/manifest 接口查看。Manifest 包含镜像地址、基础环境、操作系统、Python 版本、预装包、能力和关联的 Sandbox Tool 状态。环境卡片中可打开同一版本绑定的 Manifest 以 YAML 格式查看和复制。
上传 Dockerfile
选择「上传 Dockerfile」后,通过拖拽或点击上传区域选择本地 Dockerfile 文件。上传后可在内容预览区域继续编辑文件内容。 上传的 Dockerfile 须满足以下条件:上传 Dockerfile 时不再选择操作系统、Python 版本、命令行工具和技能;这些配置由上传的文件内容决定。环境名称和描述仍需填写。
从 Git 仓库构建
选择「从 Git 仓库构建」后,提供一个公开的 HTTPS Git 仓库地址和可选的分支、Tag 或 Commit。Studio 探查仓库并自动检索匹配Dockerfile、Dockerfile.* 和 *.Dockerfile 命名规则的文件。检索到候选文件后,选择其中一个作为构建入口;仓库中没有匹配文件时无法继续创建。
Studio 保存以下信息用于构建:
构建时,CodePipeline 以仓库根目录作为构建上下文,使用选中的 Dockerfile 构建镜像。构建版本中会记录检出的实际 Commit SHA,便于追溯。可选择指定目标 Container Registry 仓库作为构建结果的推送位置,包含以下字段:
未指定目标 CR 仓库时,Studio 使用托管的 CR 资源。每次构建产生的版本 Tag 由 Studio 记录在构建结果中。切换地域会清空已选的 Registry、Namespace 和 Repository,避免跨地域组合无效资源。服务端使用所选地域校验 CR 资源,并将 Git 构建结果推送到该地域的目标 Repository。
绑定已有 CR 镜像
选择「绑定已有 CR 镜像」适用于镜像已由用户自己的流水线构建并推送到 Container Registry 的场景。依次选择地域、Registry 实例、Namespace、Repository,最后填写 Tag 或 Digest。Studio 直接使用该镜像,不启动 CodePipeline 构建。 Studio 保存以下信息:
选择地域后,Studio 通过服务端资源接口级联加载该地域下的 Registry 实例、Namespace 和 Repository。切换地域会清空已选的 Registry、Namespace 和 Repository。创建环境时,Studio 校验所选 CR 资源是否存在并解析镜像地址,校验通过后直接创建一个可用版本。
绑定已有镜像时不能同时选择技能。镜像中所需的技能应在镜像流水线中预先安装。
代码仓库构建与已有镜像绑定不能同时配置。代码仓库构建通过 CodePipeline 生成镜像并推送到目标 CR 仓库;已有镜像绑定直接使用现有镜像,不触发构建。
构建环境镜像
创建或保存环境后,点击「构建」启动异步镜像构建。Studio 将构建上下文上传到 TOS 存储桶,通过 CodePipeline 执行构建流水线,并将结果镜像推送到 Container Registry。构建过程分为准备、排队、构建、扫描等阶段,最终状态为「可用」或「构建失败」。 从 Git 仓库构建的环境同样通过 CodePipeline 构建镜像并推送结果,构建版本中记录检出的 Commit SHA。绑定已有 CR 镜像的环境无需构建,创建时即产生可用版本。 构建完成后,环境列表中展示最新版本的构建状态和镜像地址。可在环境详情页查看构建步骤、进度和日志。日志支持语法高亮,并默认自动滚动到末尾,手动向上滚动后暂停跟随,回到底部时恢复跟随。构建失败时,日志末尾展示错误信息,便于定位失败原因。 选择 AIO Sandbox 或 Codex Sandbox 基础环境时,镜像构建完成后会追加一个「创建 AgentKit Sandbox Tool」构建步骤。该步骤异步创建关联的私有 Sandbox Tool 并注入模型相关环境变量,Tool 就绪后环境版本才完全可用。Tool 创建期间环境状态显示为「构建中」,Tool 就绪后变为「可用」;Tool 创建失败时环境状态变为「构建失败」。环境版本在 Tool 就绪前无法挂载到对话中执行命令。首次构建环境镜像时,Studio 自动创建或复用托管的 CodePipeline Workspace、Pipeline 和 Container Registry 资源。使用账号级默认 TOS 存储桶时,Container Registry 复用账号的
agentkit-cli-<账号 ID> 实例,并在其中创建 runtime-environments/base-images 仓库。环境构建资源
部署 Studio 时,可通过以下标志指定已有的环境构建资源:--environment-cr-repository 须使用 registry/namespace/repository 格式,各段不能包含空格或 .、..。未指定时,Studio 创建或复用托管资源。这些配置不从环境变量读取,仅在部署命令中生效。部署后的「系统信息」页面展示最终使用的 CodePipeline 和 Container Registry 名称、来源及控制台链接,这些值为资源标识,不包含凭证。
环境构建资源与智能体部署构建资源独立管理。环境镜像构建使用上述 CodePipeline 和 Container Registry;智能体部署使用「配置构建资源」中管理的资源。当智能体选择了预构建环境时,部署会将智能体镜像构建到环境镜像所在的 Container Registry 命名空间下,确保构建凭证可同时拉取基础镜像和推送智能体镜像。
环境分享码
环境配置可以导出为分享码,并在另一位 Studio 用户的环境列表中导入,实现环境配置的跨实例共享。分享码以akenv://v1/ 为前缀,是自包含、无服务端分享记录的版本化数据。
导出分享码
在环境列表中,每个环境卡片提供导出分享码的入口。导出的分享码包含环境名称、描述、系统、语言、组件、Dockerfile、Git/CR 来源和可移植的技能配置。本地技能文件会直接写入分享码。如果源环境存在可用版本,分享码会同时携带其镜像、Sandbox Tool 和版本级技能快照,在同一云厂商的 Studio 中导入后可直接挂载。 浏览器拒绝自动复制时,分享弹窗会保留完整分享码供手动复制。环境列表检测到剪贴板以akenv:// 开头时会提示导入。
导入分享码
在环境列表中点击「导入环境」,粘贴一个或多个分享码。分享码之间可用英文逗号、中文逗号或换行分隔,单次最多处理 20 个。Studio 会先检测并列出每条分享码的有效性,再逐项导入。重复的分享码会被自动忽略。一个条目导入失败不会回滚已成功添加的环境。 导入行为根据分享码内容有所不同:
导入完成后,导入结果中展示每条分享码的状态(已创建、重复或失败)、环境名称和失败原因。
智能模式
智能模式是一种基于自然语言目标的创建方式:在「添加智能体」中选择「智能模式」,用一段话描述智能体要解决的问题,沙箱中的 Codex 会在同一轮次内直接处理请求——对于不需要改动项目的提问、澄清或说明,直接给出自然回答;对于开发类请求,则完成项目构建、调试和临时云端验证,生成可部署的源码产物。智能模式需要已配置开发沙箱 Tool(
SANDBOX_DEV 或 --sandbox-dev-tool-id),且该 Tool 已配置模型凭据(模型 ID、API Key 与指向当前云官方 Ark 端点的模型 API 地址)。未配置 Tool 时该入口显示为「暂不可用」;Tool 已配置但模型凭据缺失或不匹配时,入口同样不可用并提示重新部署 Studio。veadk studio deploy 部署时默认自动创建该 Tool 并完成模型配置;本地启动时可手动指定已有 Tool ID。「智能模式」页面在目标输入区下方提供模型选择器,用于指定本次智能开发会话中 Codex 使用的模型。模型列表由 Studio 服务端从当前账号已开通的火山方舟模型中获取,仅展示当前云服务商允许用于智能开发的模型,每项显示模型名称、ID、厂商和生命周期状态,支持搜索筛选。默认使用开发沙箱 Tool 已配置的模型;选择其他模型后,所选模型的名称、提供方和 API 地址由 Studio 服务端注入会话环境,不向浏览器下发模型凭据。模型列表加载失败时可重试。
使用流程
1
描述目标
在「智能模式」页面输入目标描述,例如「创建一个能读取销售数据、生成周报并校验输出格式的 Agent」。Codex 会在同一轮次内直接处理请求;若缺少影响结果的关键信息,会先提出必要的澄清问题。
2
构建与验证
Studio 创建一个智能开发沙箱会话,Codex 在其中梳理目标与实现方式,编写、运行和验证智能体代码。构建过程中,进度消息以独立的进度指示器形式显示在对话中,与助手回复文本区分开;进度指示器在当前轮次结束后自动消失。对于改动交付物的请求,交付物说明采用结构化格式:先给出一句话结果摘要,随后按「已完成」「验证」「遗留问题」分节列出具体内容;对于不需要改动项目的提问或说明,Codex 直接给出自然回答,不使用该结构化格式,也不修改项目代码。开发环境最多保留 8 小时,可在同一会话中持续优化。
3
查看与部署产物
构建完成后,对话中出现交付物卡片,展示智能体名称、入口文件、文件数量、产物大小和验证状态。已通过云端验证的产物标记为「已验证交付物」并展示通过的检查项数量;未经验证的产物标记为「生成的 Agent 源码」。在卡片中可查看源码文件、下载 ZIP 或直接部署到 AgentKit Runtime。
部署已验证源码
从智能模式部署时,源码由服务端从已验证的交付物或已保存的项目版本中物化,浏览器无法替换文件,仅支持创建新 Runtime。部署页面展示 Runtime 名称(可修改,需符合 4–64 个字符、仅含英文字母、数字、下划线和连字符的格式)、入口文件、产物校验值等信息,并支持选择发布区域和网络模式。部署时 Runtime 名称取自交付物中的智能体名称,资源标签会记录来源为智能开发。会话管理
智能开发会话在当前浏览器会话中运行,不显示在侧边栏的历史会话列表中。会话进行中显示「正在构建」状态;切换到其他页面后再返回可恢复当前会话。在构建进行中尝试切换页面时,Studio 提示离开将停止本轮构建,但会话仍会保留。恢复会话时,对话历史仅展示用户消息和助手回复,内部的意图判断与任务调度过程不会显示。智能开发过程中的工具调用、思考内容和进度消息在发送到浏览器前会经过服务端脱敏:任务凭据和私有路径会被移除,不会出现在浏览器中。
智能开发流式响应在静默期间每 15 秒发送一次心跳,保持连接活跃而不重置 Codex 的不活跃超时。请求截止时间和进程重启仍然适用,心跳不提供后台投递或流式重放。当 Codex 本轮任务被中断时(包括 Studio 在重连后发现的中断),Studio 会明确报告中断状态,不会发布新版本或等待不活跃超时。活动轮次在连接断开后可在同一 Thread 上恢复;新的任务进度会重置恢复余量,而重连和读取未变化的状态不会延长不活跃截止时间或重启任务。
项目版本库
每次构建或优化完成后,交付物会作为不可变的项目版本保存在 Studio 私有 TOS 存储桶中。已保存的版本不依赖原始 Sandbox 环境,即使 Sandbox 会话过期后仍可查看、下载和部署。版本按项目归组,同一项目的多个版本按创建时间排列。项目版本持久化需要管理员配置 Studio 持久化存储(
VEADK_STUDIO_TOS_BUCKET 与 VEADK_STUDIO_TOS_REGION)。未配置持久化存储时,构建产物仅在当前 Sandbox 会话有效期内可用,不会保存为项目版本。配置方式见 Studio 持久化存储。优化类构建会在交付物中标注优化前后变更,可在源码浏览器中直接查看变更对比。
版本比较
在项目版本库中选择同一项目的任意两个版本,可以比较它们之间的文件差异。比较结果以并排差异视图呈现,逐文件展示新增、删除和修改的内容。版本比较不产生额外存储对象。从代码包添加和部署
代码包部署是一种独立的创建方式:在「添加智能体」中选择「从代码包添加和部署」,上传一个已有的智能体项目压缩包,即可在 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 压缩包。压缩包最大 20 MiB,解压后总大小不能超过 20 MiB。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),确保迁移产物在目标云环境下使用正确的模型端点和模型名称。从迁移产物部署到 AgentKit 时,Studio 生成的默认 Dockerfile 的启动命令使用迁移产物
agentkit.yaml 中 common.entry_point 指定的入口文件。若未声明 common.entry_point,则回退到迁移工具返回的启动入口文件。从已保存的迁移版本部署时同样适用此规则。部署迁移产物到 AgentKit 前,迁移工具需确认产物可部署到 Runtime。若迁移工具尚未确认可部署状态,部署会被拒绝并提示尚未确认迁移产物可部署到 Runtime,请在迁移完成后再试。
分析与迁移过程中,Studio 在「Codex 执行动态」面板中以结构化形式展示 Codex 的执行进展:分析计划与迁移计划按条目显示完成状态与进度,首个未完成的计划步骤自动标记为进行中;命令执行、文件更新、外部工具调用、网络搜索和子任务协作分别显示输入、输出与退出码或错误信息,执行异常的活动条目自动展开以展示错误详情。所有动态内容在发送到浏览器前均经过服务端脱敏,密钥、令牌等敏感字段会被移除。
迁移输入区在压缩包上传按钮旁提供模型选择器,用于指定 Dev Sandbox 中 Codex 执行迁移分析与转换时使用的模型。模型列表由 Studio 服务端从当前账号已开通的火山方舟模型中获取,仅展示当前云服务商允许用于智能开发的模型,每项显示模型名称、ID、厂商和生命周期状态,支持搜索筛选。默认使用迁移能力返回的默认模型,未配置时选择列表中的首个可用模型。模型列表加载失败时可重试。任务创建后模型不可更改;所选模型的名称、提供方和 API 地址由 Studio 服务端注入迁移会话环境,不向浏览器下发模型凭据。
迁移成功后,源码会作为不可变的项目版本自动保存到 Studio 私有 TOS 存储桶,与智能开发项目版本使用同一持久化存储。已保存的版本不依赖临时迁移环境,即使 Dev Sandbox Session 过期后仍可在独立的「已迁移项目」页面查看、下载、部署、删除或比较版本,也可以将任一版本恢复到新的智能开发会话中进行下一轮意图驱动的迭代。保存源码版本需要管理员配置 Studio 持久化存储(
VEADK_STUDIO_TOS_BUCKET 与 VEADK_STUDIO_TOS_REGION),未配置时迁移产物仅在 Session 有效期内可用。配置方式见 Studio 持久化存储。迁移效果评测
迁移效果评测是存量项目迁移的可选环节。开启后,迁移完成后 Studio 会自动部署临时 Runtime、逐条执行评测用例、对迁移前后的行为差异进行评分,并生成可查看和下载的 HTML 报告。评测默认关闭,不开启时迁移流程不受影响。评测失败或被终止不会隐藏或回滚迁移产物,已保存的源码版本仍可正常使用。迁移效果评测需要管理员配置 Studio 持久化存储(
VEADK_STUDIO_TOS_BUCKET 与 VEADK_STUDIO_TOS_REGION)。未配置时,评测入口显示「当前环境暂不支持迁移效果评测」,迁移功能本身不受影响。配置方式见 Studio 持久化存储。启用评测
在创建迁移任务时,迁移工作区的「迁移效果评测」开关默认关闭。开启后,工作区中出现「迁移」与「效果评测」两个标签页,可在迁移进行的同时配置评测用例。 开启评测时,Dev Sandbox Session 的有效期从 1 小时延长至 2 小时,以容纳临时 Runtime 部署、用例执行和评测分析所需的时间。配置评测用例
迁移完成前,在「效果评测」标签页中填写评测用例。用例上传开始后即锁定,不可修改。 支持两种输入方式:
每个评测用例包含以下内容:
全部评测用例的标准化数据集不超过 10 MiB,用例数量为 1–100 个。
评测维度
评测维度决定报告中对迁移前后行为一致性的检查范围。支持标准评测和自定义维度两种模式:
可选维度如下:
项目开始上传后,评测方式和维度不再修改。
评测流程
迁移产物可部署后,评测自动按以下顺序执行:- 准备评测环境:校验迁移产物和评测用例。
- 补充环境变量(仅在需要时):如果迁移产物声明了必需或可选的环境变量,Studio 会暂停评测并提示填写。提交后评测继续。
- 部署临时 Runtime:使用迁移产物部署一个临时 Runtime,用于执行评测用例。
- 执行用例:逐条向临时 Runtime 发送评测用例,记录输出和 Runtime 原始数据。
- 执行评测分析:在同一个可恢复的 Codex 线程中,按维度对每个用例的迁移前后行为进行评分,生成证据和差距说明。
- 生成评测报告:汇总各维度评分、证据覆盖率和执行结果,生成 HTML 报告。
如果迁移未生成可评测产物(迁移失败或被取消),评测会被自动取消,不会执行。
评测报告
评测完成后,可在「效果评测」标签页中查看报告摘要,包括综合一致性评分(0–100)、证据覆盖率、执行成功率、N/A 数量、低分用例、执行异常和关键证据。报告不会给出通过或不通过的判定,仅展示量化评分和差异证据。点击「查看报告」可在侧边抽屉中预览完整 HTML 报告,并支持下载。 报告和锁定的评测数据集作为不可变资产存储在 Studio 私有 TOS 存储桶中,仅任务所有者可访问。评分采用四舍五入取整的方式计算:每个维度的原始评分先四舍五入为 0–100 的整数,用例分数和维度均分均基于这些整数计算,综合一致性总分基于维度均分计算。每次求平均时排除 N/A 项并四舍五入取整,保证报告中各层级的评分与低分用例排序一致且可复现。
评测状态
迁移任务列表和「效果评测」标签页会显示评测的当前状态:评测失败时可以重新评测。重试会使用相同的锁定数据集和维度配置,重新部署临时 Runtime 并重新执行。如果迁移产物声明了环境变量,重试时需要重新填写。
评测失败时,进度条会高亮显示失败的阶段(准备评测环境、部署临时 Runtime、执行用例、评测分析或汇总结果),并在失败面板中展示诊断信息,包括失败阶段、错误码、任务 ID、评测轮次、Runtime 名称和错误详情。错误详情来自临时 Runtime 部署或评测执行的输出,经服务端脱敏与截断后展示,可展开或收起。
添加技能
创建智能体时可从以下来源添加技能,添加后技能文件写入生成项目的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 的云服务商凭证(火山引擎或 BytePlus);部署到 VeFaaS 时,所绑定的 IAM Role 需要具备相应权限。
- 目标地域的
default项目中至少存在一个当前账号可见的 AgentKit 智能体中心,且中心内已有可调用的远程智能体。 - 启用 Studio 角色权限时,当前用户具有
developer或admin角色。
1
配置根智能体
创建 LLM 或编排型根智能体,并完成模型、描述和系统提示词等必要配置。
2
添加远程智能体节点
在左侧智能体结构中为根智能体或其他本地智能体添加子智能体,然后将类型设为「远程智能体」。根节点上的远程智能体类型不可选择。
3
选择智能体中心
默认加载火山引擎北京地域(BytePlus 为
ap-southeast-1)default 项目下当前账号可见的智能体中心。使用其他地域时,先在「更多选项」中修改地域,再从下拉框选择中心;需要重新获取列表时使用刷新按钮。4
配置发现范围
按需设置召回数量和 OpenAPI 地址。远程智能体的名称、描述和能力来自中心返回的 Agent Card,无需单独填写名称或 A2A 地址。
5
测试调用
生成项目并启动临时测试,输入一个需要目标中心专业能力的问题。响应能够使用中心内匹配智能体返回的信息,即表示发现和调用链路可用。
例如,创建名为
support_router 的 LLM 根智能体,为其添加一个远程智能体子节点,选择「售后服务」智能体中心,并保留召回数量 3 与火山引擎北京地域。测试时输入「查询订单配送异常并给出处理建议」;如果中心中存在匹配能力,根智能体会调用相应的远程智能体完成任务。
排查远程智能体问题
测试运行进程默认保留 1800 秒,可通过
--generated-agent-test-run-ttl 调整。每位登录用户最多同时运行 3 个生成智能体测试进程;超出上限时返回 429,需关闭不再使用的调试页面后重试。刷新页面后遗留的测试进程会被自动清理,单次测试运行最多接受 300 个项目文件。测试代码可能调用外部服务或访问运行环境中的数据,只应测试可信项目,并为 Studio 使用权限受限的凭证。
测试运行会通过 Streamable HTTP 验证生成智能体中配置的 HTTP MCP 工具端点的工具发现。若无法连接 MCP 服务完成工具发现,测试会返回错误并根据失败原因给出对应的排查提示,包括认证被服务拒绝、地址未提供可用的 MCP 服务、服务限流、服务暂时不可用、连接成功但未发现可用工具、连接超时、网络连接失败或服务响应不符合 MCP 协议;画布中保存的原始 URL 不会被修改。
调试运行仅支持当前云服务商的官方 Ark 模型端点。配置了自定义模型地址的智能体无法在调试运行中启动,需改用官方地址或通过部署后的 Runtime 测试。
云端部署的 Studio(运行于 VeFaaS)在调试运行时会校验 MCP 与 A2A 端点地址:仅允许连接当前函数所绑定 VPC 网段内的私网端点,位于该 VPC 之外的私网地址、环回地址、链路本地地址和云元数据地址均被禁止。本地启动的 Studio 不受此限制,仍可连接本地资源。若 Studio 无法确认 VPC 网段(例如函数未启用 VPC 或函数角色缺少 VPC 与子网的只读权限),调试运行会报错并提示检查 VPC 配置和 IAM 权限。VPC 网段信息在 Studio 服务端缓存 5 分钟。
配置记忆
为智能体启用长期记忆后,可在 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 链路观测。打开链路面板时,Studio 根据查询结果显示不同状态:
查询链路时,Studio 服务端优先按
POST /run_sse 入口 span 定位目标链路;未命中时回退到对会话时间窗口的广泛扫描,选取与该轮回复结束时间最接近的链路。链路数据可能因采集延迟而短暂不可见,稍后重试即可恢复。链路面板展示模型输出时,Studio 会自动移除流式输出中因递进产生的空占位符(
null 条目),仅显示实际生成的内容片段。问题反馈
每条助手回复旁的「问题反馈」按钮可针对该轮回复上报问题。在对话框中选择问题类型并补充描述后提交,提交内容会一并携带该轮的输入、输出、工具调用记录和链路信息,便于排查,并在上报前做凭据脱敏处理。可选问题类型如下:
侧边栏底部的「问题反馈」入口(标记为 Beta)用于反馈 Studio 整体使用问题:选择所属模块、问题类型并填写描述后提交。所属模块与当前所在页面对应,可在对话、智能体、自动化、搜索或其他之间选择;平台问题类型包括页面加载慢、功能无法使用、页面显示异常、操作无响应和其他问题。
问题反馈数据会上报到 AgentKit 团队用于改进产品,提交成功后会显示确认信息。请在描述中避免填写密钥、Token 等敏感信息;当前会话不可用时反馈可能失败,可关闭后重试。
导出会话
每条助手回复旁的「导出会话」按钮可将截至该轮回复的全部输入与输出导出为 PNG 或 PDF 文件。导出内容在浏览器本地生成,不依赖网络请求,包含从会话开始到当前回复的所有用户消息和助手回复,并在底部附加「上述会话由 AgentKit Studio 导出,仅供参考」的说明。 生成完成后可在对话框中预览导出内容,并选择导出格式:复制图片仅在 PNG 格式下可用,依赖浏览器的剪贴板写入能力,不支持时提示改用下载。
该按钮在普通智能体对话和内置 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 会标注「我创建的」。每个智能体卡片显示可见性状态(仅自己可见或全员可见)和审核状态(待审核、已通过、已退回、已撤回)。可以查看:
- Runtime 名称、ID、状态、区域和创建时间;
- 模型、描述、项目、版本、资源规格和更新时间;
- 绑定的 Memory、Tool、Knowledge 与 MCP Toolset 标识;
- Runtime 环境变量和主智能体信息。
- 智能体拓扑、远端调用链路与全局部署任务状态。
处于待审核状态的智能体必须先撤回申请,已公开的智能体必须先取消公开,才能修改或删除。详见智能体公开审核。
删除前 Studio 会弹出确认对话框,列出即将删除的智能体或草稿;确认后才会执行删除。删除过程中,被删除的智能体会从列表中暂时隐藏。若当前对话正在使用被删除的智能体,Studio 会清除当前选择并返回智能体管理页。
构建或部署阶段失败时,Studio 会在工作台展示服务端返回的完整错误信息,默认展开且可复制,便于直接定位问题;部署与更新失败时还可在错误面板中重新发起。部署失败或取消后,进度卡片提供「返回编辑」按钮,可直接回到草稿继续调整配置后重新发起部署。
管理草稿
在自定义创建过程中,Studio 会将未发布的智能体草稿保存在当前浏览器中,并按登录用户隔离。草稿与已部署 Runtime 一并出现在「管理智能体」列表,每条草稿显示更新时间与「草稿」标识;正在部署的草稿显示「部署中」标识,可在该草稿上查看部署进度。草稿支持编辑与删除,删除前会弹出确认对话框。MCP 工具的鉴权 Token 会转换为环境变量引用保存:生成源码仅保留
${ENV_NAME} 引用,Token 值写入部署环境变量;YAML 导出与浏览器草稿均保留对应的环境变量值。更新已部署的 Runtime 时会重新加载已有环境变量值,在部署表单中输入新的 Token 会覆盖原有值。更改 MCP 工具的服务地址时,Studio 会提示选择沿用原凭证、重新填写 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 的环境变量会注入测试进程。其中 MCP 工具的鉴权凭证会从已发布 Runtime 的环境变量中恢复并注入调试运行环境,用于 MCP 端点发现;若编辑后的 MCP 服务地址与已发布配置不一致,则不会恢复凭证。用户选择的 MCP 凭证复用决定也会在调试测试和部署中保持一致:在调试时复用的凭证会同样应用到部署运行时环境,且凭证复用不再要求启用 Harness Sidecar MCP 稳定性治理。恢复的凭证仅在服务端使用,不会出现在调试输出中。
更新已部署的智能体时,如果 Runtime 中已配置飞书,Studio 会从 Runtime 环境变量中恢复飞书 App ID 和 App Secret 到更新表单。已配置的环境变量输入框显示「已配置,留空沿用」,留空时保留原值。更新中关闭飞书渠道会移除 Runtime 中的
FEISHU_APP_ID 和 FEISHU_APP_SECRET;保持开启时保留或替换为提交的值。在部署页打开或关闭飞书渠道时,Studio 会重新生成项目,确保 app.py、依赖和运行时环境变量保持一致。更新已部署的智能体时,Studio 以该 Runtime 当前部署的配置为唯一来源重建可编辑草稿,不混入本地保存的旧草稿内容。若因网络或服务端错误无法读取该 Runtime 的 Agent 配置,更新入口会显示提示并暂时禁用更新,请稍后重试。
更新模式
Studio 支持两种 Runtime 更新模式,根据该 Runtime 的当前状态自动选择:
保留源码更新不会重新构建镜像,发布速度更快,且镜像中已有的技能文件保持不变。该模式下仅支持编辑根智能体的技能,不支持修改子智能体中的技能。
更新模式由 Studio 根据 Runtime 的当前镜像与配置自动判定,用户无需手动选择。若已部署镜像的结构不支持保留源码更新,Studio 自动使用重新生成模式。
保留源码更新模式下,MCP 认证配置的更新依赖已发布草稿中的认证引用。如果 MCP 配置在发布后发生过变化,Studio 会提示重新打开智能体详情并确认最新配置后再更新。更改 MCP 工具的服务地址后,需要确认是沿用原凭证、重新填写 Token 还是标记新地址无需认证,才能继续更新。
旧版 Runtime 恢复
对于在更新能力引入之前部署的 Runtime(缺少已发布配置草稿),Studio 可以从已部署的镜像和运行时环境中恢复智能体配置,使其同样支持更新。恢复过程包括:- 从运行时环境变量和 MCP 工具集重建 MCP 工具配置;
- 从镜像中提取已部署的技能文件;
- 基于恢复的配置生成可编辑草稿。
更新安全校验
更新 Runtime 时,Studio 在发布前后执行安全校验,防止并发修改导致线上配置被覆盖:- 发布前检查 Runtime 的版本号和镜像标识是否与编辑时一致;若在此期间 Runtime 已被其他操作修改,更新会被拒绝并提示重新打开智能体详情。
- 发布后验证 Runtime 版本号已递增且状态为 Ready;若版本未递增或状态异常,更新标记为失败并提示刷新详情确认线上状态。
同一 Runtime 上已有正在进行的部署任务时,新的部署或更新请求会被拒绝并提示等待当前任务完成后再重试,避免并发部署产生冲突。
部署进度通过流式连接实时展示。长时间构建期间,Studio 定期发送心跳保活消息,防止代理或浏览器因空闲超时断开连接。
更新能力检查可能需要读取运行时配置,首次检查耗时较长时显示「恢复中」状态并暂时禁用更新;检查完成后自动恢复更新入口。
通过 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。对话页面顶部导航栏的智能体选择器也提供进入该目录的入口。 智能体目录通过顶部的类型筛选切换,默认显示「通用智能体」:
通用智能体列表提供创建人、区域和名称筛选。创建人筛选可在「全部」与「我创建的」之间切换:「全部」仅对
admin 角色可用,developer 和普通用户仅能查看自己创建的 Runtime。区域筛选默认为 Studio 当前地域,可切换到当前云服务商支持的其他地域。列表按所选地域分页加载,滚动到底部时自动加载下一页,加载完成后提示「已加载全部智能体」。使用搜索框可按名称过滤已加载的智能体。
每张智能体卡片显示 Runtime 名称、描述、创建人和创建时间。创建时间以相对时间显示(如「3 分钟前」)。点击卡片进入该 Runtime 的详情视图,卡片上的「连接」按钮将该 Runtime 设为当前对话使用的智能体并切换到对话页面;已连接的智能体会置顶显示。具备创建权限时,列表首张卡片为「创建智能体」入口。列表加载失败时显示错误信息并提供「重新加载」按钮,列表为空时显示对应的空状态提示。连接失败时的排查方式与选择云端 Runtime一致。
智能体目录中的每张 Runtime 卡片在加载后会自动检测该 Runtime 是否支持 Studio 对话。检测期间卡片显示「检测中」状态并禁用「连接」按钮。检测完成后,支持对话的 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 的鉴权配置。
加载智能体信息或 Runtime 详情时,若当前 Runtime 暂不支持 Studio 详情接口,详情面板会显示「部分信息暂不可用」提示,并建议升级 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,保留已有的对话历史、工作空间锁定状态与上下文用量,无需手动新建会话。传输层恢复不会重置不活跃超时;活动轮次中的新进度会重置恢复余量,而重连和读取未变化的状态不会延长不活跃截止时间。当 Codex 本轮任务被中断时(包括在重连后发现的中断),Studio 会明确报告中断状态,不会发布新版本或等待不活跃超时。显式停止请求、不活跃超时、任务取消和传输层失败具有各自不同的原因标识,取消操作不等同于用户主动停止。恢复过程对用户透明;若恢复失败,仍会在对话中展示经过凭据脱敏的错误详情。
在云端模式下,Studio 不会自动选择第一个可用智能体。开始新会话前需在对话页面顶部的智能体选择器中手动连接一个 Runtime;未选择智能体时开始新会话会提示先选择智能体,并打开智能体管理页。
查看运行时实例日志
在云端模式下连接 Runtime 并发送消息后,对话输入框下方的提示栏会显示「查看日志」入口。点击后打开「实例日志」面板,实时查看当前对话请求所在 VeFaaS 实例的运行日志,用于在对话过程中定位运行时错误与异常输出。该入口仅在已连接云端 Runtime 时出现;本地模式或内置智能体会话不显示。 面板顶部展示以下信息:
日志区域按行展示,自动刷新并仅保留最近 1000 行。新日志到达时面板默认自动滚动到底部跟随最新输出;手动向上滚动后暂停跟随,回到底部时恢复。日志行按级别着色,包含
ERROR/FATAL/CRITICAL、WARNING、INFO、DEBUG 等关键字的行分别以对应颜色标记,便于快速区分。
Studio 通过服务端代理读取实例日志,读取前校验当前登录身份对该 Runtime 的访问权限。日志在服务端完成凭据脱敏与篇幅截断后再下发到浏览器,不会向浏览器暴露运行时凭证。读取实例日志使用 Studio 配置的火山引擎或 BytePlus 凭证。
未发送消息或尚未从运行时响应中捕获到实例时,面板显示「尚未捕获到实例」并提示发送一条消息后再查看。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 先恢复保存的会话,再进入正常入口,唤醒过程中显示等待提示,失败后可重试。同一服务实例内对同一智能体的唤醒请求串行处理,重试时会先检查是否已有就绪会话并直接复用,该机制不是分布式锁。用户可以查看、唤醒和删除自己创建的休眠记录;管理员可额外管理缺少归属信息的旧记录;同一 Tool 上其他智能体类型的记录会被过滤。删除已休眠的智能体需要确认,仅删除所选保存记录;若该智能体还存在更早的记录,刷新后可能显示下一条。恢复失败的记录仍可删除,但无法打开。此能力需要已配置对应的沙箱快照 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;网站集成将已部署 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 角色。
模板项目导入和 AgentKit Runtime 持续交付的地域选项、默认地域、模型 API 地址默认值和所需 GitHub Secrets 名称均随 Studio 当前云服务商变化。火山引擎模式下地域可选 cn-beijing、cn-shanghai(默认 cn-beijing),Secrets 为 VOLCENGINE_ACCESS_KEY、VOLCENGINE_SECRET_KEY 与可选的 VOLCENGINE_SESSION_TOKEN;BytePlus 模式下地域为 ap-southeast-1,Secrets 为 BYTEPLUS_ACCESS_KEY、BYTEPLUS_SECRET_KEY 与可选的 BYTEPLUS_SESSION_TOKEN。云服务商由 --provider 或 AGENTKIT_CLOUD_PROVIDER/CLOUD_PROVIDER 环境变量确定,未设置时为火山引擎。PR 自动评审通过 GitHub App 触发,不依赖 GitHub Actions 工作流和 GitHub Secrets,其配置方式见PR 自动评审。
模板项目导入
在目标仓库中创建一个包含完整 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 新版本。持续交付和模板导入工作流均需要在仓库中配置与当前云服务商对应的 GitHub Secrets:火山引擎模式为
VOLCENGINE_ACCESS_KEY、VOLCENGINE_SECRET_KEY 与可选的 VOLCENGINE_SESSION_TOKEN;BytePlus 模式为 BYTEPLUS_ACCESS_KEY、BYTEPLUS_SECRET_KEY 与可选的 BYTEPLUS_SESSION_TOKEN。这些 Secrets 在 GitHub 中管理,不经过 Studio。PR 自动评审
通过 GitHub App 在隔离的 Sandbox 中自动评审 Pull Request,并将评审结果发布为 GitHub Review。管理员配置 GitHub App 后,用户将 App 安装到目标仓库并在 Studio 中为各仓库开启评审;GitHub 向 Studio 发送 Pull Request webhook,Studio 自动创建 Sandbox 评审任务并将结果发布到对应 PR。管理员配置
在 GitHub 创建一个 GitHub App,记录 App ID、App Slug、私钥和 Webhook Secret。在 GitHub App 设置中将 Webhook URL 指向 Studio 的/web/github/app/webhook 路径(例如 https://<Studio 地址>/web/github/app/webhook),并将 Webhook Secret 设置为与下方环境变量一致的值。然后通过以下环境变量配置 Studio:
本地启动时通过环境变量提供上述配置。部署到 VeFaaS 时,
veadk studio deploy 和 veadk studio update 会将 GitHub App 配置环境变量透传到函数环境;私钥优先以 Base64 编码形式传递。VEADK_STUDIO_TOS_BUCKET 与 VEADK_STUDIO_TOS_REGION),用于保存各仓库的评审开关和评审记录。未配置持久化存储时,用户无法在 Studio 中开启评审或查看记录。
使用流程
- 管理员完成上述配置后,Studio 的「PR 自动评审」页面显示 GitHub App 的安装链接。
- 点击「安装 GitHub App」,将 App 安装到目标 GitHub 仓库。安装后 Studio 自动加载已安装的仓库列表。
- 在仓库列表中为需要自动评审的仓库开启评审开关。仅开启评审的仓库会响应 GitHub webhook 自动触发评审。
- 后续目标仓库中创建或更新的非草稿 PR 会自动触发 Sandbox 评审任务,评审完成后结果发布为对应 PR 的 GitHub Review。
- 也可以在「立刻评审」区域输入已启用仓库的 PR URL,手动发起一次评审。
仓库列表支持按 owner 或仓库名搜索,分页加载。手动评审要求输入的 PR URL 所属仓库已安装 GitHub App 且已开启评审。
评审记录
Studio 记录最近自动触发和手动发起的评审任务,在「评审记录」区域展示。每条记录包含 PR 链接、状态(评审中、已完成、已忽略、失败)、触发方式(自动触发或手动发起)、触发事件类型和时间。评审中的记录可点击「打开 Session」跳转到对应的 Sandbox 会话。飞书机器人
飞书机器人自动化当前标记为 Beta。
飞书机器人的 App Secret 仅用于本次部署,不写入生成源码、工作流或日志。部署期间可取消部署,取消将停止任务并清理已创建的 Runtime。
网站集成
将已部署的 AgentKit Runtime 以悬浮聊天窗口嵌入外部网站,使网站访客无需登录即可与智能体对话。在 Studio 的「自动化」页面中打开「网站集成」卡片后,选择目标 Runtime、填写网站域名,Studio 会生成专属 Token 和嵌入代码片段。网站集成当前标记为 Beta。
使用前提
- 已部署至少一个 AgentKit Runtime,且该 Runtime 中存在可对话的智能体。
- 目标 Runtime 的访问鉴权方式为 API Key。使用自定义 JWT 鉴权的 Runtime 暂不支持网站集成。
- 已配置 Studio 持久化存储(
VEADK_STUDIO_TOS_BUCKET与VEADK_STUDIO_TOS_REGION)时,网站集成记录持久化保存在 TOS 中;未配置时使用进程内存存储,Studio 重启后集成记录会丢失。
创建网站集成
- 在「添加网站」区域中选择目标 AgentKit Runtime,并输入要嵌入聊天窗口的网站域名。
- 点击「生成 Token」,Studio 会校验所选 Runtime 中可对话的智能体,并生成与域名绑定的集成记录和 Token。
- 在「已添加网站」列表中查看创建的集成,每条记录包含域名、Runtime 名称、智能体名称和创建时间。
http 或 https 地址,支持带端口号(如 localhost:5173 或 example.com:8080),但不能包含路径、查询参数或登录信息。
嵌入聊天窗口
在「引入方法」区域中复制生成的<script> 标签,将其粘贴到目标网页的 </body> 标签之前。脚本会从 Studio 服务加载聊天组件,并在页面右下角渲染一个可展开的悬浮聊天窗口。
工作方式
访客打开嵌入聊天窗口的网页后,聊天组件会向 Studio 的嵌入接口发起会话创建请求,获取一个有效期为一小时的会话令牌。此后每条消息通过会话令牌经由 Studio 转发到绑定的 Runtime,并以流式方式返回回复。会话令牌过期后需重新创建会话。 Studio 使用配置的火山引擎或 BytePlus 凭证访问 Runtime,网站访客不接触任何凭证或 Runtime 直连地址。删除网站集成
在「已添加网站」列表中点击对应记录的「删除」按钮,确认后移除该集成。删除后,使用该 Token 的嵌入代码将无法再创建新会话,已打开的会话在令牌过期后失效。资源库
侧边栏的「资源库」页面集中管理技能、知识库和产物,分为三个标签页:技能库
技能库标签页提供技能空间管理和 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。技能空间卡片会展示其所属地域,未显式记录地域的空间显示当前云服务商的默认地域。Studio 维护两个系统技能空间:
studio_share_space 是企业共享技能空间,始终在技能库列表中排在首位,管理员可在其中维护共享技能;studio_review_space 存储提交审核的技能版本,不显示在技能库和技能选择器中。两个空间在每个云服务商地域和 VEADK_STUDIO_PROJECT(或 default)下各创建一次。系统空间无法重命名或删除;审核空间中的内容只能通过技能审核工作流修改。新建和重命名技能空间时,用户输入的名称会被拒绝与系统空间保留名冲突。新建个人技能空间时,Studio 生成一个仅包含小写字母、数字和下划线的唯一云端名称,并将用户输入的名称存储在技能空间的
display_name 标签中。技能库卡片、详情和选择器优先展示显示名称,在标签缺失或为空时回退到云端名称。技能查找和导出仍使用原始云端名称。管理技能
进入某个技能空间后,可以浏览其中全部技能并按名称搜索。每个技能支持以下操作:上传 ZIP 时,Studio 会检查压缩包是否包含
SKILL.md、文件数量和路径安全,并自动忽略 __MACOSX 目录中的 macOS 元数据文件。完整的 frontmatter 与技能格式由 ADK 在加载时校验。上传前可使用校验功能预检 ZIP 内容。技能名称需在目标技能空间内唯一。如果目标技能空间中已存在同名技能,上传会被拒绝,可重命名后重新上传或使用优化功能覆盖。查看文件与下载 ZIP 时,Studio 按技能空间所在地域从存储下载技能文件包,解包时自动忽略
__MACOSX 目录、.DS_Store 等以 ._ 开头的 macOS 元数据文件。对使用旧版 SkillSpace 接口类型的技能,Studio 会回退到按技能名称解析详情,确保这类技能的文件列表与 SKILL.md 也能正常加载。下载或解析失败时返回可重试的结构化错误,可在排查地域、凭证与网络后重试。技能支持原生版本历史。上传与现有技能同名的 ZIP 包时,Studio 在原技能 ID 下创建新版本,仅更新其个人空间关联。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 会话,生成改进版本。优化完成后可选择覆盖原技能或作为新技能发布。技能审核工作流
技能审核工作流允许将个人技能版本提交至审核空间,由管理员审批后发布到企业共享技能空间。1
提交审核
在个人技能的操作行中提交选定版本。Studio 将该版本的快照复制到审核空间中的独立技能,保留原始名称,并将提交者的显示名称写入
author 标签。来源空间、技能名称、版本和提交时间也记录在标签中。同一来源版本的重复提交在待审核或已通过状态下会被拒绝;被退回的版本可以作为新请求重新提交。2
管理员审核
管理员在审核中心查看提交的技能版本和文件,可选择通过(可附评论)或退回(必须填写退回原因,可附评论)。通过后,Studio 将该版本快照复制到
studio_share_space。退回后,提交者可在修复后重新提交;之前的审核决定保留在历史中。3
共享技能管理
管理员可在
studio_share_space 中维护已通过的共享技能。共享技能为只读快照,与个人技能版本互相独立。审核操作由管理员在审核中心完成。提交者可在个人技能列表、详情和版本对话框中查看审核状态、审核者、决定时间、评论和退回原因。
自动技能评测
提交审核的技能版本会自动进行 AI 评测。评测使用与自动创建智能体相同的模型,通过火山方舟结构化输出接口进行评分。
Studio 计算加权总分,并附带各维度的评分理由、风险点和建议。评测只读取提交的固定快照,不运行其代码或工具。每个维度会获得分数和理由;当文件覆盖不完整时,安全性、完整性和总分可能不显示。
评测读取至多 100 个文本文件,单个文件至多 40,000 字符,总计至多 120,000 字符。被省略、二进制和截断的文件会在报告中说明。
评测报告存储在 Studio 持久化存储桶的
review-scores/ 目录下。审核状态、总分、评测时间、模型和报告位置记录在技能标签中。管理者和提交者可查看完整 JSON 报告;管理者可重试失败的评测。已完成的报告不可修改。手动审核决定和已发布的共享技能不受 AI 评测结果影响。审核中心
审核中心位于侧边栏的「管控」分组中,与「用户管理」并列。仅管理员可见;该分组下没有可见条目时隐藏整个分组。 管理员可在审核中心切换查看技能和智能体的审核请求,支持按地域、状态筛选和搜索。 技能审核请求从对应地域的审核空间加载。每条请求显示 AI 评测状态和总分;详情中展示各维度评分理由、风险点、文件覆盖情况、模型信息和 JSON 报告下载。审核请求支持通过(可附评论)或退回(必须填写退回原因,可附评论),并显示审核者信息和历史记录。 智能体审核请求从对应地域的 Runtime 列表加载已提交审核申请的智能体。每条请求显示智能体名称、申请人、提交时间、当前版本和模型;详情中展示智能体描述、申请说明和配置指纹校验结果。管理员可选择通过(可附审批意见)或退回(必须填写退回理由,可附审批意见),也可直接公开。审核操作完成后,申请人可在智能体卡片上查看审核状态、审核者、审批时间和意见。详见智能体公开审核。智能体公开审核
智能体公开审核允许开发者将已部署的智能体申请为企业内全员可见,由管理员审批后生效。审核记录存储在 Runtime 标签中,独立于技能审核。1
提交申请
在「管理智能体」页面的智能体卡片上点击「申请公开」,填写申请说明(至多 20 个字符)后提交。提交申请的智能体必须已通过 Studio 部署(Runtime 标签中
veadk:managed 为 true)且处于运行就绪状态。提交后智能体进入待审核状态,申请记录写入 Runtime 标签,包括申请 ID、状态、提交时间、申请说明和配置指纹。2
管理员审核
管理员在审核中心的智能体标签页中查看申请,可选择通过(可附审批意见,至多 256 个字符)、退回(必须填写退回理由,至多 256 个字符,可附审批意见)或直接公开。通过审批时,Studio 校验配置指纹是否与提交时一致;若智能体配置在提交后发生变化,审批会被拒绝并提示退回后重新申请。直接公开跳过申请流程,管理员可直接将智能体设为全员可见。审核者信息、审批时间和意见写入 Runtime 标签。
3
全员可见与取消公开
审核通过或直接公开后,智能体标记为「全员可见」,企业内所有用户可在智能体列表中看到并使用该智能体。智能体所有者或管理员可取消公开,取消后其他用户将无法继续访问该智能体。
全员可见的智能体通过 Studio 代理向其他用户开放对话能力。其他用户可以查看智能体信息并发起对话,但仅限访问自己的会话;智能体的管理操作、日志、凭据和其他用户的会话仍然受到限制。
审核记录存储在 Runtime 标签中,包括申请 ID、状态、提交时间、申请说明、配置指纹、审核者信息和审批意见。每次提交申请会替换上一次的申请记录。配置指纹用于校验提交时的智能体配置是否发生变化,防止审批通过后与实际部署内容不一致。审核者的头像和名称通过 Identity 用户池解析。
知识库
知识库标签页用于创建和管理用户拥有的 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。
以下环境变量用于调整产物同步行为:
定时任务
定时任务工作区在侧边栏以「定时任务」入口提供,按固定计划对一个已部署的 Runtime Agent 执行同一段文本提示词。每次触发都会为该 Runtime 创建一个独立的会话,任务始终跟随 Runtime 当前生效的版本。定时任务为 Beta 能力。定时任务依赖 Studio 持久化存储保存任务定义、锁、执行历史与结果。未配置持久化存储时,定时任务工作区不可用并提示「管理员未配置持久化存储」。持久化存储的配置方式见 Studio 持久化存储。
创建与编辑任务
在「定时任务」页面点击「创建任务」打开任务表单,编辑已有任务时使用同一表单。表单包含以下配置:
执行计划支持以下类型:
管理任务
任务列表展示名称、所属 Runtime、执行计划、启用状态、下次执行时间和最近结果。每条任务支持以下操作:
点击任务名称进入详情页,查看任务配置与执行历史。
执行历史
执行历史记录每次运行的状态、耗时、所用 Runtime 版本与会话标识,并保留最终回答和错误详情。运行状态包括已排队、准备中、执行中、自动重试中、成功、失败、已取消和已跳过。每次运行使用独立会话,结果与错误会永久保留。 处于排队或执行中状态的运行可以取消:排队中的运行可取消排队,执行中的运行可终止本次执行。失败的运行可重新执行。执行历史支持手动刷新。手动触发的运行会以「已排队」状态写入下一个分钟的处理队列,通常在 60 秒内开始执行,避免当前分钟已被扫描时遗漏本次运行。
执行机制
任务定义、运行锁、执行历史与结果保存在 Studio 私有 TOS 存储桶中。云端部署时,veadk studio deploy 会额外创建或更新两个无状态 VeFaaS 函数与对应的分钟触发器:扫描器每分钟将当前到期的任务复制到持久化执行队列并推进各任务计划,异步工作器从队列中取出任务、调用 Runtime 并写入最终结果。扫描器、工作器与 Studio 可独立重启而不丢失任务。
重复的计时器投递通过不可变运行 ID 与 TOS 条件写入去重;ETag 锁防止同一任务在多个实例间并发执行。工作器使用函数 IAM Role 读取 Runtime 当前的端点与版本,不存储用户令牌或 AK/SK 凭证。
本地使用 veadk studio --vite 启动时,Studio 后端会启动独立的本地扫描与执行循环,无需单独运行调度进程。
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 发布版本,不包含尚未发布的能力。
veadk studio deploy 按应用名称幂等处理 VeFaaS 部署:使用相同 --vefaas-app-name 再次部署时,会更新已有应用的函数代码包而非创建重复函数,保留原有 URL、IAM、网关和 Identity 配置。适用于升级 Studio 版本或重新部署相同应用名称的场景。部署完成后,Studio 会将 VeFaaS 函数的最小实例数设置为 1,使部署后始终保留一个预热实例,避免首次访问冷启动。
使用
--provider byteplus 部署时,生成的依赖文件会在顶部添加 --extra-index-url https://pypi.org/simple,使 pip 在 BytePlus 默认包索引中找不到包时回退到 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 控制台链接。当 Studio 托管用户池(即未通过 --user-pool-id 指定已有用户池)时,部署默认将该用户池配置为仅 SSO 登录:关闭密码登录、无密码登录、注册、找回与未确认用户登录,邀请用户前需先在 Identity 控制台配置 SSO 身份提供者。传入 --allow-dangerous-login 可在 Studio 托管用户池上显式启用上述本地登录流程;该标志仅对 Studio 托管的用户池生效。通过 --user-pool-id 指定已有用户池时,部署保留该用户池的既有登录设置,不受此标志影响。
部署时还会创建或更新用于定时任务调度的两个无状态 VeFaaS 函数与对应的分钟触发器:扫描器每分钟将到期任务复制到持久化执行队列并推进计划,异步工作器从队列中取出任务调用 Runtime 并写入结果。部署完成后,终端会输出扫描器与工作器的函数 ID 和触发器 ID。
--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 并行创建启用持久化快照的 Studio Sandbox Tool,用于代码项目。创建时自动获取模型凭据,注入 MODEL_AGENT_NAME、MODEL_AGENT_BASE_URL 和 MODEL_AGENT_API_KEY。BytePlus 创建的 Tool 类型为 StudioEnv,火山引擎为 Private;部署、命令行更新和云上 OTA 共用同一创建流程,已有工作区绑定保持不变。该 Tool 默认规格为 8 核 CPU、16 GB 内存,使用与部署地域对应的 studio-sandbox 镜像:
可通过
STUDIO_WORKSPACE_IMAGE 环境变量指定区域可访问的其他镜像。启动命令使用镜像内的 /opt/gem/run.sh,不再注入编辑器补丁。火山引擎默认中文,BytePlus 默认英文,模型配置沿用相应云环境的 Studio 配置。可通过 --studio-sandbox-tool-id(或环境变量 STUDIO_WORKSPACE_TOOL_ID)指定已配置好的持久化 Tool,此时直接复用,不重新创建或修改配置。部署后通过 STUDIO_WORKSPACE_TOOL_ID 环境变量绑定工作区,系统信息页面显示对应的 Tool ID。
沙箱 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 权限);部署还需要创建和更新定时任务调度函数与分钟触发器的 VeFaaS 权限(vefaas:ListFunctions、vefaas:GetFunction、vefaas:ListTriggers、vefaas:CreateTimer、vefaas:UpdateTimer);部署还会将 Studio 函数的最小实例数设置为 1 以保留一个预热实例,因此需要 vefaas:UpdateFunctionResource 权限;未启用 --keep-failed-deploy 时还需要清理失败资源的删除权限。
预检完成后,终端输出一张权限表格,列出每项 IAM Action 的作用及是否满足。若存在缺失权限,终端同时输出对应云服务商的 IAM 配置入口链接,便于前往补充权限。火山引擎入口为 https://console.volcengine.com/iam/policymanage,BytePlus 入口为 https://console.byteplus.com/iam/policymanage。
在正式部署中(未指定 --precheck-only),若存在缺失权限,命令会提示确认是否继续部署;默认为否,拒绝时部署终止,确认后继续创建云资源。使用 --precheck-only 时,缺失权限直接导致命令终止,不进入确认流程。
使用 --precheck-only 可仅执行权限预检而不创建任何云资源,用于在正式部署前确认凭证权限是否完备:
应用内更新
Studio 从维护在北京地域的 TOS 发布源读取新版本,客户部署地域无需额外配置;部署完成后管理员可在导航栏中把前端与 Python 后端一起升级。默认发布源存储桶因云服务商而异:火山引擎部署使用veadk-studio,BytePlus 部署使用 veadk-studio-byteplus。使用 --studio-update-bucket 与 --studio-update-prefix(或对应的 VEADK_STUDIO_UPDATE_BUCKET、VEADK_STUDIO_UPDATE_PREFIX 环境变量)可覆盖默认发布源,发布源地域始终为 cn-beijing。更新时根据部署环境中的 CLOUD_PROVIDER(或 AGENTKIT_CLOUD_PROVIDER)自动选择对应的云服务商入口,BytePlus 部署在更新过程中同步写入 BYTEPLUS_REGION。
Studio 每三分钟检查一次更新,列出可用版本及其变更说明。管理员确认升级后,Studio 优先下载精简发布包——该包不内置运行时依赖,而是在部署时从当前云服务商的公共制品源拉取已校验的 Python wheel 和 AgentKit CLI;若精简发布包或公共制品不可用,Studio 自动回退到包含全部依赖的完整发布包。无论采用哪种包,Studio 都会校验完整性,然后同时替换 Python 后端与前端资源并重新发布原 Application;Application 与 Function ID、访问 URL、SSO 客户端和服务端 Secret 保持不变。
精简发布包仅向火山引擎部署提供;BytePlus 部署始终使用包含全部依赖的完整发布包。
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 云资源」阶段。
应用内更新还会创建或更新定时任务调度函数与分钟触发器,更新进度面板会显示对应的阶段。
如果定时任务调度服务的更新失败,Studio 会记录警告并继续更新主函数,不会中断整个更新流程。调度服务可稍后通过再次执行更新来修复。
console.volcengine.com,BytePlus 指向 console.byteplus.com。
应用内更新不会修改 Function 的 IAM 角色策略。如需更新 IAM 权限,请使用
veadk studio update 命令。更新完成后,Studio 会将 VeFaaS 函数的最小实例数设置为 1,使更新后始终保留一个预热实例,避免首次访问冷启动。
vefaas:GetApplicationRevisionLog 权限时,日志面板替换为权限提示,并显示对应云服务商的 IAM 控制台链接(火山引擎为 console.volcengine.com/iam,BytePlus 为 console.byteplus.com/iam),管理员可据此前往补充权限;更新不受影响,继续进行。更新完成后,Studio 会自动刷新页面以加载新版本;刷新前如有未关闭的更新对话框,也会在重新打开页面后自动恢复显示。
应用内更新仅对具备管理员或超级管理员角色的登录用户开放,更新 Studio 自身的 VeFaaS Function,不影响已部署的 AgentKit Runtime。更新时补齐云资源使用部署者配置的火山引擎或 BytePlus 凭证。
部署参数
部署到 VeStack
在火山引擎 VeStack(混合云)环境中,公有云 VeFaaS Application 接口不可用。veadk studio deploy 通过 --deploy-target vestack 将 Studio 部署为 VeFaaS 镜像函数,并通过共享 APIG Gateway 暴露独立域名。部署前需要在本地或 CI 构建 linux/amd64 Studio 镜像并推送到 VeStack 镜像仓库。
何时使用
- 部署环境为 VeStack 或私有云,不支持公有云 VeFaaS Application 接口。
- 需要 Studio 使用 IAM Role 绑定的临时凭证(STS)访问混合云 AgentKit OpenAPI,而不在镜像或函数环境中保存长期 AK/SK。
- 需要为每个沙箱会话创建独立的 AgentKit Tool,以实现磁盘持久化和会话隔离。
构建镜像
使用 VeADK 源码目录中的 Dockerfile 构建linux/amd64 镜像:
bash
--build-arg VEADK_INSTALL_DEPENDENCIES=0 跳过完整依赖解析,仅安装当前仓库和 docker/vendor/ 中暂存的 wheel。使用该模式前,先暂存 VeStack 私有镜像源中缺失的 wheel:
bash
部署命令
准备符合权限要求的火山引擎凭证,然后执行:bash
- 验证
--deploy-target为vestack时--provider必须为volcengine。 - 解析
--vestack-openapi-url并设置 VeFaaS、APIG、IAM 和 Identity 的 OpenAPI Host 与 Scheme 环境变量,使 SDK 请求指向 VeStack 控制面。 - 创建或复用 VeIdentity 用户池与 Web 客户端(除非通过
--user-pool-id与--allowed-client-id指定已有资源)。 - 创建或复用 Studio 专用 IAM Role 和自定义 Policy;未指定
--iam-role时自动创建。VeStack 环境中部分公有云系统 Policy 可能不可用,此时跳过缺失的系统 Policy 并继续使用已校验的自定义 Policy。 - 创建或更新 VeFaaS 镜像函数,设置镜像地址、启动命令、端口和 Role,并传入非敏感环境变量。
- 发布函数并等待发布完成。
- 创建或复用 APIG Gateway、Service、Upstream 和 Host Route,将独立域名转发到函数。
- 向 VeIdentity 用户池客户端注册回调地址。
- 输出访问端点、函数 ID、网关 ID、服务 ID、上游 ID、路由 ID 和 IAM Role。
部署者的长期 AK/SK 仅用于控制面调用签名,不会写入函数环境变量。VeFaaS 在 Pod 内自动挂载 IAM Role 的临时 STS 凭证并定时刷新,Studio 使用该临时凭证访问 VeStack AgentKit OpenAPI。
每会话独立 Tool
VeStack 部署模式下,Studio 为每个沙箱会话创建独立的 AgentKit Tool,而非共享同一 Tool。独立 Tool 支持磁盘持久化,会话删除时自动清理对应的 Tool。 创建会话时可指定磁盘大小(diskGb 参数),取值范围为 5–100 GiB,默认值由部署配置决定。
Hermes 独立 Tool 需要在部署时配置模型参数(
--vestack-hermes-model-agent-name、--vestack-hermes-model-api-base、--vestack-hermes-model-api-key、--vestack-hermes-model-id 和 --vestack-hermes-model-agent-name)。未配置时,Hermes 智能体显示「管理员未配置 Hermes 模型或 IAM Role」。
Codex 独立 Tool 默认启用(
VEADK_STUDIO_CODEX_TOOL_PER_AGENT=true)。Hermes 独立 Tool 仅在提供了完整的 Hermes 模型参数时启用。OpenAPI 端点覆盖
VeStack 环境中,各云服务的 OpenAPI 端点通常指向内部地址。部署时通过--vestack-openapi-url 统一设置 VeFaaS、APIG、IAM 和 Identity 的 OpenAPI Host 与 Scheme。部署后,Studio 运行时通过以下环境变量覆盖各服务的 OpenAPI 端点:
VeStack 部署参数
以下选项仅在--deploy-target vestack 时生效,是对部署参数的补充。
Studio BFF 动态工具
当连接的 AgentKit Runtime 通过enable_studio_tools=True 启用了 Studio BFF 动态工具宿主时,Studio 智能体信息栏会在智能体静态工具下方显示「在此对话中添加 Studio 工具」。新会话默认禁用所有 Studio 工具,用户可按需勾选;选择状态在当前浏览器进程中跨轮次保留。浏览器在每次 Runtime 运行时发送选中的工具 ID 列表,空列表或省略时使用普通运行路径。工具代码和凭证保留在 Studio BFF 侧,不会下发到 Runtime 或浏览器。
该功能需要 Runtime 侧显式启用
enable_studio_tools 参数,详见部署到 AgentKit。会话沙箱环境
在对话页面中,可以将已构建完成的 AIO Sandbox 或 Codex Sandbox 运行环境挂载到当前会话。挂载后,智能体在对话中获得以下工具,在挂载的环境中执行 Shell 命令或委派任务:
挂载环境时,可在会话的环境选择器中逐个选择环境或按工作区批量选择;选择状态在当前浏览器会话中保留。每次运行时,Studio 将已挂载环境的信息注入对话上下文,并在本轮消息中附加路由指引,使智能体优先使用挂载环境完成任务。当用户未明确要求创建或委派新智能体时,挂载环境的优先级高于动态子智能体创建、知识库和 Skill 流程。
当挂载的环境基础环境为 Codex Sandbox 时,智能体应使用
delegate_to_codex_sandbox 委派完整任务,而非拆分为多次 execute_in_sandbox 调用。委派结果直接作为最终工具调用结果返回给用户,无需再通过 execute_in_sandbox 获取 Sandbox 内的文件。
将环境挂载到会话时,Studio 为每次挂载分配独立的挂载实例标识。Sandbox Tool Session 仅在智能体会话、挂载实例、环境版本、Tool ID、镜像、云服务商和地域均未变化时复用;卸载后重新挂载会创建新的挂载实例和新的 Sandbox Session。Codex Sandbox 的执行进度及对应的 Sandbox Session 和 Codex Thread 标识会以流式方式推送到工具调用卡片中,并保留在对话历史中。
分支对比
Studio BFF 动态工具包含branch_compare(分支对比)工具。当用户要求对比两种风格、两套方案或两个创意方向时,智能体可以调用该工具并行生成两个可直接比较的方向,并在对话中以内嵌卡片展示结果。
工具接收以下输入参数:
两个方向的生成互相独立且并行执行。每个方向使用独立智能体在独立会话中生成 Markdown 正文,生成过程中以流式方式逐段推送进度,生成完成后返回最终文本。卡片以选项卡形式展示两个方向,用户可以在两个方向之间切换查看,并使用「继续这个方向」按钮将所选方向填入输入框继续对话。单个方向生成失败时,该方向显示错误提示但不影响另一个方向的生成。
分支对比使用的模型默认为
doubao-seed-2-0-lite-260428,可通过 VEADK_STUDIO_BRANCH_MODEL 环境变量覆盖。工具超时时间为 120 秒。
AgentKit CLI 终端
Studio 侧边栏底部提供「体验 AgentKit CLI」入口,点击后在当前页面上方打开一个终端对话框。该终端在 AgentKit Dev Sandbox 中运行,启动时自动执行agentkit --help 与 agentkit --version,方便快速查看 AgentKit CLI 的可用命令与当前版本。
终端基于 AgentKit Dev Sandbox(SANDBOX_DEV)创建非持久化会话。打开终端时,Studio 按以下顺序工作:查找当前用户已有的可用会话,若不存在则创建新的非持久化会话,等待会话就绪后打开终端。创建过程中的状态以加载动画和文字提示(正在查找已有环境、环境初始化中、正在连接已有环境)呈现。终端就绪后,工具栏显示当前环境的剩余回收时间。
AgentKit CLI 终端使用与智能开发、技能生成相同的 Dev Sandbox Tool。本地启动时通过
SANDBOX_DEV 环境变量指定 Tool ID,部署到 VeFaaS 时通过 --sandbox-dev-tool-id 自动创建或复用。未配置时,终端显示「管理员未配置 AgentKit Dev Sandbox,请配置后再使用」。配置方式见沙箱信息。Studio Sandbox 代码项目
Studio 提供持久化云端代码项目功能。每位用户拥有一个持久的云端 Sandbox,项目以目录形式存放在/home/gem/Projects 下。用户可以在工作区中创建、命名和重新打开项目,项目列表保存在 Sandbox 文件系统中,Studio 重启后仍然可用。
创建与打开项目
在工作区页面中选择「代码项目」或从工作区新建项目。创建项目时输入项目名称,Studio 在用户的持久 Sandbox 中创建对应目录,并初始化 Git 仓库、Python 虚拟环境和项目模板文件。创建新项目时复用用户已有的 Sandbox 会话,打开项目时切换 VS Code 的工作目录到对应项目路径。项目名以英文字母开头,允许字母、数字、短横线和下划线,最多 64 个字符。Agent 的 Python 名称会把短横线转换为下划线。重名项目不会被覆盖,会提示从项目列表打开。
编辑器直接在
/code-server/ 打开,签名路由参数保持私有且不缓存。返回管理页面时编辑器保持挂载状态,切换目录时直接打开所选项目。持久化与恢复
Studio Sandbox Tool 启用持久化快照。每位用户的项目共用同一个持久 Sandbox 会话;打开项目时若剩余会话时间不足一小时,Studio 自动将会话续期至八小时,标题栏显示剩余倒计时。Studio 复用用户的稳定云端会话标识,休眠后自动恢复最近一次可用的快照,而非创建空替换会话。项目管理右侧支持全屏展开,内嵌浏览器使用当前页面的可用空间。开发环境
Studio Sandbox 镜像基于 AgentKit Code Sandbox 构建,预装以下开发环境:- 独立的 VeADK Python 环境,包含
veadk-python和agentkit命令 - code-server(VS Code 浏览器版本)与 Jupyter
- Python 语法高亮、BasedPyright 代码补全、Ruff 格式化
- 每个项目自动创建 Bash 和 Codex 两个集成终端,工作目录为当前项目
- Dark Modern 主题,代码和终端使用 Maple Mono 字体
MODEL_AGENT_API_KEY、MODEL_AGENT_NAME 和 MODEL_AGENT_BASE_URL 后,Codex 自动生成模型配置,无需交互登录。
项目模板
默认模板在创建项目时由 Studio 传入 Sandbox,包含main.py、README.md、AGENTS.md 和 .gitignore。模板中的 ${project_name} 和 ${agent_name} 在创建时替换为项目名和合法 Python Agent 名。修改模板只需更新 Studio,不需要重建镜像,也不会覆盖已有项目。
模板中的新依赖不会自动安装,运行环境依赖仍由镜像管理。
开发者资源
Studio 侧边栏底部提供「开发者资源」入口,点击后在当前页面上方打开开发者资源页面,展示以下内容:- 相关链接:VeADK 文档、AgentKit CLI 文档、AgentKit 平台文档与 AgentKit 控制台的快捷入口。
- 最佳实践:使用 VeADK 和 AgentKit CLI 开发并部署智能体的参考文章。
- Showcases:基于 VeADK 构建的应用案例,涵盖多智能体研究助手、多模态内容分析、智能客服工作台、联网搜索智能体和 A2UI 交互应用。
前端使用数据采集
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 在部署或更新时自动解析并写入运行时环境,不涉及用户个人身份。解析失败时不中断部署或更新,解析错误经脱敏后作为 account_id_resolution_error 记录到埋点上下文。
埋点仅采集使用统计维度,包括部署 ID、云账号 ID、用户 ID、角色、地域、来源、创建方式、是否使用智能生成,以及智能体部署、沙箱创建、智能体连接、对话发送、调试测试和源码下载的成功或失败结果与失败阶段。匿名入口访问不包含用户 ID,仅在登录后关联。失败事件保留稳定的错误类别和错误码;智能体部署失败事件额外上报经过脱敏与长度限制的错误消息,构建阶段失败时优先取自构建日志文本。埋点不采集对话内容、提示词、生成代码、环境变量值或任何密钥。
此变更仅影响 Studio 前端的产品行为埋点。VeADK 运行时的 APMPlus OpenTelemetry 链路观测和问题反馈中的 APMPlus 查询能力不受影响,继续保留。
更新已部署的 Studio
veadk studio update 从本地 VeADK 源码重新构建 Studio,更新已有 VeFaaS Function 的代码并重新发布原 Application。构建的代码包不内置完整离线运行时和 AgentKit CLI,而是在部署时从当前云服务商的公共制品源拉取已校验的依赖,减小上传包体积。运行前安装 Node.js 与 npm,并在 VeADK 源码目录执行:
--region 和 --project 时,命令会在北京、上海及全部可见项目中查找同名 Application。若存在多个候选项,需要补充地域或项目缩小范围。更新保留 Application 与 Function ID、访问 URL、SSO、IAM、网关和已有环境变量;品牌和各 CodeEnv、DevEnv Tool ID 仅在显式传入相应参数时覆盖。更新时还会检查并补齐 Studio Sandbox Tool:若函数环境中缺少 STUDIO_WORKSPACE_TOOL_ID,更新会自动创建启用持久化快照的 Studio Sandbox Tool,配置模型凭据(MODEL_AGENT_NAME、MODEL_AGENT_BASE_URL、MODEL_AGENT_API_KEY)并保存绑定;已有 Tool ID 时保留绑定。创建失败时更新报错,不忽略失败。从尚不支持代码项目的旧版本更新时,新版本首次启动会在后台补建并保存 Tool ID;补建期间代码项目暂不可用,失败会记录日志,可检查权限后重试更新。更新时自动检查并补齐 VEADK_STUDIO_KNOWLEDGE_SIGNING_KEY 环境变量:若缺失则根据当前环境生成,确保更新后知识库管理功能可用。若函数使用默认 Studio IAM Role,更新时会同步刷新该角色的托管策略至最新版本;使用自定义 Role 时不做修改。更新还会向已绑定的 VeIdentity 用户池客户端注册当前 Studio 公网地址的 /oauth2/callback 回调并启用免确认,确保更新后 SSO 登录回调可用;注册失败时终端会输出 warning,并提示在用户池客户端的允许回调地址中手动添加该地址。查询已有部署与提交代码包更新时,命令会对限流、网络抖动等服务端临时故障自动重试;重试后仍失败时终端会提示云端发布可能仍在进行,可稍后重新执行同一更新命令。
更新还会创建或更新定时任务调度函数与对应的分钟触发器。
如果定时任务调度服务的更新失败,命令会记录警告并继续更新主函数,不会中断整个更新流程。调度服务可稍后通过重新执行更新来修复。
更新完成后,命令会将 VeFaaS 函数的最小实例数设置为 1,保留一个预热实例以避免首次访问冷启动。
Studio 角色与 Runtime 权限
部署 Studio 时,角色管理通过 Identity 用户组实现。部署时唯一的角色参数是--super-admin,指定用户池内已有用户的邮箱或 UID:
veadk studio update --vefaas-app-name <app-name> --super-admin <email-or-uid> 设置首位超级管理员,其他人的角色保持不变。
新版 Studio 在每次已认证的后端请求中读取 Identity 用户组,角色修改后刷新页面即可看到变化。账号区域显示对应角色徽标。
云上更新会把旧环境变量
VEADK_STUDIO_ADMINS、VEADK_STUDIO_DEVELOPERS 中的账号逐一匹配到 Identity,保留原角色,成功后清空旧角色变量。名单中的账号必须唯一匹配;匹配失败或权限不足时停止迁移并保留旧配置。旧名单为空时保留「全部为管理员」;有名单时,其余人仍是普通用户。不会自动将旧管理员升级成超级管理员。
旧更新器不包含迁移逻辑时,由新版首次启动完成迁移并清理函数配置。已发布 Revision 的环境快照可能仍保留原值,但 Identity 初始化完成后不会再次覆盖角色。旧部署需要 Identity 用户组读写权限;可先补齐权限,或使用新版 CLI 更新,由 CLI 更新 Studio 托管的 IAM 策略。火山引擎和 BytePlus 遵循同样规则。
veadk studio --admin ... --developer ...;deploy 已移除这两个参数。
本地会话归属
当 Studio 启用 OAuth 或 gateway 认证后,对本地 ADK 会话的读取、创建、更新与删除操作,以及智能体运行请求,均绑定到登录身份。用户只能访问属于自己身份标识的会话;身份匹配不区分大小写,可匹配登录令牌中的用户名、邮箱等标识。 未携带可信登录身份时,访问本地会话会返回 401。非管理员用户访问其他用户的会话会返回 403。即使所有登录用户拥有管理员角色(首次部署未指定超级管理员时的默认行为),跨用户会话访问仍要求显式出现在管理员名单中。该限制独立于角色权限,不会因「全部用户为管理员」的遗留模式而放开。
查看系统信息
登录后,侧边栏底部的账号菜单提供「系统信息」入口,选择后在当前页面上方打开系统信息页面,展示 Studio 的版本、存储、沙箱信息和用户池。页面左上角的返回按钮可回到打开系统信息前所在的页面,当前页面保持不变。页面中的 TOS 存储桶、沙箱 Tool 和用户池均提供跳转到对应云服务商控制台的链接,点击后在新标签页打开。该页面仅对管理员和超级管理员角色开放,所有资源标识均为只读;管理员可对需要更新的沙箱 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)和 Studio Sandbox(STUDIO_WORKSPACE_TOOL_ID),各项按固定顺序排列。Studio Sandbox 用于代码项目,是一个启用持久化快照的 Tool(BytePlus 为 StudioEnv 类型,火山引擎为 Private 类型)。其中 DeepSeek Harness Sandbox 与 Codex Sandbox 共用同一个 AgentKit CodeEnv Tool(SANDBOX_CHAT_CODEX),因此两者显示相同的 Tool ID。已配置的 Tool ID 提供跳转到云控制台对应 Tool 详情页的链接;未配置的 Tool 显示「未配置」。
沙箱镜像更新
沙箱信息区域顶部提供「检查更新」按钮。点击后,Studio 服务端使用当前配置的火山引擎或 BytePlus 凭证,向当前云服务商和地域的 Tool 目录查询各预置沙箱 Tool 类型的最新发布镜像,并与各 Tool 当前使用的镜像进行比对。每个已配置的 Tool 旁会显示当前镜像和最新镜像的版本标签;当当前镜像与最新镜像不一致时,显示从当前版本到最新版本的更新提示。镜像目录在服务端缓存 60 秒,执行更新前会重新获取最新目录。 管理员可对状态为「Ready」且存在可用更新的预置沙箱 Tool 执行镜像更新。可用更新包括镜像版本不一致和 Codex 类型 Tool 需要补齐模型环境变量两种情况。点击 Tool 旁的更新按钮后,Studio 服务端向云服务商提交更新请求,将 Tool 的镜像更新为最新发布版本;对于 Codex 类型的 Tool,若 Tool 环境变量中缺少MODEL_AGENT_API_KEY 或 MODEL_AGENT_BASE_URL 且同时存在 CODEX_API_KEY 与 CODEX_BASE_URL,更新时会从对应的 CODEX_* 变量补齐缺失的 MODEL_AGENT_* 变量,已有的值不被覆盖。更新提交后,Studio 轮询 Tool 状态,直到 Tool 恢复为「Ready」且镜像已更新为最新版本,然后在 Tool 旁显示更新结果。整个过程中密钥不会下发到浏览器。
Codex Sandbox 与 DeepSeek Harness Sandbox 共用同一个 AgentKit Tool 时,两者共享更新状态,更新操作只执行一次。快照版 Tool 与非快照版 Tool 独立检查和更新。Studio Sandbox 使用的
Private(火山引擎)或 StudioEnv(BytePlus)类型的 Tool 没有对应的预置发布镜像,无法通过此功能更新。若 Tool 状态不为「Ready」(如正在创建或更新中),更新按钮不可用。当 Tool 缺少
CODEX_API_KEY 或 CODEX_BASE_URL 而无法补齐模型环境变量时,Tool 旁会显示相应的错误提示,需先在云控制台为该 Tool 补充对应的环境变量,再刷新系统信息页面重新检测。