Skip to content

About

AI agent fleet observability & control — push-only hub, no reverse SSH

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Agent Fleet

Lightweight, Zero-Trust AI Agent Fleet Monitoring & Orchestration System
轻量级、零信任架构的分布式 AI Agent 舰队观测与受控调度系统。

License: MIT Python: 3.10+ Architecture: Push--Only


💡 为什么选择 Agent Fleet?

当你在多台开发机、VPS、云服务器上跑各类 AI Coding Agent(如 Claude Code、Codex CLI、Hermes、ZCode 等)时,通常面临三大痛点:

  1. 网络穿透与安全风险:服务器分散在 NAT/内网或不同云厂商,中心端若直连 SSH 需要大量私钥或打洞,存在严重安全隐患。
  2. 状态碎片化:无法一览所有机器上的 Agent 进程、活跃会话、系统负载与健康状况。
  3. 任务派发缺乏审计与沙箱:远程控制容易变成“任意 shell 执行”,缺乏项目白名单、Lease 租约与脱敏审计机制。

Agent Fleet 为此而生:

┌─ 各计算节点 (Mac / VPS / Container) ──────────┐
│  • Probe (自上报探针): 采集 Agent 状态与系统指标  │
│  • Runner (主动拉取执行器): 受控执行白名单任务   │
│  • 出站 HTTPS 单向连接,无需公网入站与反向隧道  │
└──────────────────────┬──────────────────────┘
                       │ HTTPS POST /api/ingest (Push-only)
                       │ HTTPS POST /api/commands/poll (Pull-based)
                       ▼
┌─ Hub 控制中心 (Web API + 实时面板) ───────────┐
│  • 统一状态面板 (SSE 毫秒级推送 / 响应式 Web 控制台) │
│  • 双重字段脱敏白名单,敏感数据/Session 不出机    │
│  • 基于 Lease + Attempt 的幂等任务队列与安全审计  │
└─────────────────────────────────────────────┘

🌟 核心优势

  • 🛡️ 绝对的 Push-Only 零信任安全
    • 各节点通过本地 Probe 主动上报、Runner 主动拉取。
    • Hub 绝不反向连接机器:无需向中心暴露 SSH 私钥、无需公网入站端口、无需 FRP/内网穿透。
  • 🔒 严格的隐私与数据脱敏
    • Probe 出站和 Hub API 双重白名单过滤,绝不上报代码上下文、完整会话正文、敏感环境变量或密钥。
  • 🤖 多 Agent 生态原生支持
    • 开箱即用支持主流 Agent:Claude Code、Codex CLI、ZCode、Hermes 及通用进程。
    • 自动识别进程状态、活跃会话计数与系统资源开销。
  • ⚡ 受控开发与任务编排(Command Plane)
    • 基于项目白名单 + 租约(Lease)+ 自动超期回收机制,杜绝任意 Shell 越权。
    • 结果幂等缓存,断网重连自动恢复,有界 Diff 与日志快照回传。
  • 📊 轻量级、现代化的实时控制台
    • 极简单文件 Hub 服务(Python 标准库 + 轻量 Flask),无笨重外部中间件依赖。
    • 内置优雅的深浅色响应式 UI 与 SSE 实时状态流。

🚀 快速上手 (Quick Start)

1. 启动 Hub(控制中心)

在一台有固定访问地址的机器或 VPS 上启动 Hub:

# 克隆仓库并安装依赖
git clone https://github.com/dengyie/agent-fleet.git
cd agent-fleet
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# 设置 Ingest 通信 Token 并启动 Web 节点
export AGENT_FLEET_INGEST_TOKEN='your-secure-random-secret'
python hub/web.py --host 0.0.0.0 --port 8790

启动后访问 http://<hub-ip>:8790 即可看到实时舰队控制台。


2. 部署节点 Probe(状态采集探针)

在需要观测的任意开发机或云主机上:

# 1. 本地测试采集(dry-run 模式)
python3 tools/agent-self-report.py --dry-run --name worker-node-1

# 2. 正式向 Hub 上报状态
python3 tools/agent-self-report.py \
  --endpoint https://hub.example.com \
  --name worker-node-1 \
  --token "your-secure-random-secret"

推荐使用 Cron 定时上报(每 2 分钟执行一次):

*/2 * * * * python3 /path/to/agent-fleet/tools/agent-self-report.py --endpoint https://hub.example.com --name worker-node-1 --token "$AGENT_FLEET_INGEST_TOKEN" >/dev/null 2>&1

3. 配置 Runner(可选:受控任务调度)

如果需要通过 Web 界面向该节点派发受控 AI 开发任务:

  1. 配置白名单:
    cp deploy/agent-runner.yaml.example ~/.config/agent-fleet/runner.yaml
    # 编辑 runner.yaml:配置允许调度的本地项目路径与 Agent 适配器
  2. 启动 Runner 轮询:
    # 单次轮询测试
    python3 tools/agent-runner.py --once

📡 Web & API 概览

路径 / 接口 类型 功能说明
GET / Web UI Fleet 舰队实时大盘(节点矩阵、系统状态、实时事件流)
GET /machine/<name> Web UI 单机详情页(指标趋势、运行中的 Agent 列表)
GET /api/status REST API 获取全局计算节点与 Agent 在线状态
GET /api/stream SSE 毫秒级实时事件推流(自动重连与离线补发)
POST /api/ingest REST API 节点探针上报入口(需 X-Agent-Fleet-Token 认证)
POST /api/tasks REST API 派发受控开发任务(白名单校验 + 幂等队列)

测试与发布验收

完整测试入口:全流程测试与质量门禁。可执行流程矩阵绑定必需用例;测试链路与证据核验提供阶段断言、审查回归和可复制命令。CI 在打包前检查实际执行结果,缺失、跳过或失败均阻断。真实模型、邮件和节点按发布验收手册分别验证。

main 在测试、前后端打包通过后进入自动部署,使用 production 环境的受限 SSH 入口,保留运行数据与配置,探活失败时回滚代码和前端。PR 不部署,也不读取部署凭据。

Muse 工作区

侧栏 Muse(/muse)可导入 Muse 登录态,直接查看和使用原生会话,不需要运行浏览器或 9222。支持最多 6 个对话窗口、原生子会话、引用回复、停止生成、按会话开启自动审批,以及浏览器任务、截图、文件和工具卡片。登录态按 Fleet 用户加密保存。使用步骤、限制与实测记录见 Muse 工作区。

此前的 本地浏览器桥接 作为可选的 Assistant 执行节点保留;使用 Muse 栏目不需要配置该桥接。

📖 进阶文档


📄 License

本项目基于 MIT License 开源。欢迎 Star、Issue 与 Pull Request!

账号体系(通过配置启用)

支持邮箱验证码注册、邮箱密码登录、密码找回、个人资料、会话撤销及管理员账号管理。配置接口、权限边界和现有数据归属限制见 账号管理说明。

About

AI agent fleet observability & control — push-only hub, no reverse SSH

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages