智能体版本控制
智能体版本控制
使用分支、版本和流量部署,安全地试验智能体配置
智能体版本控制让你可以试验不同的智能体配置,而不会影响生产环境设置。创建隔离分支、测试更改,并使用按流量百分比分配逐步发布更新。
想运行 A/B 测试?请查看实验,了解针对实时流量测试智能体更改的推荐工作流程。
概述
版本控制系统提供:
- 任意时间点智能体配置的 不可变快照
- 用于在上线前测试更改的 隔离分支
- 将更改逐步发布给一定比例用户的 流量拆分
- 将任意分支的更改引入其他任意分支的 合并
- 将主分支最新更改拉取到某个分支的 变基
在智能体上启用版本控制后,无法关闭。为现有智能体启用版本控制前请考虑清楚。
核心概念
版本
版本是某个时间点智能体配置的不可变快照。每个版本都有唯一 ID(格式:agtvrsn_xxxx),包含:
conversation_config- 系统提示词、LLM 设置、音色配置、工具、知识库platform_settings- 包含评估、组件、数据收集和安全设置在内的已版本化子集workflow- 包含节点和边的完整工作流程定义
保存已启用版本控制的智能体更改时,系统会自动创建版本。版本一经创建,便无法修改。
分支
分支是命名的开发线,类似 git 分支。它让你可以在隔离环境中处理更改,然后再合并回主分支。
- 每个已启用版本控制的智能体都有一个不可删除或归档的 主分支
- 可从任何现有分支上的任意版本创建额外分支,不限于主分支
- 分支可合并到其他任意分支;非主分支可变基到主分支,以拉取其最新更改
- 每个分支包含:id(
agtbrch_xxxx)、名称、描述和版本列表 - 分支名称可包含:字母、数字和
() [] {} - / .(最多 140 个字符)
流量部署
可按百分比将流量拆分到多个分支,从而实现逐步发布和 A/B 测试。
- 百分比总和必须始终恰好为 100%
- 流量路由会根据对话 ID 确定性地 分配(同一用户会始终路由到同一分支)
- 只有流量为 0% 的未归档分支才能归档
草稿
未保存的更改会存储为草稿,让你无需立即创建新版本也能处理更改。
- 草稿按 用户和分支 区分(每位团队成员都有自己的草稿)
- 提交新版本时会自动丢弃草稿
- 合并到分支时也会丢弃草稿
启用版本控制
版本控制为选择性启用功能,必须明确开启。你可以在创建新智能体时启用,也可在现有智能体上启用。
版本控制一经启用,便无法关闭。这是对智能体的永久更改。
创建智能体时启用
通过控制台启用
通过 API 启用
在控制台中打开智能体,进入 设置,然后启用版本控制。启用后,版本控制 标签页可用于管理分支、草稿、版本和流量部署。
在现有智能体上启用
通过控制台启用
通过 API 启用
在控制台中打开智能体,前往 设置,然后开启版本控制。
启用版本控制会创建初始“主分支”,其中首个版本包含当前智能体配置。
使用分支
创建分支
可从任意分支上的任何版本创建分支,不限于主分支。还可以选择包含将应用到新分支初始版本的配置更改。
列出分支
获取分支详情
提交更改
更新已启用版本控制的智能体时,请指定 branch_id,以便在该分支上创建新版本。
通过控制台更新
通过 CLI 更新
通过 API 更新
打开智能体的 版本控制 标签页,切换到目标分支,编辑配置后保存,即可创建新版本。
系统会在指定分支上自动创建新版本,并丢弃该用户在此分支上的所有现有草稿。
部署流量
使用 deployments 端点将流量分配到各个分支,从而实现逐步发布和 A/B 测试。
流量路由会根据对话 ID 确定性地分配,确保同一用户跨会话时始终访问同一分支。
合并分支
当你满意某个分支上的更改时,可将其合并到另一分支。任何未归档分支都可合并到其他任意未归档分支,不限于合并到主分支。
若要在合并前审查分支更改,或要合并到你没有写入权限的分支,请创建合并提案,而非直接合并。
合并会:
- 使用源分支配置在目标分支上创建新版本
- 可选择归档源分支(默认行为)
- 自动将流量从源分支转移到目标分支
如果源分支是从目标分支创建的(且没有超出目标分支的新提交),合并会因 no_new_changes_to_merge 而失败;如果该分支已合并到该目标分支,则会因 branch_already_merged 而失败。
解决合并冲突
如果源分支和目标分支在分叉后都更改了某项设置,默认会保留最近更新分支中的值。设置 force=True 可始终改用源分支的值,不受时间戳影响。
提交前可预览合并结果,包括所有会被覆盖的字段:
将分支变基到 main
变基会将 main 分支的最新更改拉取到另一个分支,类似于 git rebase。这样可以让长期存在的分支与 main 保持同步,而无需立即将分支自身的更改合并回去。
变基会:
- 在分支上创建一个包含 main 最新更改的新版本
- 保留分支自身的更改:如果某项设置同时在分支和 main 中被编辑,始终保留分支的值
- 如果分支已包含 main 的所有更改,则返回
branch_already_up_to_date错误
只有非 main 分支可以变基,且只能变基到 main。对 main 分支本身变基会
返回 cannot_rebase_main 错误。
提交前可先预览变基结果:
归档分支
归档不再需要的分支,有助于保持分支列表整洁。
无法归档已分配流量的分支。归档前请移除所有流量。
将 archived=False 即可取消归档分支。
获取特定版本
可以获取指定版本或分支最新提交的智能体。
获取指定版本的智能体
获取分支最新提交的智能体
包含草稿更改
设置参考
版本化设置
这些设置可因版本和分支而异:
每个智能体的设置
这些设置在所有版本间共享:
在非 main 分支上更改名称和标签,需合并到 main 后才会保存到智能体。