迁移覆盖入口、协议、部署和会话,但不承诺替代所有平台能力。因此,迁移前需明确以下边界:
- 旧调用接口兼容约束: LangChain 等框架迁移后,原有旧 HTTP 调用端无法实现零改造兼容,仅通过主动开启 --compat(langserve / fastapi-mount) 参数,才可适配原有调用链路。
- HITL 交互与数据持久化约束: LangGraph compiled graph 不会自动生成完整的 HITL resume 人工恢复协议,复杂的会话持久化、状态恢复逻辑,需由用户自行配置实现。
- A2A 能力迭代约束:当前 A2A 通信能力基于 ADK 实验性版本实现,协议可正常使用,但需持续关注上游版本迭代与兼容性变更。
- AgentCore 平台能力: 迁移不会替代完整 Bedrock AgentCore Runtime 平台能力。IAM 权限、workload identity、Memory 记忆、Gateway 网关、MCP 工具、登录态等平台底层能力,仍由原项目及原有部署环境全权负责。
- 迁移与评测解耦原则:migrate 工具仅负责生成运行入口、业务配置、部署物料,不会自动触发 eval 评测;低代码迁移产物会自动配套生成测评集,是否执行评测,由用户迁移完成后自主选择、手动触发。
从准备到调用共五步。高代码在「执行迁移」环节与本地一次行完成迁移和适配,低代码则在该步拆成 create 和 status 两个阶段远端交互。
以 LangChain 为例,执行以下一条命令完成迁移。
说明
- 首次迁移需填加 --verify,用于导入生成物并本地请求 /run_sse。
- 项目模型调用较慢时,设置 AGENTKIT_MIGRATE_VERIFY_TIMEOUT_SECONDS=240 放宽超时。
--entry agent.py:agent \
--model-base-url <模型接入点> \
--model-api-key-env <模型 API Key> \
agentkit invoke <agent id/name> -m "你好,请用一句话介绍自己"
- 在待迁移 Agent 环境的终端,执行如下命令完成安装。
使用系统自带 curl 工具下载并执行安装脚本:
curl https://agentkit-cli.tos-cn-beijing.volces.com/install.sh | sh
使用 wget 工具下载并执行安装脚本:
wget -qO- https://agentkit-cli.tos-cn-beijing.volces.com/install.sh | sh
- 执行以下命令,检查 CLI 工具的版本,版本号为 0.51.1。
说明
您的环境中可能同时存在两套 AgentKit CLI:
- TypeScript AgentKit CLI:注册 agentkit 命令和 ak 命令,版本号为 0.51.1。
- Python AgentKit CLI:随 agentkit-python-sdk 安装,注册 agentkit 命令,版本号为 0.8.x。
当前 agentkit migrate 仅由 TypeScript AgentKit CLI 提供。由于 TypeScript CLI 和 Python SDK 都会注册 agentkit 命令,如果您的 python 安装过agentkit-python-sdk 包、或者启用 Python 虚拟环境后,agentkit 有可能优先解析到 Python SDK 提供的 CLI,从而无法使用 migrate 子命令。
建议您在遇到 agentkit migrate 命令无法执行的报错时,输入agentkit -v,检查一下当前 agentkit 命令注册的是什么版本。如果输出显示当前使用的是 Python AgentKit SDK CLI,建议改用 TypeScript CLI 提供的等价命令 ak(即ak migrate),ak 与 TypeScript CLI 的 agentkit 命令等价,可避免与 Python SDK 注册的同名 agentkit 命令发生路径解析冲突。
如果您需要在本地调试待迁移的 Agent,请参考本步骤准备 Python 环境。
- 执行如下命令,确认待迁移 Agent 环境的 Python 版本不低于 3.10。
-
- 使用uv管理 python 虚拟环境和依赖。推荐您使用uv工具管理 Python 环境,将 AgentKit 相关依赖放进独立虚拟环境,避免影响您终端内运行的其他 Python 项目。
curl -LsSf https://astral.sh/uv/install.sh | sh
source .venv/bin/activate
- 原项目所有业务依赖需规范声明在requirements.txt,并且保证可正常批量安装。迁移工具会自动追加 AgentKit SDK 及对应框架适配依赖,保留原有项目依赖,无删除、无覆盖,保障业务能力不变。
- requirements.txt 中需要提供以下两部分的 python 依赖:
- 待迁移 Agent 的原始 python 依赖:用户已有的 Agent 项目的 python 依赖,用于保证原始 Agent 运行。
- AgentKit Agent 适配层依赖:AgentKit Runtime适配层的 python 依赖。需固定为:
agentkit-sdk-python>=0.7.12
- 以一个简单的 Strands 迁移为例,requirements.txt中需要如下两部分:
agentkit-sdk-python>=0.7.12
进入待迁移的 Agent 目录后执行:
uv pip install -r requirements.txt
进入待迁移的 Agent 目录后执行:
pip install -r requirements.txt
本文以火山引擎方舟大模型 Doubao-Seed-2.1-pro 为例,第三方平台模型请自行获取模型名称、模型 API Key 和模型接入点 URL。
- 搜索 Doubao-Seed-2.1-pro 并完成开通后,点击模型名称进入详情页。
- 查看模型使用说明,记录模型的接入点 URL 和模型名称。如下图所示,分别为模型接入点 URL 和模型名称。
-
-
- 执行cp命令复制环境变量(例如 .env)文件,并执行vim编辑新文件。
- 在新文件中,填写模型配置和 AgentKit 命令所需的火山引擎 AK/SK。
说明
- 模型接入点 URL 保留到版本后即可,例如https://ark.cn-beijing.volces.com/api/v3。
- 火山引擎 AK/SK 用于后续部署到 AgentKit 平台时需要,您可以选择在此时配置,也可以后续部署存量 Agent 前再次执行本步骤。
MODEL_AGENT_API_BASE=<模型接入点 URL>
MODEL_AGENT_API_KEY=<模型 API Key>
VOLCENGINE_ACCESS_KEY=<your ak>
VOLCENGINE_SECRET_KEY=<your sk>
-
export $(grep -v '^#' .env | xargs)
执行以下命令,可以在本地环境中调试和验证待迁移的 Agent。
不同框架的迁移命令不同,各参数介绍请参见命令参数介绍。高代码框架的差异集中在 --framework 和 --entry,其余参数结构一致。 兼容 Runnable、LCEL 编排、Agent 执行器全能力;原有 LangServe 接口无需改造,启动时加 --compat langserve 即可兼容旧调用端。
--entry langchain_agent_migrate/agent.py:agent \
--name langchain-agent \
--model-id doubao-seed-2-1-pro-260628 \
--model-base-url https://ark.cn-beijing.volces.com/api/v3 \
--model-api-key-env ARK_API_KEY \
LangGraph compiled graph
适合已经写好 Graph 流程图的项目。默认直接兼容标准对话消息结构(messages state);自定义 state 字段用 --input-key,指定流式节点用 --stream-node。
--entry graph.py:graph \
--name langgraph-agent \
--model-id doubao-seed-2-1-pro-260628 \
--model-base-url https://ark.cn-beijing.volces.com/api/v3 \
--model-api-key-env ARK_API_KEY \
官方 LangGraph 线上服务项目,启动需追加 --server-mode langgraph。迁移后服务同时支持原生 LangGraph 接口(/threads、/runs/stream)、AgentKit 标准双协议,原有业务调用不受影响。
--server-mode langgraph \
--entry langgraph.json:agent \
--name langgraph-server-agent \
--model-id doubao-seed-2-1-pro-260628 \
--model-base-url https://ark.cn-beijing.volces.com/api/v3 \
--model-api-key-env ARK_API_KEY \
原生 ADK 智能体无缝迁移,无需中间转换层。完整保留原有工具(ADK tools)、回调函数(callbacks)、子智能体调度逻辑(sub-agent),最终部署为标准 AgentKit 线上服务。
--entry agent.py:root_agent \
--model-id doubao-seed-2-1-pro-260628 \
--model-base-url https://ark.cn-beijing.volces.com/api/v3 \
--model-api-key-env ARK_API_KEY \
推荐使用零参数 factory 工厂函数作为程序入口 entry。迁移后每个对话会话 session 独立创建智能体实例 Strands agent,避免多用户对话之间状态错乱、数据互相干扰。
--entry agent.py:build_agent \
--model-id doubao-seed-2-1-pro-260628 \
--model-base-url https://ark.cn-beijing.volces.com/api/v3 \
--model-api-key-env ARK_API_KEY \
项目已使用 Bedrock 官方服务框架(BedrockAgentCoreApp)时选用。迁移后同时提供 AgentKit 标准接口,保留原健康检测(/ping)、调用(/invocations)接口,不会替换原有 Bedrock AgentCore Runtime 完整平台能力。它不是完整 Bedrock AgentCore Runtime 平台替代;IAM、workload identity、Memory、Gateway、MCP、登录态等外部能力仍由原项目和部署环境负责。
--entry deploy/agentcore/app.py:app \
--name agentcore-agent \
--model-id doubao-seed-2-1-pro-260628 \
--model-base-url https://ark.cn-beijing.volces.com/api/v3 \
--model-api-key-env ARK_API_KEY \
迁移产物生成完成后,部署时会自动读取 .agentkit/agentkit.yaml 中的环境变量映射并完成云上部署;业务调用统一通过 AgentKit 原生 invoke 协议执行。所有迁移框架默认支持标准流式接口 /run_sse。
- 执行以下命令,将存量 Agent 部署到 火山引擎 AgentKit。
- 回显如下,返回 AgentKit 智能体运行时(Runtime)ID,表示部署成功。
-
-
执行invoke命令,使用 AgentKit 原生调用,适用于所有迁移框架。
agentkit invoke <agent id/name> -m "你好,请用一句话介绍自己"
- 在左侧导航树中,选择“基础组件 > 智能体运行时”。
- 单击目标 Agent 右侧“操作”列的“在线测试”按钮。
-
- 输入自然语言,等待 Agent 回答,验证已部署 Agent 符合预期。
-
Agent 发布并完成在线测试后,建议您继续通过 AgentKit 提供的观测和评测能力验证其运行状态与实际效果,逐步完成“是否稳定可用”到“足够好、值得上线”的优化。
观测用于查看 Agent 在真实调用过程中的运行表现,帮助您发现链路异常、模型调用异常、日志报错或性能瓶颈。开启数据观测后,AgentKit 与 VeADK SDK 会基于 OpenTelemetry 自动采集各环节(例如模型调用、工具执行、记忆库检索等)的 Trace(调用链)与 Metrics(指标)的 Trace(调用链)与 Metrics(指标),并将数据投递至观测平台。
您可以在“数据观测”页面查看 Agent 的运行时监控、会话分析、Trace 分析、模型监控、日志分析。了解更多 评测用于通过标准化实验衡量 Agent 在效果、性能和成本三个维度的表现,帮助您判断当前版本是否满足预期,并为后续优化迭代及上线提供依据。
评测机制通常由三部分组成:评测集、评估器和实验。其中,评测集用于提供标准化输入与参考答案;评估器可以基于 LLM 或 Code 按既定规则打分;实验则负责组合执行、聚合结果指标,并支持多实验之间的对比分析。了解更多 Agent 上线后,您还可以在控制台中随时更新其实例规格、自定义镜像、模型、环境变量等配置。了解更多 注意
更新智能体运行时配置后,需重新发布使新配置生效。了解更多