这个项目能做什么

AgentPod 是一个便携式 AI 代理运行时指挥中心——一个管理代理运行环境(无论它们在哪里运行)的单一场所。对于每个运行时,它管理文件系统、日志、终端、配置、健康、生命周期、清理和配置,跨越机器、框架和网络边界。它是先附加的:你可以指向你已经运行的运行时,或者让它配置新的运行时。 架构分为三层。面向操作员的控制台是一个 SvelteKit 静态 SPA,通过 HTTPS 和 WSS 与中心通信。中心基于 Bun、Hono 和 Postgres(通过 Drizzle)构建,充当节点/站点注册表、连接代理、注册和认证服务(Better Auth)、审计和活动日志,以及配置驱动主机。节点代理是一个静态 Go 二进制文件,安装在每个主机上,通过 WSS 向外拨号到中心,因此它可以在 NAT 和 CGNAT 后面工作,无需打开入站端口。每个节点代理运行框架描述符并在本地执行契约动词。 AgentPod 为几个代理框架提供了描述符——Hermes、OpenClaw、Claude Code、Codex、OpenCode 和 Pi——注册在 `apps/node-agent/cmd/agentpod-node/registry.go` 中。每个描述符包装框架的原生 CLI 或 API,以枚举运行时、定位配置、日志和工作区,并实现生命周期操作,而无需重新发明每个框架的检查机制。 部署很简单:使用 Postgres 和 Bun 运行中心(首次启动时自动迁移),使用 pnpm 构建控制台,并将静态输出部署到 Cloudflare Pages 或中心可注册域的子域上的任何静态主机(这样 Better Auth 会话 cookie 保持同站点),然后使用 curl 管道安装脚本在目标主机上注册节点代理,该脚本会放置一个 systemd 服务。预构建的 linux/darwin × amd64/arm64 二进制文件通过 GitHub Actions 在每个 `v*` 标签上发布。 状态是单操作员:一个管理员账户,注册在第一个用户后关闭,发布标记为 `v0.1.x`。租户隔离边界已经落地——一个 `tenants` 表,每个作用域表上的 `tenant_id`,以及一个 `tenantScope()` 助手,它拒绝在没有一个的情况下构建查询,由单元测试固定。今天所有内容都在单个引导租户 `fleet_00000000000000000000` 下运行;剩下的就是使用边界的内容:组织、主体和计费。之前的基于 OpenCode 的产品冻结在标签 `v0.0.4-opencode`,文档归档在 `docs/archive/` 下。MIT 许可。