- Add fresh app structure (auth, tenant, mail, insight, docs, panel) - Include CMS content, API routes, scripts, and config - Migrate UI components, themes, and extensions to fresh runtime
214 lines
6.5 KiB
Markdown
214 lines
6.5 KiB
Markdown
Agent Framework 设计文档
|
||
|
||
版本:v1.0
|
||
项目代号:Project Codexium
|
||
作者:svc.plus 架构组(Pan Haitao)
|
||
目标:统一代码智能、运维智能与模型桥接能力的开发者工作台
|
||
|
||
一、系统愿景
|
||
|
||
“让 AI 不只是写代码,而是理解系统。”
|
||
|
||
Codexium 的目标是构建一个统一的智能代理层,使得开发者在编程、测试、运维的整个生命周期中,都能通过 /api/agent/* 接口访问具备上下文记忆与验证能力的 LLM 工具链。
|
||
|
||
系统分为三大支柱:
|
||
|
||
模块 名称 职责
|
||
/api/agent/code CodeSmith 编码智能:分析、重构、生成、解释代码
|
||
/api/agent/ops OpsMind 运维智能:测试验证、性能剖析、异常诊断
|
||
/api/agent/bridge LLM-Bridge 桥接智能:与国内外大模型生态互联
|
||
二、系统架构概览
|
||
flowchart TB
|
||
subgraph UI["🖥️ Web IDE / Dashboard"]
|
||
C1[任务列表] --> C2[任务详情与日志]
|
||
C2 --> C3[运行面板(Playwright / DevTools / LLM)]
|
||
end
|
||
|
||
subgraph API["🧠 Agent Gateway (Node/Deno)"]
|
||
A1[/api/agent/code/]:::code --> A3
|
||
A2[/api/agent/ops/]:::ops --> A3
|
||
A4[/api/agent/bridge/]:::bridge --> A3
|
||
A3[(Runs Registry + Storage)]
|
||
end
|
||
|
||
subgraph Runtime["⚙️ Runners / Services"]
|
||
R1[Codex-CLI / Claude-CLI / Gemini-CLI]
|
||
R2[Playwright MCP Server]
|
||
R3[DevTools MCP Server]
|
||
R4[LLM-Bridge Adapter]
|
||
end
|
||
|
||
subgraph Infra["💾 Backend Infra"]
|
||
D1[(PostgreSQL / SQLite)]
|
||
D2[(S3 / Local Storage)]
|
||
end
|
||
|
||
UI --> API
|
||
API --> Runtime
|
||
API --> Infra
|
||
Runtime --> D2
|
||
classDef code fill=#C6E2FF,stroke=#4582EC;
|
||
classDef ops fill=#FFF2CC,stroke=#D6B656;
|
||
classDef bridge fill=#D9EAD3,stroke=#6AA84F;
|
||
|
||
三、API 模块划分与命名语义
|
||
模块路径 名称 职责描述 核心子接口
|
||
/api/agent/code CodeSmith 面向代码智能任务 analyze, refactor, generate, explain, review
|
||
/api/agent/ops OpsMind 面向运维与测试任务 playwright, devtools, profile, report
|
||
/api/agent/bridge LLM-Bridge 模型桥接与分发层 invoke, list-models, proxy
|
||
四、功能说明
|
||
1. CodeSmith(编码智能)
|
||
|
||
目标: 让 LLM 理解项目上下文并参与重构。
|
||
功能示例:
|
||
|
||
功能 说明 CLI 或工具
|
||
analyze 分析文件结构与依赖 codex-cli analyze
|
||
refactor 自动重构、删除死代码 codex-cli refactor
|
||
generate 根据提示生成新代码 claude-cli generate
|
||
explain 对复杂逻辑生成自然语言解释 gemini-cli explain
|
||
|
||
运行模式:
|
||
通过 child_process.spawn 调用 CLI,并以 SSE 流式推送执行日志。
|
||
每次执行结果存储为 run 记录,并关联到任务。
|
||
|
||
2. OpsMind(运维智能)
|
||
|
||
目标: 自动化验证与性能剖析。
|
||
|
||
MCP 接口:
|
||
|
||
功能 MCP Server 说明
|
||
playwright mcp-playwright 执行端到端测试、截图、trace
|
||
devtools mcp-devtools 运行 CPU/Heap Profiler
|
||
profile mcp-devtools 生成 trace.json 与指标摘要
|
||
report 内部 汇总生成性能分析报告(HTML/PDF)
|
||
|
||
示例工作流:
|
||
|
||
POST /api/agent/ops/playwright
|
||
→ 启动 Playwright MCP → trace.zip → 存储为附件 → 任务run状态更新
|
||
|
||
3. LLM-Bridge(模型桥接层)
|
||
|
||
目标: 在不暴露私钥的前提下,统一访问国内外大模型生态。
|
||
|
||
功能 说明 适配对象
|
||
invoke 通用调用接口(支持 OpenAI 格式) ChatGPT / Claude / Qwen / Yi / Baichuan / Moonshot
|
||
list-models 返回所有可用模型及状态 从注册表动态读取
|
||
proxy 将 REST 调用转为相应 API 代理 可接入 WebSocket 流式返回
|
||
|
||
配置结构示例:
|
||
|
||
llm_bridge:
|
||
providers:
|
||
openai:
|
||
endpoint: https://api.openai.com/v1
|
||
api_key: $OPENAI_API_KEY
|
||
qwen:
|
||
endpoint: https://dashscope.aliyuncs.com/api/v1
|
||
api_key: $DASHSCOPE_API_KEY
|
||
moonshot:
|
||
endpoint: https://api.moonshot.cn/v1
|
||
api_key: $MOONSHOT_API_KEY
|
||
|
||
|
||
作用:
|
||
|
||
对上:所有 /api/agent/code、/api/agent/ops 请求可指定 provider 参数;
|
||
|
||
对下:桥接各类 LLM API,兼容 JSON Schema 响应;
|
||
|
||
提供统一上下文缓存机制(如 KV/Redis session)。
|
||
|
||
五、数据库模型
|
||
CREATE TABLE tasks (
|
||
id TEXT PRIMARY KEY,
|
||
title TEXT,
|
||
summary TEXT,
|
||
status TEXT CHECK (status IN ('todo','doing','done','archived')),
|
||
tags TEXT[],
|
||
created_at TIMESTAMP DEFAULT now(),
|
||
updated_at TIMESTAMP DEFAULT now()
|
||
);
|
||
|
||
CREATE TABLE runs (
|
||
id TEXT PRIMARY KEY,
|
||
task_id TEXT REFERENCES tasks(id),
|
||
runner TEXT,
|
||
input JSONB,
|
||
output JSONB,
|
||
status TEXT CHECK (status IN ('queued','running','passed','failed')),
|
||
artifacts TEXT[],
|
||
started_at TIMESTAMP,
|
||
finished_at TIMESTAMP
|
||
);
|
||
|
||
CREATE TABLE attachments (
|
||
id TEXT PRIMARY KEY,
|
||
task_id TEXT REFERENCES tasks(id),
|
||
name TEXT,
|
||
kind TEXT,
|
||
mime TEXT,
|
||
url TEXT,
|
||
size INT,
|
||
created_at TIMESTAMP DEFAULT now()
|
||
);
|
||
|
||
六、前端设计(Web 工作台)
|
||
|
||
结构:
|
||
|
||
区域 功能 技术栈
|
||
左栏 任务列表(搜索、筛选、状态切换) Zustand + SWR
|
||
右栏 任务详情、运行面板、上传区 Tailwind + shadcn/ui
|
||
底部 实时日志控制台 WebSocket/SSE
|
||
顶部 模型选择(LLM-Bridge 模式切换) Select + Context Provider
|
||
七、安全与隔离设计
|
||
|
||
Runner 容器隔离:
|
||
所有 Playwright/DevTools Runner 运行于独立容器,带文件系统隔离。
|
||
|
||
命令白名单:
|
||
/api/agent/code 仅能执行 codex-cli 等注册命令。
|
||
|
||
模型访问控制:
|
||
LLM-Bridge 支持:
|
||
|
||
统一 API Key 管理;
|
||
|
||
访问审计;
|
||
|
||
模型路由黑白名单(例如禁止访问海外模型)。
|
||
|
||
上传验证:
|
||
图片/trace 文件 MIME 检查 + 大小上限(默认 50MB)。
|
||
|
||
八、部署与扩展
|
||
|
||
推荐部署模式:
|
||
|
||
服务 类型 部署建议
|
||
API Gateway Node 18+ Docker 容器,内网访问 MCP
|
||
Playwright MCP Sidecar mcr.microsoft.com/playwright 镜像
|
||
DevTools MCP Sidecar chrome-launcher 环境
|
||
LLM-Bridge 统一服务 可独立部署,实现模型代理
|
||
Storage S3 或 MinIO 附件与 trace 存储
|
||
DB PostgreSQL 任务、运行、模型状态持久化
|
||
九、未来路线图(v1 → v3)
|
||
阶段 特性 说明
|
||
v1.0 CodeSmith + OpsMind 基础实现 完成 CLI/MCP 集成、运行记录体系
|
||
v1.1 LLM-Bridge 接入国内模型 Qwen、Yi、Baichuan、Moonshot
|
||
v2.0 会话上下文与任务记忆 Redis + Vector Store
|
||
v2.1 Web 工作流可视化(Flow View) 支持多步骤组合任务
|
||
v3.0 多代理协作模式 让 CodeSmith 与 OpsMind 自动协作验证
|
||
十、总结与命名哲学
|
||
|
||
CodeSmith → “写得比人快一点”
|
||
|
||
OpsMind → “想得比机器深一点”
|
||
|
||
LLM-Bridge → “连接的不是模型,而是生态”
|
||
|
||
三者共同组成一个统一的“Agent Infra”,能运行在开发机、CI/CD 管道、甚至本地容器中,为 Cloud-Neutral 工程体系提供智能层。
|