Files
heicode/Heicode-Manager-生产配置与账号交接清单.md
chenchenandClaude Opus 4.8 699fa5ef44 docs(swarm): refresh HM-side swarm docs to current agent_swarm state
HM 端文档里的蜂群描述还是旧的(错仓名 + 旧模型),据实更新为当前 agent_swarm:

- 仓名:`HeiCode-Swarm` → `agent_swarm`(GitHub xmindlab-heicode/agent_swarm;产品名 HeiCode Swarm)。
- 模型:旧「HM 主导编排 / 仅 /tasks」→ 当前 Master-Agent 编排(分解→派发专家并行→协作/移交→评审/重做→汇总;Orchestrator FastAPI + Redis + WebSocket + Prometheus)。
- 契约:agent_swarm 已起草正式契约 docs/integration/runtime-contract.md(对齐 heicode-am-contract),待 Manager Runtime Team 评审冻结;已实现 create/status/tasks/logs/events/metrics/workflow/diagnostics/stop/approvals(带 deployment_id)。
- issue 引用:`agent_swarm#1`(执行面缺口,已关闭)→ 活动 EPIC `agent_swarm#2`(主链路接入契约冻结);HM 侧前置 #45/#46。

文件:
- docs/integration/heicode-swarm-deferred.md:勘误抬头 + §1 模型/接入状态 + §2 归属表(仓名/契约/接口) + §4 收尾据实更新。
- heicode/docker-compose.azure-vm.yml:SWARM_RUNTIME_* 注释更正(agent_swarm,deferred,当前关闭)。
- Heicode-Manager-生产配置与账号交接清单.md §7 + Orchestrator 地址标签:加勘误 banner,保留 env 历史记录但标注为旧模型/当前关闭。
- docs/deployment/Heicode-Manager-更换部署服务配置清单.md §2.2:加勘误 banner。

HM 不实现 swarm runtime 的裁定不变;仅把"蜂群现状"事实对齐。未改 env 变量名/行为(SWARM_RUNTIME_* 仍 disabled),未动 legacy-teardown 历史记录。Docs/注释 only。

Affects: 文档/注释 only。无代码、无计费/审计/部署行为改动。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 12:15:57 +08:00

287 lines
19 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Heicode Manager 生产配置与账号交接清单
更新时间:2026-06-01
适用范围:Heicode Manager 生产环境、普通 sub Runtime、蜂群 Runtime、NewAPI、Azure 资源和后续 AI/运维交接。
## 0. 安全说明
本文只记录配置项、用途、位置和获取方式,不记录明文密码、Token、Key、连接串或私钥。
| 规则 | 要求 |
|------|------|
| 明文密钥 | 不写入 Markdown、git、聊天记录、日志、截图 |
| 生产 `.env` | 只保存在 VM 或部署平台 Secret 中,不提交仓库 |
| Azure Key Vault | 只保存长期密钥或 callback 签名密钥,代码和数据库只保存 `secret_ref` |
| 转交给其他 AI | 只给本文档;需要明文值时由负责人通过安全渠道单独提供 |
| 已泄漏密钥 | 一律按泄漏处理,立即轮换 |
## 0.1 配置可读取性结论
不是所有配置都能、也不应该在交接 Markdown 中读取和保存明文值。当前结论分三类:
| 分类 | 含义 | 处理方式 |
|------|------|----------|
| 可直接读取 | 仓库文档、compose、公开地址、非敏感环境变量能直接确认 | 在本文写出真实值 |
| 可确认已配置但不读取明文 | 生产容器 env 中存在,但值是密码、token、连接串或密钥 | 在本文写出配置名、用途、保存位置和 `<REDACTED>` |
| 当前无法确认明文或后台状态 | 需要 Azure Portal、NewAPI 后台、Gitee 凭据、VM root 权限或负责人授权 | 在本文明文写出“无法读取项名称、原因、获取入口” |
当前无法在本文保存明文的配置如下:
| 配置 / 凭据 | 是否能确认存在 | 为什么不能写明文 | 需要去哪里取 |
|-------------|----------------|------------------|--------------|
| VM SSH 密码/私钥 | 已知需要 | 登录凭据,写入文档会泄漏生产入口 | 负责人安全渠道、SSH keychain 或运维密码库 |
| Gitee 用户密码/token | 已知需要 | Git 凭据,写入文档会泄漏代码仓库权限 | 本机 credential helper、Gitee 个人 token、负责人安全渠道 |
| `SQL_DSN` | 已确认配置项存在 | 内含数据库用户名、密码、host、参数 | VM `.env`、容器 env、Azure PostgreSQL 连接串 |
| `REDIS_CONN_STRING` | 已确认配置项存在 | 内含 Redis 密码和 TLS 连接串 | VM `.env`、容器 env、Azure Redis Access keys |
| `SESSION_SECRET` | 已确认配置项存在 | 会话签名密钥,泄漏会影响登录安全 | VM `.env`、容器 env、部署平台 Secret |
| `CRYPTO_SECRET` | 已确认配置项存在 | Manager 加密密钥,泄漏会影响加密数据安全 | VM `.env`、容器 env、部署平台 Secret |
| `MCP_SERVER_INTERNAL_TOKEN` | 已确认配置项存在 | 内部服务调用 token | VM `.env`、容器 env |
| `AGENT_RUNTIME_SERVICE_TOKEN` | 已确认配置项存在 | Manager 调 Runtime 的 Bearer token | VM `.env`、容器 env、Agent Manager 负责人 |
| `AGENT_CALLBACK_TOKEN` | 已确认配置项存在 | Runtime 回调 Manager 的旧 token 兼容凭据 | VM `.env`、容器 env、Agent Manager 负责人 |
| `AGENT_CALLBACK_SIGNING_SECRET` | 已确认配置项存在 | Runtime 回调 Manager 的 HMAC 签名密钥 | VM `.env`、Key Vault `agent-callback-signing-key` |
| `AGENT_RUNTIME_CALLBACK_SIGNING_SECRET_REF` | 已确认配置项存在 | secret_ref 本身不应暴露完整细节 | VM `.env`、Key Vault 配置 |
| NewAPI 管理员密码 | 当前未在仓库读取 | 后台管理员凭据 | NewAPI 后台、NewAPI DB、负责人安全渠道 |
| NewAPI 渠道 Key | 当前未在仓库读取 | 上游模型供应商 key | NewAPI 渠道管理页面或 DB |
| Azure Portal 账号/MFA | 当前未在仓库读取 | 云账号权限极高 | 负责人 Azure 账号体系 |
| Azure Key Vault secret value | 当前未直接读取 | Key Vault 密钥值只能由授权身份读取 | Azure Portal、Azure CLI、Managed Identity |
后续 AI 如果必须使用明文值,应只在当前 shell/session 的环境变量中临时使用,不能写入 Markdown、git diff、日志或截图。
## 1. 当前生产入口与代码仓库
| 项目 | 当前值 / 位置 | 说明 |
|------|---------------|------|
| Manager 生产地址 | `https://code.xinghanlab.com` | 用户和桌面客户端访问入口 |
| Manager 本地仓库 | `/Users/gongzhiyong/go/heicode-mananger` | 当前开发工作区 |
| Manager Git 远程 | `http://gitee.ath.cx:3000/taijibaga/heicode-mananger.git` | 继续开发、提交、上线使用 |
| 主分支 | `main` | 当前工作分支 |
| 旧 bug 仓库 | `HeiCode-issues.git` | 已废弃,后续不用再传 |
| 当前未跟踪文件 | `bak.txt` | 本地文件,不属于本交接文档内容 |
## 2. Azure / VM 生产资源
| 类型 | 当前配置 | 用途 | 备注 |
|------|----------|------|------|
| Azure Resource Group | `HEICODE` | Heicode 相关 Azure 资源组 | 以 Azure Portal 实际为准 |
| 区域 | `southeastasia` | 主要生产资源区域 | 以 Azure Portal 实际为准 |
| Manager VM | `heicode` | 当前承载 Manager Docker 容器 | 生产应用仍在 VM 上 |
| VM SSH Host | `20.24.50.121` | 登录生产 VM | 凭据见“账号与凭据清单” |
| VM SSH User | `heicode` | 生产 VM 运维用户 | 密码/私钥不写入本文 |
| Manager 容器 | `heicode` | 生产 Manager 应用容器 | 端口 `3000:3000` |
| Manager 镜像 | `heicode-manager:local` | VM 本地构建镜像 | 以 `docker ps` 为准 |
| 数据根目录 | `/var/lib/heicode/heicode` | bind mount 根目录 | 由 `HEICODE_DATA_ROOT` 控制 |
| 应用持久目录 | `/data` | 上传文件、桌面安装包、运行持久文件 | 容器内路径,映射到 VM |
| 应用日志目录 | `/app/logs` | Manager 日志 | 容器内路径,映射到 VM |
当前 VM 上观察到的容器:
| 容器 | 镜像 | 端口 | 说明 |
|------|------|------|------|
| `heicode` | `heicode-manager:local` | `3000:3000` | Manager 生产应用 |
| `new-api` | `calciumion/new-api:latest` | `3001:3000` | NewAPI 管理和模型网关 |
| `heicode-openbao` | `openbao/openbao:latest` | `127.0.0.1:8200:8200` | 历史/兼容密钥服务,不作为当前正式方案 |
| `postgres` | `postgres:15` | VM 内部 | VM 上存在容器,但 Manager 正式配置应以 Azure PostgreSQL 为准 |
| `redis` | `redis:latest` | VM 内部 | VM 上存在容器,但 Manager 正式配置应以 Azure Redis 为准 |
重要:仓库约定和部署文档要求生产业务库使用 Azure 托管 PostgreSQL / Redis,不要把 VM 上的 `postgres`、`redis` 容器误认为正式托管实例。
## 3. 当前 VM 关键路径
| 路径 | 用途 | 备注 |
|------|------|------|
| `/home/heicode/heicode/heicode/.env` | Manager 生产环境变量文件 | **当前真实部署目录**(compose `working_dir` 实锤);仓库远程为 `taijibaga/heicode-mananger` |
| `/home/heicode/heicode/heicode/docker-compose.azure-vm.yml` | Manager Azure VM compose | 当前 active compose(`docker inspect` 的 `config_files` 指向此文件) |
| `/home/heicode/apps/new-api/docker-compose.yml` | NewAPI compose | NewAPI 容器配置入口 |
| `/home/heicode/apps/_ABANDONED_heicode-git_xiaohei_20260601/` | **已废弃的旧 clone**(原 `xiaohei/heicode`,2026-06-01 改名挪走) | 不是部署源;曾误导排查。可后续硬删 |
| `/home/heicode/deploy/` | 历史部署目录 | 可能包含旧版本 `.env`,不要直接当作当前配置 |
| `/home/heicode/releases/` | 历史 release 目录 | 只用于回溯,不作为当前事实 |
| `/var/lib/heicode/heicode/data` | Manager 持久数据 | 对应容器 `/data` |
| `/var/lib/heicode/heicode/logs` | Manager 日志 | 对应容器 `/app/logs` |
## 4. Manager 基础环境变量
| 环境变量 | 当前状态 | 用途 | 值/来源 |
|----------|----------|------|---------|
| `TZ` | 已配置 | 时区 | `Asia/Shanghai` |
| `NODE_NAME` | 已配置 | 节点名 | `heicode-node-1` |
| `ERROR_LOG_ENABLED` | 已配置 | 错误日志开关 | `true` |
| `BATCH_UPDATE_ENABLED` | 已配置 | 批量更新开关 | `true` |
| `HEICODE_DATA_ROOT` | 已配置 | VM bind mount 根目录 | `/var/lib/heicode/heicode` |
| `SQL_DSN` | 已配置,敏感 | PostgreSQL 连接串 | VM `.env` / 容器 env,值 `<REDACTED>` |
| `REDIS_CONN_STRING` | 已配置,敏感 | Redis TLS 连接串 | VM `.env` / 容器 env,值 `<REDACTED>` |
| `SESSION_SECRET` | 已配置,敏感 | 登录会话签名 | VM `.env` / 容器 env,值 `<REDACTED>` |
| `CRYPTO_SECRET` | 已配置,敏感 | Manager 加密密钥 | VM `.env` / 容器 env,值 `<REDACTED>` |
| `MCP_SERVER_INTERNAL_TOKEN` | 已配置,敏感 | 内部服务调用 token | VM `.env` / 容器 env,值 `<REDACTED>` |
| `HEICODE_AUTH_BASE_URL` | 已配置 | Heicode/Agent 认证网关 | 默认参考 `https://apimtaiji.azure-api.net/api/mcp`,以 VM env 为准 |
| `HEICODE_ROOT_EMAILS` | 已配置 | JIT 自动 root 白名单 | 当前容器 env 可见 `xiaohei@qq.com` |
| `HEICODE_ADMIN_EMAILS` | 空 | JIT 自动 admin 白名单 | 当前未配置 |
生产数据库和 Redis:
| 服务 | 地址 | 说明 |
|------|------|------|
| Azure PostgreSQL | `heicode.postgres.database.azure.com` / DB `heicode` | Manager 正式数据库 |
| Azure Redis | `heicode.redis.cache.windows.net:6380` | TLS Redis,连接串走 `REDIS_CONN_STRING` |
## 5. Azure Key Vault / 密钥保管库配置
| 项目 | 当前状态 | 用途 | 备注 |
|------|----------|------|------|
| Key Vault 名称 | `heicode-kv` | 长期密钥和 callback 签名密钥托管 | 以 Azure Portal 为准 |
| Key Vault URL | `https://heicode-kv.vault.azure.net` | Manager 访问密钥保管库 | 对应 `AZURE_KEY_VAULT_URL` |
| `AZURE_KEY_VAULT_URL` | 已配置 | Key Vault 地址 | VM env,值应为上面 URL |
| `AZURE_CLIENT_ID` | 当前为空 | user-assigned managed identity client id | 若使用 system-assigned 可为空;若 health 报 Identity not found 需配置身份 |
| `agent-callback-signing-key` | 必须存在 | Runtime callback HMAC 签名密钥 | 建议通过 Key Vault 存储 |
当前已知问题:
| 问题 | 含义 | 处理方式 |
|------|------|----------|
| `Identity not found` | VM 当前没有可用 Managed Identity,或未绑定正确 `AZURE_CLIENT_ID` | 在 VM/容器服务开启 Managed Identity,并给 `heicode-kv` 授权 |
Key Vault 最低权限:
| 用途 | 权限 / RBAC |
|------|-------------|
| 读取 callback 签名密钥 | `secrets/get` |
| 健康检查列举 | `secrets/list` |
| Manager 写入资源密钥 PutSecret | `secrets/set` |
| RBAC 参考角色 | `Key Vault Secrets User` 或 `Key Vault Secrets Officer` |
## 6. 普通 sub Runtime / Agent Manager 配置
普通 sub 和蜂群是两套模式,不要混用。普通 sub 当前走 Agent Manager Runtime IP。
| 环境变量 | 当前状态 | 当前值 / 位置 | 说明 |
|----------|----------|---------------|------|
| `AGENT_RUNTIME_ENABLED` | 已启用 | `true` | 开启普通 sub Runtime |
| `AGENT_RUNTIME_BASE_URL` | 已配置 | `http://20.212.121.126` | 当前联调和生产使用 IP,域名未切换 |
| `AGENT_RUNTIME_HEALTH_PATH` | 已配置 | `/api/agent/health` | Runtime 健康检查 |
| `AGENT_RUNTIME_CREATE_PATH` | 已配置 | `/api/swarms` | 普通 sub 创建入口 |
| `AGENT_RUNTIME_STOP_PATH` | 已配置 | `/api/swarms/{swarm_id}/stop` | 停止 Runtime run |
| `AGENT_RUNTIME_APPROVAL_DECISION_PATH` | 已配置 | `/api/swarms/{swarm_id}/approvals/{approval_id}` | 审批结果回传 |
| `AGENT_RUNTIME_TIMEOUT_SECONDS` | 已配置 | `15` | Manager 调 Runtime 超时 |
| `AGENT_RUNTIME_SERVICE_TOKEN` | 已配置,敏感 | VM env,值 `<REDACTED>` | Manager 调 Runtime 的 Bearer token |
| `AGENT_RUNTIME_CALLBACK_SIGNING_SECRET_REF` | 已配置,敏感引用 | VM env,值 `<REDACTED>` | callback HMAC secret_ref,正式应为 `azkv://...` |
| `AGENT_CALLBACK_TOKEN` | 已配置,敏感 | VM env,值 `<REDACTED>` | Runtime 回调 Manager 的旧 token 兼容 |
| `AGENT_CALLBACK_SIGNING_SECRET` | 已配置,敏感 | VM env,值 `<REDACTED>` | Runtime 回调 Manager 的 HMAC fallback |
普通 sub 当前标准链路:
```text
桌面客户端
-> Heicode Manager /api/agent/user/*
-> Agent Manager Runtime http://20.212.121.126/api/swarms
-> Runtime/Agent 执行
-> Runtime callback 到 https://code.xinghanlab.com/api/agent/callbacks/swarm-events
-> Manager 落库
-> 桌面客户端查询 timeline/logs/artifacts/content
```
## 7. 蜂群 Runtime 配置
> ⚠️ **2026-06-10 勘误(模型已更新)**:本节描述的「普通 sub + 蜂群两套模式 + `SWARM_RUNTIME_*` + `/api/swarms`」是**旧的「HM 主导编排」模型,已作废**。当前权威模型:HM **不实现 swarm runtime**;单 Agent 走「模板 Agent + AM」(见 `docs/integration/heicode-am-contract.md`),多 Agent 蜂群归 **`agent_swarm`**(产品名 HeiCode Swarm)仓,其编排为 Master-Agent(分解→派发→评审→汇总),契约见 `agent_swarm/docs/integration/runtime-contract.md`(待冻结,`agent_swarm#2`)。详见 `docs/integration/heicode-swarm-deferred.md`。下表 `SWARM_RUNTIME_*` 仅为**仍存在于 env 但当前关闭(`SWARM_RUNTIME_ENABLED=false`)**的历史开关,保留作记录,不代表当前接入形态。
蜂群模式和普通 sub 模式是两套部署、两套语义。Manager 当前环境里蜂群 Runtime 开关是关闭状态。
| 环境变量 | 当前状态 | 当前值 / 位置 | 说明 |
|----------|----------|---------------|------|
| `SWARM_RUNTIME_ENABLED` | 当前关闭 | `false` | 蜂群 Runtime 独立开关 |
| `SWARM_RUNTIME_BASE_URL` | 当前为空 | `<EMPTY>` | 蜂群 Runtime 地址未在 Manager 生产 env 启用 |
| `SWARM_RUNTIME_CREATE_PATH` | 已有默认 | `/api/swarms` | 蜂群创建入口默认值 |
| `SWARM_RUNTIME_HEALTH_PATH` | 已有默认 | `/api/agent/health` | 蜂群健康检查默认值 |
| `SWARM_RUNTIME_STOP_PATH` | 已有默认 | `/api/swarms/{swarm_id}/stop` | 蜂群停止默认值 |
| `SWARM_RUNTIME_APPROVAL_DECISION_PATH` | 已有默认 | `/api/swarms/{swarm_id}/approvals/{approval_id}` | 蜂群审批默认值 |
| `SWARM_RUNTIME_SERVICE_TOKEN` | 当前为空 | `<EMPTY>` | 蜂群 Runtime token 未配置 |
已知蜂群 Orchestrator 地址:
| 项目 | 地址 | 说明 |
|------|------|------|
| `agent_swarm`(HeiCode Swarm)Orchestrator | `http://52.139.240.116:8000` | 蜂群项目独立 Runtime / Orchestrator(HM 侧 deferred,未在 Manager 生产 env 启用) |
## 8. NewAPI / 模型网关配置
| 项目 | 当前配置 | 用途 | 备注 |
|------|----------|------|------|
| NewAPI 容器 | `new-api` | 模型网关、渠道、模型 token、用量 | VM 上运行 |
| NewAPI 镜像 | `calciumion/new-api:latest` | NewAPI 服务镜像 | 以 `docker ps` 为准 |
| NewAPI VM 端口 | `20.24.50.121:3001` -> container `3000` | 管理后台或内部访问 | 是否公网开放以 NSG/防火墙为准 |
| NewAPI compose | `/home/heicode/apps/new-api/docker-compose.yml` | NewAPI 部署配置 | 明文密钥不得写入本文 |
| 模型渠道配置 | NewAPI 管理后台 / DB | 渠道 key、base_url、模型映射 | 不在 Manager 文档保存明文 |
| Manager 模型接口 | `https://code.xinghanlab.com/v1/...` | 桌面客户端模型调用入口 | Manager / NewAPI 转发 |
## 9. 账号与凭据清单
| 类别 | 标识 | 用途 | 明文值位置 / 获取方式 |
|------|------|------|-----------------------|
| VM SSH | host `20.24.50.121`, user `heicode` | 登录生产 VM、部署、看日志、清 Docker | 密码或私钥由负责人通过安全渠道提供,本文不保存 |
| Gitee Manager 仓库 | `http://gitee.ath.cx:3000/taijibaga/heicode-mananger.git` | 拉取、提交、推送 Manager 代码 | Gitee 用户名/密码或 token 由负责人提供;可能已在本机 credential helper |
| Manager Root 邮箱 | `xiaohei@qq.com` | 生产 root 白名单 | 只记录邮箱,不记录密码 |
| Manager 测试用户 | `zsbgnw@gmail.com` | 桌面客户端和 Manager 联调测试 | 密码不写入本文,需负责人单独提供 |
| Manager 管理后台用户 | 以生产数据库/后台为准 | 登录 `https://code.xinghanlab.com` 管理配置 | 密码不写入本文 |
| NewAPI 管理员 | 以 NewAPI 后台/DB 为准 | 配置渠道、模型、用户 token、日志 | 密码不写入本文 |
| NewAPI 渠道 Key | NewAPI 后台渠道管理 | 模型上游调用 | Key 不写入本文 |
| Azure Portal | 负责人 Azure 账号 | VM、Key Vault、PostgreSQL、Redis、网络配置 | 账号/密码/MFA 不写入本文 |
| Azure Key Vault Secret | `agent-callback-signing-key` | callback HMAC 签名 | 在 `heicode-kv` 获取/轮换 |
| Runtime Service Token | `AGENT_RUNTIME_SERVICE_TOKEN` | Manager 调 Agent Manager Runtime | VM env 或部署平台 Secret,值 `<REDACTED>` |
| Callback Token | `AGENT_CALLBACK_TOKEN` | Runtime 回调 Manager 旧 token 兼容 | VM env 或部署平台 Secret,值 `<REDACTED>` |
| Callback HMAC Secret | `AGENT_CALLBACK_SIGNING_SECRET` | Runtime 回调 Manager HMAC fallback | VM env / Key Vault,值 `<REDACTED>` |
| PostgreSQL 密码 | `SQL_DSN` 内 | Manager 数据库连接 | VM `.env` / Azure PostgreSQL,值 `<REDACTED>` |
| Redis 密码 | `REDIS_CONN_STRING` 内 | Manager Redis 连接 | VM `.env` / Azure Redis,值 `<REDACTED>` |
## 10. 常用排障命令
以下命令只列配置名或状态,避免直接打印明文密钥。
```bash
sudo docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'
sudo docker inspect heicode \
--format '{{range .Config.Env}}{{println .}}{{end}}' \
| awk -F= '{print $1}' \
| sort
curl -fsS http://127.0.0.1:3000/api/status
curl -fsS https://code.xinghanlab.com/api/status
curl -fsS http://20.212.121.126/api/agent/health
```
部署 Manager:
```bash
cd /home/heicode/heicode/heicode # 真实部署目录(remote: taijibaga/heicode-mananger, 分支 main)
git pull
# 真实部署只有 docker-compose.azure-vm.yml + .env,无 docker-compose.override.yml
docker compose -f docker-compose.azure-vm.yml --env-file .env up -d --build
sudo docker image prune -f
```
## 11. 后续接手必须先确认的事项
| 序号 | 检查项 | 标准 |
|------|--------|------|
| 1 | 当前线上 commit | VM 工作树和 Gitee `main` 对齐 |
| 2 | Manager 容器健康 | `docker ps` 显示 `heicode` healthy,`/api/status` 返回成功 |
| 3 | 数据库连接 | `SQL_DSN` 指向 Azure PostgreSQL,不误用 VM 本地容器 |
| 4 | Redis 连接 | `REDIS_CONN_STRING` 指向 Azure Redis TLS,不误用 VM 本地容器 |
| 5 | Key Vault | `/api/secret-store/status` 不再报 `Identity not found` |
| 6 | 普通 sub | `AGENT_RUNTIME_BASE_URL=http://20.212.121.126`,创建、callback、artifact content 全链路可跑 |
| 7 | 蜂群 | `SWARM_RUNTIME_ENABLED` 当前为 `false`;如启用必须单独联调 |
| 8 | NewAPI | 模型渠道、token、日志正常;Runtime 失败时核对 `newapi_request_id` |
| 9 | 桌面客户端 | 加密 body、登录、模型列表、普通 sub artifact 展示正常 |
| 10 | 敏感值 | 任何 `.env`、token、密码不得进入 git diff |
## 12. 交接边界
下一位 AI 或工程师可以直接基于本文继续做:
- Manager 部署、版本更新、Docker 清理。
- 普通 sub Runtime 联调、artifact content 下载链路验证。
- 蜂群 Runtime 独立启用前的配置核对。
- NewAPI 模型调用排障。
- Azure Key Vault Managed Identity 修复。
- 桌面客户端对接文档更新。
但不能直接从本文获得明文密码或 token。需要真实密钥时,必须由负责人通过安全渠道提供,或在 VM/Azure Portal/NewAPI 后台按权限读取。