FastheiandClaude Opus 4.8 25d632de0c
CI / tests (push) Failing after 22s
CI / guardrails (push) Failing after 31s
feat(swarm-controller): replace opensandbox-mcp with daytona-mcp sidecar
Swap the OpenSandbox cloud-sandbox integration for Daytona:
- config: drop opensandbox_server_url; add daytona_api_url +
  daytona_api_key_secret (KV secret NAME, value never in config/ConfigMap)
  + daytona_mcp_image.
- cloud_init: when daytona enabled, add a daytona-mcp sidecar (daytona CLI
  wrapped by mcp-proxy as Streamable HTTP :8090) to each tenant compose,
  resolve DAYTONA_API_KEY from Key Vault on-VM into .env, and register it as a
  swarm-scope MCP server + install for lead+workers. Remove all opensandbox
  code (launcher monkey-patch, register block, compose service, urlparse).
- k8s/configmap: drop opensandbox, add DAYTONA_API_URL + DAYTONA_API_KEY_SECRET.
- daytona-mcp/Dockerfile: sidecar image (daytona CLI + mcp-proxy@6.5.2).
- tests: daytona sidecar/registration/gating coverage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 19:32:41 +08:00

Heicode Swarm

Heicode 蜂群执行面(Swarm Runtime)。本仓库包含上游 agent-swarm 运行时与 Swarm Controller 多租户编排粘合层,是 HM (heicode-mananger) 调用、客户端 (win-dev / mac-dev) 对接的蜂群后端。

仓库结构

.
├── agent-swarm/          # 上游 agent-swarm 运行时 (desplega-ai v1.100.4)
│                         #   通过 ghcr 发布镜像部署;蜂群本体(lead+worker+任务/记忆/审批/工作流)
├── swarm-controller/     # 多租户编排粘合层 (Python / FastAPI)  ★ Heicode 自研
│   ├── src/swarm_controller/   # 5 个控制面接口 + Cosmos 状态 + Azure VM 生命周期
│   │                           #   + cloud-init 引导 + litestream 持久化(VM 保持 running,仅 HM stop/delete 才回收)
│   ├── k8s/  Dockerfile        # AKS 部署清单
│   ├── tests/                  # 单元测试
│   └── scripts/infra-state.md  # Azure 基建全清单 (heicode-test 环境)
└── docs/                 # 文档与工单
    ├── HEICODE-SWARM-INTEGRATION.md    # 架构图 + Azure 服务 + DB 设计 + 控制面/功能面接口详情 + 测试环境
    ├── AGENT-SWARM-FEATURES-REPORT.md  # agent-swarm 全功能报告 (参照官方文档)
    ├── GAPS-AND-ROADMAP.md             # 缺口与适配建议 (观测 / 功能面 / 高级用法)
    └── tickets/                        # 客户端对接工单
        ├── CLIENT-INTEGRATION.md       #   win/mac 共用集成规格
        ├── win-dev-integration.md      #   Windows 端工单
        └── mac-dev-integration.md      #   macOS 端工单

这是什么

agent-swarm 是单租户单体(SQLite 单写、无租户隔离)。Swarm Controller 不深改它, 而是按租户开一台独立 Azure VM、在 VM 上用 docker-compose 跑整套 agent-swarm, 把蜂群当不可分割单元来调度,从而获得多租户 + 计费感知能力。

  • 控制面:Controller API(HM 调用)—— 开/管/关一台跑着蜂群的 VM。
  • 功能面:每台租户 VM 上的 agent-swarm API —— 蜂群真正接活、调模型、产出、审批、记忆。
HM ──控制面契约 v1──▶ Swarm Controller(AKS) ──开/管/关──▶ 租户 VM(蜂群, 1 api+1 lead+N worker)
                                                              │ MI 读 KV 解密 sk-/git
                                                              │ litestream → Azure Blob 持久化
客户端 ◀──功能面: 任务/审批/记忆──▶ 租户 VM swarm API (经 HM/网关代理)

快速开始

我是… 看这里
HM / 后端,要接控制面 docs/HEICODE-SWARM-INTEGRATION.md §4
客户端 (win/mac),要对接功能面 docs/tickets/CLIENT-INTEGRATION.md
想了解蜂群全部能力 docs/AGENT-SWARM-FEATURES-REPORT.md
想知道还差什么 / 该配什么 docs/GAPS-AND-ROADMAP.md
运维 / 部署 Controller swarm-controller/README.md + scripts/infra-state.md
沙盒 http://gitee.ath.cx:3000/xiaohei/opensandbox

测试环境(heicode-test)

  • 控制面(公网):https://heicode-test-apim.azure-api.net/swarm/api/agent/swarm/... (Bearer token 向 team-lead 索取,不入库)
  • 部署位置:AKS heicode-test / namespace swarm-controller
  • 控制面 E2E 已全链路验证通过(VM 生命周期 + 4 worker + litestream 持久化 + 清理)。
  • 功能面(蜂群真跑任务)需真实 new-api token 后端到端验证。

状态

  • ✅ 控制面 + VM 生命周期 + 持久化:已部署、E2E 通过
  • ⚠️ 功能面:待真实 new-api token 验证
  • ⚠️ 观测性:待补(日志按租户上送 + metrics 汇聚 + new-api 计费对账)—— 见 GAPS-AND-ROADMAP

安全 & 合规

  • 客户密钥(new-api sk- / git / 云凭证)全程仅以 azkv:// 引用传递,VM 运行时经 Managed Identity 自解,永不进 Controller 内存/日志/数据库。
  • 遵循 Heicode 组织开发约定:变更说明影响面(Client/Manager/agent_swarm/计费/密钥/审计)。
S
Description
No description provided
Readme
26 MiB
Languages
Python 88.1%
TypeScript 10%
HTML 1.1%
Shell 0.6%
JavaScript 0.2%