Open-Agent架构全景解析:NestJS + GraphQL + PostgreSQL + Rust + Electron的Monorepo设计深度剖析

发布时间:2026/10/24 18:22:45

Open-Agent架构全景解析:NestJS + GraphQL + PostgreSQL + Rust + Electron的Monorepo设计深度剖析 Open-Agent架构全景解析NestJS GraphQL PostgreSQL Rust Electron的Monorepo设计深度剖析【免费下载链接】open-agentOpen-source alternative to Claude Agent SDK, ChatGPT Agents, and Manus.项目地址: https://gitcode.com/gh_mirrors/op/open-agentOpen-Agent 是一个开源的 Agentic AI 平台可作为 Claude Agent SDK、ChatGPT Agents 和 Manus 的开源替代品。它用 NestJS 搭建服务端、GraphQL 定义接口、PostgreSQL 存储数据、Rust 处理高性能任务、Electron 打包桌面端全部装进一个 Monorepo 中协同开发。下面带你用最短的篇幅看懂它的架构设计。一、项目定位一个可以自托管的开源 AI AgentOpen-source alternative to Claude Agent SDK, ChatGPT Agents, and Manus.Open-Agent 的核心能力是多智能体协作接入 OpenAI、Claude、Gemini 及开源模型多个 Agent 协同完成任务规范驱动决策通过 Spec 与上下文工程让 Agent 先规划、再评分、后给选项人保留最终决定权可自托管开源免费用 Docker Compose 三步即可部署一句话概括它不是聊天机器人而是一个能像人一样操作电脑、浏览器完成任务的智能体系统且代码完全开放给你修改。二、Monorepo 总览一个仓库五套技术栈打开根目录 package.json可以看到这是一个Yarn Berry workspaces管理的 monorepo工作空间覆盖了四大板块open-agent/ ├── blocksuite/ # 文档编辑器引擎TS/Lit 微前端 ├── packages/ │ ├── backend/ # 服务端server(NestJS) native(Rust) │ ├── common/ # 公共库graphql 类型、Rust 原生模块 │ └── frontend/ # 前端app(React) electron(桌面端) └── tools/ # 工程工具链cli、utils、changelogRust 部分则由根目录 Cargo.toml 统一为Cargo workspace管理packages/backend/native与packages/common/native两个 crate。这种Node 管工作空间、Cargo 管原生依赖的双 workspace 模式是该项目最值得学习的 Monorepo 设计之一——JS 与 Rust 各自独立编译又通过命名空间包如afk/server-native无缝互通。三、后端NestJS GraphQL PostgreSQL 的经典组合3.1 模块化架构的开关式组装后端位于 packages/backend/server/核心文件 app.module.ts 展示了教科书级的 NestJS 模块化设计基础能力模块Prisma、Redis、缓存、限流、Web socket、任务队列BullMQ、日志、指标采集统一注册为FunctionalityModules业务模块用户、鉴权、配额、邮件、版本管理useIf条件装配GraphQL 相关模块只在env.flavors.graphql为真时才加载同一套代码可跑成 GraphQL 服务或 CLI 脚本3.2 数据层Prisma PostgreSQL 向量扩展数据模型定义在 schema.prisma注意两个关键细节provider postgresql用户、会话、AI Job、文件文档全部结构化建模启用了pgvector扩展——这意味着 PostgreSQL 同时承担了向量数据库的角色AI 的记忆与检索不用再引入 Milvus 之类的额外组件配合 app.module.ts 中的ClsModule事务插件每个 HTTP/GraphQL 请求自动获得请求级上下文和事务隔离这是高并发 AI 服务稳定运行的基石。3.3 AI 核心copilot 插件真正的智能体逻辑在 plugins/copilot/ 下目录本身就是架构的缩影子目录职责providers/各大模型厂商适配器workflow/多智能体工作流编排tools/Agent 可调用的工具集embedding/向量化与语义检索workspace/智能体沙箱工作区transcript/对话过程记录与回放再加上e2b/code-interpreter云端代码执行等依赖构成了规划 → 执行 → 记录的完整 Agent 闭环。四、Rust 层把 CPU 密集型工作交给原生代码服务端 Node.js 擅长 I/O但文件解析、分词、内容抽取这类 CPU 密集任务交给了 Rust。两个 crate 各司其职packages/common/native/通用能力库内置tree-sitter全家桶C/C/Go/Java/Python/Rust/TS 等 11 种语言解析器、PDF/DOCX 解析pdf-extract、docx-parser、HTML 可读性提取readability让 Agent 能读懂用户上传的各种文档packages/backend/native/服务端专用模块包含tiktoken精确计算 Token 消耗、html_sanitizeHTML 安全清洗、hashcash防刷验证并配有 benchmark 性能基准测试Rust 通过N-API编译为 Node 原生模块JS 侧调用如同调用普通函数——这正是 Cargo.toml 中napi 3.0.0-beta.3的用武之地。五、前端React 应用 自研 BlockSuite 编辑引擎 Electron 壳前端由三层组成分工极其清晰5.1 应用层packages/frontend/app/React 19 React Router 7 Tailwind CSS 4 Zustand 构建的 Web 应用通过 packages/common/graphql/ 中代码生成codegen的 GraphQL 客户端与服务端通信——类型由 schema 自动生成前后端契约永远不会漂移。5.2 编辑引擎blocksuite/这是 Open-Agent 最重的资产一套完整的块级文档编辑器框架微包结构包括blocks/段落、表格、代码块、画板surface、嵌入文档等 21 种内容块framework/核心框架——store基于 Yjs 的协同数据模型、sync实时同步与 Blob 存储、std选择、命令、事件系统gfx/画布图形元素——刷笔、连接器、思维导图、形状Agent 产出的长文档、图表、表格都渲染在这套引擎里这也是 playground 测试卡片图这类渲染测试素材存在的原因。5.3 桌面端packages/frontend/electron/用 Electron Forge 打包 Win/macOS/Linux 安装包亮点是 scripts/ipc-generator/用 ts-morph 静态分析 IPC 处理函数自动生成类型定义文件ipc-api-types.gen.ts主进程与渲染进程的通信类型安全零手写。六、工程化为什么这个 Monorepo 值得借鉴一份依赖树Yarn workspaces resolutions锁定关键依赖版本50 子包共享一套 Node 环境统一工具链tools/cli/ 提供yarn oa统一入口dev/build/initvitest.workspace.ts 让yarn test一次跑通所有包质量门禁ESLint Prettier oxlint 三件套Husky lint-staged 在提交时自动格式化 TS 与 Rust 代码本地开发体验按 tools/public/dev.md 操作yarn Docker Compose 拉起 PostgreSQL/Redis再yarn dev一键同时启动前后端七、总结Open-Agent 的架构可以浓缩为一句话NestJS 管编排GraphQL 管契约PostgreSQL(pgvector) 管数据Rust 管性能BlockSuite 管呈现Electron 管分发——用双 workspace Monorepo 把它们拧成一股绳。如果你想深入源码建议按这条路径阅读app.module.ts服务组装→ plugins/copilot/智能体核心→ blocksuite/framework/store/数据模型→ packages/frontend/electron/src/entries/桌面端入口。掌握这四块你就拿到了整个项目的地图。【免费下载链接】open-agentOpen-source alternative to Claude Agent SDK, ChatGPT Agents, and Manus.项目地址: https://gitcode.com/gh_mirrors/op/open-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/24 2:25:50

AlwaysOnTop:免费一键窗口置顶,让任意窗口常驻屏幕最前

AlwaysOnTop:免费一键窗口置顶,让任意窗口常驻屏幕最前 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop AlwaysOnTop 是一款免费开源的轻量级 Windows 窗口…

2026/10/24 14:23:56

旧Mac升级新版系统:5步走完,让老机器免费再战三年

旧Mac升级新版系统:5步走完,让老机器免费再战三年 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 苹果停止支持的 Intel 老 Mac&#…

2026/10/24 20:16:03

无线传感器网络安全传输与能耗优化方案

1. 项目概述:无线传感器网络中的安全传输挑战在野外环境监测、工业设备状态监控等实际场景中,无线传感器网络(WSNs)常常面临两大核心挑战:一是能量受限的微型传感器节点如何延长网络寿命,二是如何在存在窃听威胁的开放环境中保障数…

2026/10/24 20:16:03

XSRP平台CDMA/OFDM/TD-LTE物理层Matlab实现与硬件协同指南

简介:本资源为武汉工程大学《软件无线电》课程综合实验报告,面向通信工程、电子信息类本科生及软件无线电初学者,聚焦XSRP平台在主流无线通信体制中的工程实现能力训练。报告完整覆盖CDMA(WCDMA简化帧结构)、OFDM&…

2026/10/24 20:16:03

软考中级信息系统管理工程师通关导航:三层锚点与逻辑链构建

简介:本资源是软考中级「信息系统管理工程师」考前核心复习资料,专为备考人员梳理高频考点与底层原理,解决知识点分散、概念抽象、体系难构建等痛点。内容覆盖计算机组成与并行性、SIMD/MIMD架构对比、RISC/CISC指令系统差异、存储层次与虚拟…

2026/10/24 20:16:03

FreeSWITCH 路由配置实战:呼入呼出与对等中继避坑指南

简介:这份文档面向使用 Freeswitch 搭建 VoIP 通信平台的运维与开发人员,聚焦呼入呼出路由配置这一关键环节,帮助读者理清拨号计划、SIP 中继与对等中继模式下的外呼实现思路。资源包内共 1 个 doc 文件,约 221KB,内容…

2026/10/24 20:16:03

银河麒麟V10打印配置全链路指南:CUPS、Samba与IPP实战

简介:本资源是面向银河麒麟桌面操作系统V10用户(尤其是政企信创环境运维人员、国产化办公终端管理员及Linux初学者)的官方级打印机配置与共享实操手册,系统解决国产系统下外设兼容性、本地/网络打印机部署及跨平台打印协同等核心问…

2026/10/24 20:11:02

Blender-NewDark-Toolkit 安装与 Dark Engine 工具链配置指南

简介:这是一套专为Blender用户设计的Python插件工具包,面向游戏资源开发者与3D建模工程师,解决Dark Engine(如《神偷》《网络奇兵》系列)经典.e格式模型在现代Blender中导入、导出及纹理适配的兼容性难题。插件支持三大…

2026/10/23 22:56:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/24 0:02:40

MATLAB缩进快捷键与批量格式化实战指南

1. 被自动缩进折磨的那些年如果你写过MATLAB代码,大概率经历过这种场景:从某个文档、网页或者聊天记录里复制了一段代码,粘贴进编辑器之后,每一行前面都带着莫名其妙的空格,有的行首是四个空格,有的是一个T…

2026/10/24 0:02:40

用Poco实现Qt风格信号与槽的跨平台C++方案

简介:本资源是一份面向C中级开发者的技术实践工程,聚焦于在非Qt框架环境下模拟实现Qt核心通信机制——信号与槽,借助Poco网络库的事件系统完成解耦式对象通信。适用于需在跨平台C项目中引入松耦合回调机制、但受限于无法集成Qt依赖的开发场景…

2026/10/24 0:02:40

ESXi裸机虚拟化安装指南:从硬件兼容到虚拟机部署

1. 为什么还要折腾ESXi:从一台闲置机器说起手里攒了几台淘汰下来的迷你主机,配置不算差,i5加16G内存,扔了可惜,装个桌面系统又觉得浪费。这种场景下,ESXi就成了一个绕不开的选择。它是一套裸机虚拟化平台&a…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑