基于 Kubernetes CRD 的原生 AI Agent 编排与自主管理平台,将 Agent 视为 Pod 进行隔离执行,通过 7 个核心 CRD 实现多 Agent 工作流编排、策略门控、持久化记忆与本地模型推理,并能以 Agent 舰队形式接管集群自身运维。
核心定位#
Sympozium 是一个完全依托 Kubernetes 生态的 AI Agent 管理平台,通过自定义资源定义 Agent 及其行为边界,专注于在 K8s 上调度、隔离、记忆持久化以及多 Agent 工作流编排。
Agent 编排与生命周期#
- Agent 即 Pod:每次 Agent 执行实例化为临时 Kubernetes Job,具备独立的安全上下文、资源限制与自动清理机制
- Ensembles(集成包):类似 Helm Chart 的 Agent 团队打包与部署机制,包含预设的 system prompt、skills、schedule 和 memory
- Agent Workflows:支持 Agent 间的任务委托(delegation)、顺序流水线(sequential pipeline)与监督关系(supervision),提供交互式 Canvas 可视化
- 定时调度:通过
SympoziumScheduleCRD,使用 cron 表达式驱动 Agent 周期性运行
安全与隔离机制#
- Skill Sidecars:每个 Skill 运行在独立 sidecar 容器中,自动注入最小权限 RBAC,任务完成后自动垃圾回收
- SympoziumPolicy(策略即 CRD):通过 Admission Webhook 在准入阶段执行工具级门控,提供 Permissive、Default、Restrictive 三级策略预设
- Agent Sandbox:基于 kubernetes-sigs/agent-sandbox 实现内核级隔离(支持 gVisor / Kata),并支持预热池快速启动
记忆与模型推理#
- 持久化记忆:采用 SQLite + FTS5 全文搜索引擎,数据存储于 PersistentVolume,跨 Pod 生命周期保留;支持 Pack 级工作流记忆共享及 per-persona 访问控制
- 本地模型推理:通过
ModelCRD 声明 GGUF 模型,控制器自动下载权重并部署 llama-server,对外暴露无 API Key 的 OpenAI 兼容端点 - Node 推理发现:利用 DaemonSet 探测节点上已部署的 Ollama/vLLM/llama-cpp,自动打注标签并支持 nodeSelector 调度绑定
接口与生态连接#
- 多通道集成:原生支持 Telegram、Slack、Discord、WhatsApp,各通道作为独立 Deployment 运行,由 NATS JetStream 驱动解耦
- Web Endpoint:将 Agent 暴露为标准的 OpenAI 兼容 API(
/v1/chat/completions)和 MCP 端点,支持 serving 模式 - MCP Server 集成:通过
MCPServerCRD 管理外部工具提供方,实现工具自动发现及 allow/deny 过滤 - 多 AI 供应商:支持 OpenAI、Anthropic、Azure、Ollama、LM Studio、Unsloth、AWS Bedrock 或任意 OpenAI 兼容端点
- 可观测性:内置 OpenTelemetry 支持以导出 traces 和 metrics
架构要点#
控制平面主要由 Go 语言编写,包含 6 个核心 reconciler 的 Controller Manager、HTTP + WebSocket API Server、Admission Webhook。数据层依赖 etcd(CRD 状态)和 PostgreSQL(会话与历史记录)。控制平面与通道之间通过 NATS JetStream(StatefulSet)作为持久化事件总线解耦。
Agent Pod 结构包含:可选 PreRun Init Containers、核心 Agent Container(LLM 供应商无关)、IPC Bridge Sidecar(fsnotify → NATS,语言无关零依赖通信)、Memory Sidecar(SQLite + PVC)、Skill Sidecars、MCP Bridge Sidecar、可选 Sandbox 容器及 PostRun Job。
委托工作流:父 Agent 写入 /ipc/spawn/ → IPC Bridge 监听发布到 NATS → SpawnRouter 创建子 AgentRun → 子 AgentRun 完成后结果通过 NATS 返回 → 父 Agent 解除阻塞读取结果。
核心资源模型(7 个 CRD)#
| CRD | 类比 | 用途 |
|---|---|---|
| Agent | Namespace/Tenant | 用户级网关:LLM 配置、skill 绑定、通道连接、记忆设置 |
| AgentRun | Job | 单次 Agent 执行,临时 Pod,自动清理 |
| SympoziumPolicy | NetworkPolicy | 工具/功能准入门控 |
| SkillPack | ConfigMap | 可移植 Skill 包,含可选 sidecar 容器和 RBAC |
| SympoziumSchedule | CronJob | Cron 驱动的定期 Agent 运行 |
| Ensemble | Helm Chart/Operator Bundle | 预配置 Agent 团队包 |
| Model | Deployment + Service | 集群内 GGUF 模型推理 |
典型应用场景#
- SRE 值班自动化:集群健康监控、事故分诊、自动回滚
- 安全审计:定期扫描权限提升、硬编码密钥、缺失 NetworkPolicy
- DevOps 日常运维:扩缩容、命名空间创建、节点排空、资源优化
- 客服 Agent 舰队:跨 Telegram/Slack/Discord/WhatsApp 的多租户客服系统
- 代码审查:Issue 分诊、PR 审查、CI/CD 集成
- 研发团队协作:7-Agent 开发团队(Tech Lead、Backend/Frontend Dev、QA、Code Reviewer、DevOps、Docs Writer)在单一仓库协作
安装部署#
前置条件:Kubernetes 集群、cert-manager
# CLI 安装(macOS/Linux)
brew tap sympozium-ai/sympozium
brew install sympozium
# 或
curl -fsSL https://deploy.sympozium.ai/install.sh | sh
# 快速部署
sympozium install # 部署 CRDs、控制器和内置 Ensembles
sympozium # 启动 TUI
sympozium serve # 启动 Web 仪表盘
Helm 安装方式同样可用,需先安装 CRDs 再安装控制平面。
项目背景与现状#
创建者来自 k8sgpt 和 llmfit 项目。当前版本 v0.10.17,共 205 个 release、762 次提交,处于活跃开发阶段,API 标注为 v1alpha1 可能变动。主要语言构成为 Go (54%)、TypeScript (30%)、Shell (14.6%)。未找到公开的生产环境部署案例,向量搜索支持状态待确认。