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>
19 KiB
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 当前标准链路:
桌面客户端
-> 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. 常用排障命令
以下命令只列配置名或状态,避免直接打印明文密钥。
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:
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 后台按权限读取。