feat/daytona-mcp-integration
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>
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/ namespaceswarm-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/计费/密钥/审计)。
Languages
Python
88.1%
TypeScript
10%
HTML
1.1%
Shell
0.6%
JavaScript
0.2%