atlas-agent-control-plane

mcp
Guvenlik Denetimi
Gecti
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 56 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

AtlasAgent - an auditable AI agent control plane: evidence-backed memory, governed tool runtime, checkpoint DAG recovery, and a 55-chapter engineering tutorial. FastAPI / Next.js PWA / Textual TUI

README.md

AtlasAgent — an auditable agent control plane for traceable memory, governed tools, and verified recovery

🚀 AtlasAgent · 可审计的 AI Agent 控制平面

GitHub stars
License: MIT
Python 3.11+
Next.js 16
PostgreSQL + pgvector

把 Agent 从会话应用升级为可控系统 —— 事实可溯源、记忆可信、工具受治理、任务可恢复、每一步可审计。

快速开始 · 核心能力 · 运行机制 · 客户端 · 完整教程


简介

AtlasAgent 是一套可运行的 AI Agent 控制平面与中文工程教程。它把原始事件、长期记忆、知识库检索、技能指引、工具调用、Artifact 和 Checkpoint 放进同一条可追溯链路,集中处理六个生产边界:事实从哪里来、记忆为什么可信、资料引用能否追溯、工具何时允许执行、任务如何恢复,以及每一步如何审计。

同一套 FastAPI 控制平面同时服务 Next.js Web(PWA)与 Textual TUI,并配有从基础服务到 Memory / RAG / Skill / Tool Control Plane 的 0–56 章教程(共 55 章)。

🎉 最近更新

  • [2026.08] 🎯 步骤内多轮工具调用 + 原生 Function Calling:模型在单个步骤内自主多次调用工具、观察结果再决策,真正像 Agent 一样工作。
  • [2026.08] 🎯 Web 端升级为 PWA:可安装到桌面 / 移动端,离线缓存应用外壳;移除 Electron 桌面客户端,收敛为 Web + TUI 双客户端。
  • [2026.08] 🎯 任务失败后从断点续跑:复用已有计划、跳过已完成步骤,从失败处继续,不必从头再来。
  • [2026.08] 🎯 直答分流与推理直播:普通问答直接流式回答,思考过程实时展示并可回看。
  • [2026.08] 🎯 知识库自动召回 + 带引用作答:每轮对话自动召回相关文档并标注来源。
  • [2026.08] 🎯 网页正文读取作答与工具自愈:补上读取真实网页正文的能力。

✨ 核心能力

AtlasAgent evidence chain from events and memory through tool audit and artifacts to verified checkpoints

控制边界 AtlasAgent 如何处理 关键机制
Evidence-backed Memory 只把仍然有效、来源明确且通过门禁的事实注入上下文 类型化记忆、Write Gate、证据链、作用域、有效期、替代关系、可解释检索
RAG Knowledge Base 让团队文档成为可检索、可引用、可验证的证据来源 段落切分与重叠、可替换向量后端(pgvector / Qdrant)、向量+词法混合重排、编号引用、检索审计、多模态摄取、每轮对话自动召回并标注来源
Transparent Reasoning 把模型的思考与作答过程实时暴露给使用者 直答与流水线分流、规划/执行/直答三阶段 thinking 增量、推理落库可回看、打字机节流展示
Multi-round Tool Calling 步骤内模型自主多次调用工具、看结果再决策 原生 Function Calling、JSON 兜底、并发工具执行、重复调用护栏
Skill Registry 把团队沉淀的操作指引变成受治理、可回溯的行为规范 draft/published/deprecated 生命周期、semver 版本、启停分离、相关度注入
Checkpoint DAG 为长任务提供可验证的暂停、恢复与回溯点 父子 Checkpoint、事件区间、状态哈希、环境指纹、校验报告
Unified Tool Runtime 在 handler 之前统一约束权限与副作用 风险分级、审批、幂等、超时、脱敏、大输出制品化、全程审计
Artifact Store 让日志、补丁、截图和报告成为稳定事实源 SHA-256 内容寻址、来源引用、任务与 Checkpoint 关联
Multi-client Workspace 在浏览器与 SSH 场景中观察同一运行状态 Next.js Web(PWA)、Textual TUI,共用 FastAPI 接口
Isolated Sandbox 把文件、Shell 与浏览器自动化限制在独立运行边界 工作区限制、输出限制、网页正文读取、VNC / noVNC、统一网关

🏗️ 运行机制

控制面的事实优先级很明确:原始事件与 Artifact 是事实源,任务状态是可重建的物化视图,Checkpoint 是经过验证的恢复点。

一次任务会沿着这条链路推进:

  1. 创建带目标和验收标准的结构化任务。
  2. 从候选记忆中筛选有来源、未过期且相关的事实。
  3. 工具进入统一 Runtime,先经过风险、权限和幂等检查,再执行 handler。
  4. 大输出转为内容寻址 Artifact,调用过程写入审计记录。
  5. 状态哈希、环境指纹和校验报告共同生成可恢复 Checkpoint。

Plan / Execute / Reflect / Summarize 执行机

工具型对话使用项目内的、不依赖工作流框架的异步状态机推进;普通问答仍走直接流式回答。每个执行步骤内部,StepAgentLoop 驱动模型进行多轮工具调用,直到给出该步骤的结论。

状态 职责 可观察结果
Plan Planner 生成结构化计划并写入 plan_created 规划思考增量与 plan_created
Execute ReActStepExecutor + StepAgentLoop 为当前步骤进行多轮受治理工具调用 step_started、多次 tool_called
Reflect Critic 根据步骤目标和工具观察作出 acceptretryreplanfail 决定 step_reflected,随后路由到下一状态
Summarize AgentSummaryService 仅依据已观察到的工具证据流式生成最终回答 最终回答增量、message_createdtask_done
展开完整系统拓扑
flowchart LR
    subgraph Clients["客户端"]
        direction TB
        Web["Web · Next.js (PWA)"]
        TUI["TUI · Textual"]
    end

    Gateway["Nginx Gateway"]
    API["FastAPI Control Plane"]

    subgraph Runtime["Agent Runtime"]
        direction TB
        Planner["Planning & Events"]
        Loop["StepAgentLoop · 多轮工具调用"]
        Tools["Tool Runtime"]
        Memory["Memory & Checkpoints"]
    end

    subgraph Data["事实与基础设施"]
        direction TB
        Postgres["PostgreSQL"]
        Redis["Redis"]
        Sandbox["Sandbox & Artifacts"]
    end

    Web --> Gateway
    TUI --> API
    Gateway --> API
    API --> Planner
    API --> Loop
    Loop --> Tools
    API --> Memory
    Planner --> Redis
    Tools --> Sandbox
    Memory --> Postgres
## 🚀 快速开始

需要 Git、Docker 与 Docker Compose v2。

git clone https://github.com/malevrigns/atlas-agent-control-plane.git
cd atlas-agent-control-plane
cp .env.example .env
BUILD=true ./scripts/start.sh

启动后访问:

启动脚本会为 API 与 PostgreSQL 生成随机密钥,并在终端打印 Web 登录所需的 API Key。除 /api/status 外的接口都需要浏览器 HttpOnly 会话或 X-Atlas-API-Key 请求头。

Windows 请在 Git Bash 或已启用 Docker 集成的 WSL 中运行同一脚本。再次启动无需重建:

./scripts/start.sh

停止服务:

./scripts/stop.sh                      # 保留数据卷
CLEAN_VOLUMES=true ./scripts/stop.sh   # 连同数据库、Redis、上传文件一起清理

[!TIP]
默认网关端口为 8088。端口冲突时设置 NGINX_PORT=18088 后重新启动。

📱 客户端

客户端 最适合 特色
Web(PWA) 浏览器协作与完整功能体验,可安装到桌面 / 移动端 会话、流式问答、思考直播、执行日志、文件、Sandbox、设置、MCP、A2A、RAG 与 Skill 管理
TUI SSH、低带宽与键盘工作流 任务 / Checkpoint / 审计三栏、快捷键、三套终端主题、离线演示数据

TUI 的快捷键与客户端配置见 客户端指南

🧩 Control Plane 最小调用

1. 创建结构化任务

ATLAS_KEY="$(sed -n 's/^ATLAS_API_KEY=//p' .env)"
curl -X POST http://localhost:8088/api/control-plane/tasks -H "X-Atlas-API-Key: ${ATLAS_KEY}" -H "Content-Type: application/json" -d '{"title": "更新交付物", "goal": "完成可验证升级", "acceptance_criteria": ["测试通过"], "project_id": "atlas"}'

2. 通过统一 Runtime 调用工具

curl -X POST http://localhost:8088/api/agent-core/tools/draft_plan/invoke -H "X-Atlas-API-Key: ${ATLAS_KEY}" -H "Content-Type: application/json" -d '{"arguments": {"task": "检查交付质量"}, "project_id": "atlas", "allowed_permissions": [], "idempotency_key": "demo-001"}'

3. 回读工具审计

curl -H "X-Atlas-API-Key: ${ATLAS_KEY}" "http://localhost:8088/api/control-plane/tool-invocations?project_id=atlas"

4. 检索知识库并拿到带引用的证据

curl -X POST http://localhost:8088/api/rag/knowledge-bases/${KB_ID}/query -H "X-Atlas-API-Key: ${ATLAS_KEY}" -H "Content-Type: application/json" -d '{"query": "数据库迁移怎么回滚", "top_k": 3}'

完整数据模型、生命周期和接口说明见 Memory 与 Tool Control PlaneRAG 与 Skill 注册中心

⚙️ 配置与安全

服务端常用配置集中在根目录的 .env.example

  • LLM_API_KEY:模型服务密钥;未配置时仍可使用不依赖模型的演示与控制平面能力。任何 OpenAI 兼容服务都可接入:在 backend/api/config/llm.yaml 中把 base_url 换成服务商地址(如 DeepSeek https://api.deepseek.com/v1、阿里云百炼 https://dashscope.aliyuncs.com/compatible-mode/v1),default_model 换成对应模型名。llm.thinking: true 可开启思考过程流式输出(Qwen enable_thinking),Web 端实时展示并支持事后展开回看;llm.vision_model 启用多模态 RAG。
  • ATLAS_API_KEY:控制平面与 Sandbox 的共享访问密钥;启动脚本会替换示例占位符。
  • NGINX_PORT:统一网关端口,默认 8088
  • NGINX_HOST:默认 127.0.0.1;确需远程访问时必须配合 TLS 与上游身份系统。
  • TOOL_AUTO_APPROVE_RISK:工具自动批准的最高风险等级。
  • TOOL_DEFAULT_TIMEOUT_SECONDS:工具默认超时。
  • TOOL_OUTPUT_INLINE_LIMIT:大输出转为 Artifact 的阈值。
  • RAG_VECTOR_BACKEND:RAG 向量后端,pgvector(默认)或 qdrant
  • RAG_EMBEDDING_PROVIDERautollm.yaml 与密钥自动选择,local_hash 强制离线哈希向量。
  • EMBEDDING_API_KEY:OpenAI 兼容 embedding 服务密钥;留空时自动降级为本地向量。

TUI 通过 ATLAS_API_URLATLAS_API_KEY 连接后端。

[!IMPORTANT]
不要提交真实 .env、模型密钥或第三方服务凭据。stdio MCP、MCP HTTP 与 A2A HTTP 默认关闭或无允许主机,必须由运维通过 allowlist 显式放行。内置 API Key 是单租户/内网边界,互联网多用户部署仍应在网关前接入 TLS、OIDC/RBAC 与限流。

🛠️ 本地开发

先准备 PostgreSQL 与 Redis:

docker compose up -d postgres redis
模块 启动命令 默认地址 / 行为
API cd backend/api && uv sync && uv run uvicorn app.main:app --reload http://localhost:8000
Web cd frontend/web && pnpm install && pnpm dev http://localhost:3000
TUI cd frontend/tui && uv sync && ATLAS_API_URL=http://localhost:8000 uv run atlas-tui 后端不可达时自动进入演示模式
Sandbox cd backend/sandbox && docker build -t atlas-sandbox . && docker run -d -p 8100:8100 -p 6080:6080 -e SANDBOX_AUTH_ENABLED=false atlas-sandbox Agent 的虚拟电脑:http://localhost:8100;API 侧设 SANDBOX_API_BASE_URL=http://localhost:8100/apiTOOL_AUTO_APPROVE_RISK=high 后,对话即可真实执行代码/浏览器任务

开发与验证:

# 后端测试
cd backend/api
uv run python -m unittest discover -s tests

# TUI 测试
cd ../../frontend/tui
uv run python -m unittest discover -s tests

# Web 类型检查与构建
cd ../web
pnpm typecheck
pnpm build

📁 项目结构

atlas-agent-control-plane/
├── frontend/
│   ├── web/       Next.js Web 客户端(PWA)
│   └── tui/       Textual 终端客户端
├── backend/
│   ├── api/       FastAPI、数据库迁移、Control Plane 与测试
│   └── sandbox/   文件、Shell、浏览器与 VNC 隔离执行环境
├── nginx/         统一网关配置
├── docs/          Control Plane 与客户端专题文档
├── tutorial/      0–56 章中文工程教程(55 章)
├── scripts/       启停与运行时配置脚本
├── tests/         根级生产配置测试
└── docker-compose.yml

📚 文档与教程

🤝 贡献

欢迎提交 Issue 与 Pull Request。提交前请运行对应的测试与类型检查,并确保不提交真实密钥与 .env

📄 License

MIT License


AtlasAgent · Build agents that can explain what they know, what they did, and how to recover.

Yorumlar (0)

Sonuc bulunamadi