From e00396e2219f098a793a3d2884e2df19ee72b781 Mon Sep 17 00:00:00 2001 From: fiser_jun Date: Thu, 20 Aug 2026 01:10:01 +0800 Subject: [PATCH] =?UTF-8?q?README=20=E6=9B=B4=E6=96=B0:=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E5=AE=9A=E4=BD=8D=E4=B8=BA=20L1=20=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=20+=20L2=20=E4=B8=AD=E5=8F=B0=E5=BC=95=E6=93=8E,=E8=A1=A5?= =?UTF-8?q?=E5=85=85=20server/=20=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=B8=8E=E5=90=AF=E5=8A=A8=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5787125..4c4a42a 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -# Agent · MCP 智能体 Web 客户端 +# Agent · 城轨智能中台(L1 Web 客户端 + L2 中台引擎) -基于 MCP(Model Context Protocol)协议的智能体 Web 客户端,使用 **TypeScript** 开发,经 esbuild 编译为浏览器原生 ES module,加载即用。 +基于 MCP(Model Context Protocol)协议的智能体系统:仓库根目录为 **L1 AI 客户端**(Web UI,TypeScript,经 esbuild 编译为浏览器原生 ES module,加载即用);`server/` 为 **L2 中台引擎**(Express API,仅绑定 127.0.0.1)。 ## 项目定位 -这是一个**协议原生的智能体 Web 客户端**: +这是一个**协议原生的智能体系统**: - 不依赖任何 Skill 脚本机制 — 工具全部是注册的 JS 函数,AI 只填 JSON Schema 参数 - 不依赖特定模型 — 4 种模型源任选(Ollama / oMLX / Sparkle / 云端 API),换模型不改业务代码 -- 不依赖特定业务 — 通过 MCP 协议接入任意子系统(本仓库自带 webui,业务子系统各自独立部署) +- 不依赖特定业务 — 通过 MCP 协议接入任意子系统(本仓库自带 L1 webui + L2 中台引擎,业务子系统各自独立部署) ## 核心特性 @@ -82,6 +82,18 @@ Agent/ │ ├── md-splitter.ts # Markdown 分模块 │ └── markdown.ts # 轻量 Markdown 渲染器 │ +├── server/ # L2 中台引擎(Express API,:8088,仅 127.0.0.1) +│ ├── src/main.js # 入口(本地回环监听) +│ ├── src/auth/ # JWT Ed25519 鉴权 + 密钥管理 +│ ├── src/audit/ # 审计日志(链式哈希防篡改) +│ ├── src/rbac/ # 角色权限 +│ ├── src/import/ upload/ # 数据导入(batch_uuid 幂等防重) +│ ├── src/precompute/ # 业务预计算(AI 不算账,业务系统算好) +│ ├── src/export/ # 报表导出工作队列 +│ └── README.md # 中台引擎详细说明 +│ +├── packages/shared/ # 中台公共包(模块注册表 / 常量 / 备份表定义) +│ └── utils/ # 工具函数 ├── config.ts # 全局配置 + localStorage 持久化 ├── metrics-client.ts # 资源监控 + Token 速率 @@ -194,9 +206,20 @@ OLLAMA_ORIGINS=http://localhost:8090 ollama serve - 有业务子系统 → 子系统启动后,从其日志或 `~/.metro-driver/token` 读取,然后 `http://localhost:8090/?token=<读取的值>` - 没有业务子系统(只看 webui)→ 留空,前端能跑但 MCP 调用会失败(预期行为) -### 可选:启动中台 proxy +### 可选:启动中台引擎(L2,:8088) -如果用云端 API / oMLX,浏览器直调会被 CORS 拦截。需要起一个本地 proxy 转发(本项目不含,自行实现): +仓库已含 L2 中台引擎源码(`server/`,运行说明见 `server/README.md`): + +```bash +cd server +cp .env.example .env +npm install +npm start # 监听 http://127.0.0.1:8088/api/v1 +``` + +职责:请求验证与路由转发、JWT Ed25519 鉴权、链式哈希审计、RBAC、数据导入/导出与预计算。业务子系统(MCP Server,:7777/:7778)不在本仓库。 + +如用云端 API / oMLX,浏览器直调仍会被 CORS 拦截,需本地 proxy 转发(本项目不含,自行实现): ``` POST /proxy/anthropic-messages # 转发到 Anthropic 兼容端点