SuperAPI AI 工具集

ark setup

部署与运维

查看项目

更新于 10-16 14:07

技能介绍

Ark Setup 简介

Ark Setup 是一个帮助用户从源码安装与部署 Ark 平台的技能,主要通过 ark-cli 完成。当用户希望安装或搭建 Ark、需要将 Ark 部署到本地 Kubernetes 集群、询问如何让 Ark 运行起来,或需要排查 Ark 安装问题时,可以使用该技能。

使用前提

该技能要求环境中具备以下工具:Docker-in-Docker(DinD),用于让 Kind 在容器内创建集群;kubectl,即 Kubernetes CLI;Helm,用于安装 Ark 组件;Node.js,用于构建 ark-cli 工具。

操作步骤

第 0 步:验证 Docker-in-Docker 是否可用。这一步被标记为关键,必须先执行 docker info 确认 Docker 可访问,然后再尝试创建 Kind 集群。如果该命令失败,应立即停止,不应尝试创建 Kind 集群,并向用户报告无法进行,因为 Docker 不可用,而 Kind 需要 Docker-in-Docker 才能在容器内创建集群,容器必须以 ark profile(devspace dev -p ark)启动以添加 DinD sidecar。

第 1 步:克隆 Ark 仓库。若用户提供了 org/repo,则使用该地址,否则使用默认地址:git clone git@github.com:mckinsey/agents-at-scale-ark.git,随后进入目录 agents-at-scale-ark。若处理拉取请求,则获取并检出对应 PR 分支。

第 2 步:设置 Kubernetes 集群。其中第 2a 步要求先清理已有集群,始终先删除现有的 Kind 集群以避免冲突与资源耗尽,包括删除已有的 ark-cluster 并确认不存在。第 2b 步创建集群并配置 kubeconfig,包括创建 Kind 集群、获取控制平面容器的 IP 地址、导出 kubeconfig 并将主机名替换为 IP,最后验证连接。该步骤说明,由于 agent 运行在 Docker 内,默认的 127.0.0.1 无法跨容器工作,--internal 主机名可能无法解析,因此使用实际容器 IP 以确保连通。

第 3 步:从源码构建 ark-cli。在克隆的仓库中依次执行 npm install、进入 tools/ark-cli 后再次 npm install,并执行 npm run build,以确保使用与所测试代码匹配的版本。

第 4 步:使用 ark-cli 安装 Ark。通过 node 直接执行安装命令,例如在 tools/ark-cli 目录下执行 node dist/index.js install --yes --wait-for-ready 5m,或在仓库根目录执行 node tools/ark-cli/dist/index.js install --yes --wait-for-ready 5m。其中 --yes 自动确认提示,--wait-for-ready 等待服务就绪。

第 5 步:验证安装。可通过 ark-cli 的 status 命令或 kubectl 查询 ark、ark-system 命名空间下的 pod 以及 ark 命名空间下的 service,等待所有 pod 显示 Running 且服务就绪。

排障说明

若 Docker 不可用或 Kind 创建集群失败,应停止并报告容器未配置 Docker-in-Docker,需以 ark profile 启动。可检查 pod 状态、查看日志(如 ark-api 与 ark-controller 的日志)。若 kubectl/helm 无法访问集群 API 服务器(连接被拒或找不到主机名),可重新获取控制平面 IP 并重新配置 kubeconfig,再验证 server 地址是 IP 而非 127.0.0.1 或主机名。

运行 Ark 后

Ark 运行后即可使用 kubectl apply 应用示例 agent 配置,并通过 kubectl 查询 agents、queries、teams 或描述某个 agent。若需 OpenTelemetry 追踪,可安装 Phoenix,并可通过端口转发访问其仪表盘。

重要注意事项

不要使用已弃用的 scripts/quickstart.sh,应始终使用上述 ark-cli 方式;不要使用 npm install -g @agents-at-scale/ark,应始终从源码构建 ark-cli 以匹配所测试的 PR 代码。