低码类平台Agent通用架构设计

低代码类平台往往有相似的业务场景:各知识库文档、可视化建模、可视化视图,落地agent,往往从知识库rag和智能生成schema入手。

本文介绍低码类平台通用agent架构设计。

业务架构

业务全景

graph TB subgraph 用户层[&#34;👤 用户层 (User Layer)&#34;] U1[&#34;交付工程师&#34;] U2[&#34;售前/产品&#34;] U3[&#34;平台管理员&#34;] end subgraph 交互层[&#34;💬 交互层 (Interaction Layer)&#34;] I1[&#34;自然语言对话&#34;] I2[&#34;管理后台&#34;] end subgraph 业务能力[&#34;🧠 业务能力层 (Business Capability Layer)&#34;] direction TB subgraph CAP1[&#34;📦 AI schema建模&#34;] C1_1[&#34;自然语言理解&#34;] C1_2[&#34;schema生成&#34;] C1_3[&#34;schema补全&#34;] C1_4[&#34;schema校验与修复&#34;] C1_4[&#34;schema应用&#34;] end subgraph CAP2[&#34;📖 知识问答服务&#34;] C2_1[&#34;文档智能检索&#34;] C2_2[&#34;上下文增强回答&#34;] C2_3[&#34;对话历史管理&#34;] end subgraph CAP3[&#34;🧩 智能记忆管理&#34;] C3_1[&#34;工作记忆(实时上下文)&#34;] C3_2[&#34;情景记忆(交互事件)&#34;] C3_3[&#34;语义记忆(长期知识)&#34;] C3_4[&#34;记忆整合与遗忘&#34;] end subgraph CAP4[&#34;📖 知识库文档管理&#34;] C4_1[&#34;文档上传&#34;] C4_2[&#34;文档更新&#34;] C4_3[&#34;整库reindex&#34;] end end subgraph 知识基座[&#34;📚 知识基座 (Knowledge Foundation)&#34;] K1[&#34;行业案例目录<br/>(100+ 典型案例)&#34;] K2[&#34;产品文档库<br/>(平台文档)&#34;] K3[&#34;典型功能案例<br/>(各模块功能典型案例)&#34;] end subgraph 外部系统[&#34;🌐 外部系统 (External Systems)&#34;] E1[&#34;低码平台&#34;] E2[&#34;LLM 大模型服务<br/>(DeepSeek v4 Pro)&#34;] E3[&#34;Embedding 服务<br/>(Qwen3-Embedding:8b)&#34;] end U1 --> I1 U2 --> I1 U3 --> I2 I1 --> CAP1 I1 --> CAP2 I2 --> CAP4 CAP1 --> K1 CAP1 --> K2 CAP2 --> K2 CAP1 --> E2 CAP1 --> E1 CAP2 --> E2 CAP3 --> E2 CAP4 --> E3 style 用户层 fill:#E3F2FD,stroke:#1565C0,stroke-width:2px style 交互层 fill:#FFF3E0,stroke:#E65100,stroke-width:2px style 业务能力 fill:#E8F5E9,stroke:#2E7D32,stroke-width:2px style CAP1 fill:#C8E6C9,stroke:#388E3C style CAP2 fill:#DCEDC8,stroke:#558B2F style CAP3 fill:#F1F8E9,stroke:#33691E style 知识基座 fill:#F3E5F5,stroke:#6A1B9A,stroke-width:2px style 外部系统 fill:#FFEBEE,stroke:#C62828,stroke-width:2px

核心流程

schema建模流程

agent最重要的能力是能够根据自然语言创建低代码应用。

比如用户说,帮我创建一个xx票据管理,agent应自动从案例中获取相关信息,智能生成元数据、视图、工作流等不同应用原件的schema。

如果没有相关案例,则需要根据不同原件的要求,询问用户以补充信息,直到能够出具schema雏形。比如询问页面字段(元数据),数据操作流程(工作流),数据创建流程(表单视图)等。

其大致流程如下:

flowchart LR subgraph 输入[&#34;输入&#34;] A[&#34;用户自然语言描述<br/>业务需求&#34;] end subgraph 处理[&#34;AI 处理流程&#34;] B[&#34;语义理解<br/>提取意图&#34;] C[&#34;案例目录<br/>匹配推荐&#34;] C[&#34;意图拆分<br/>多模块schema拆分&#34;] D[&#34;骨架 schema<br/>生成&#34;] E[&#34;schema后处理<br/>细节智能补全&#34;] F[&#34;Schema<br/>校验&#34;] G{校验通过?} H[&#34;LLM<br/>自动修复&#34;] end subgraph 输出[&#34;输出&#34;] I[&#34;各模块schema<br/>(元数据+视图+工作流)&#34;] end A --> B --> C --> D --> E --> F --> G G -- 是 --> I G -- 否 --> H --> E

问答流程

知识问答也可以说是低码类平台agent必要功能。平台总配置项/能力往往以千计数,即便给到手册,用户也难以消化。

问答通用流程往往如下:

flowchart LR subgraph 输入[&#34;输入&#34;] A[&#34;用户问题&#34;] end subgraph 检索[&#34;知识检索&#34;] B[&#34;向量相似度搜索<br/>(文档库)&#34;] C[&#34;会话历史<br/>加载&#34;] end subgraph 生成[&#34;回答生成&#34;] D[&#34;上下文组装<br/>(文档 + 历史 + 问题)&#34;] E[&#34;LLM 回答生成&#34;] end subgraph 输出[&#34;输出&#34;] F[&#34;结构化回答<br/>+ 引用来源&#34;] G[&#34;对话历史<br/>持久化&#34;] end A --> B A --> C B --> D C --> D D --> E --> F E --> G

记忆整合

低码类平台agent往往需要多轮询问才能得到结果,其本质是需求不断澄清的过程,因此上下文记忆在agent设计中尤为重要。

flowchart TD subgraph 触发[&#34;触发&#34;] A[&#34;会话结束 / 手动触发&#34;] end subgraph 工作记忆[&#34;工作记忆&#34;] B[&#34;加载当前会话记忆条目&#34;] end subgraph 整合[&#34;LLM 整合&#34;] C[&#34;生成会话摘要&#34;] D[&#34;提取关键主题&#34;] E[&#34;提取长期知识点&#34;] end subgraph 存储[&#34;分层存储&#34;] F[&#34;情景记忆<br/>(事件 + 标签)&#34;] G[&#34;语义记忆<br/>(向量存储)&#34;] end subgraph 清理[&#34;清理&#34;] H[&#34;清空已整合的工作记忆&#34;] end A --> B --> C --> D C --> F D --> E --> G E --> H

技术架构

系统分层

graph TB subgraph 客户端[&#34;🖥️ 客户端层 (Client Layer)&#34;] CL1[&#34;前端&#34;] CL2[&#34;API 调用&#34;] end subgraph 网关[&#34;🚪 接入层 (Gateway Layer)&#34;] GW[&#34;Fastify HTTP Server<br/>:3000&#34;] MW1[&#34;CORS 中间件&#34;] MW2[&#34;Bearer Token 认证<br/>&#34;] MW3[&#34;请求日志中间件&#34;] MW4[&#34;错误处理中间件&#34;] end subgraph 路由[&#34;📡 路由层 (Route Layer)&#34;] R1[&#34;POST /api/generate&#34;] R2[&#34;POST /api/ask&#34;] R3[&#34;POST /api/rag/*&#34;] R4[&#34;/api/memory/*&#34;] R5[&#34;GET /health&#34;] end subgraph 处理器[&#34;⚙️ 处理器层 (Handler Layer)&#34;] H1[&#34;generateHandler&#34;] H2[&#34;askHandler&#34;] H3[&#34;ragHandler&#34;] H4[&#34;memoryHandler&#34;] end subgraph 链路[&#34;🔗 AI 链路层 (Chain Layer)&#34;] CH1[&#34;generateChain<br/>(骨架生成 → enrich → validate → repair)&#34;] CH2[&#34;askChain<br/>(RAG 检索 → 上下文组装 → LLM 生成)&#34;] end subgraph 工具[&#34;🛠️ Agent 工具层 (Tool Layer)&#34;] T1[&#34;ToolRegistry<br/>工具注册中心&#34;] T2[&#34;rag_retrieval&#34;] T3[&#34;search_workflow_nodes&#34;] T4[&#34;get_metadata_detail&#34;] T5[&#34;validate_schema&#34;] T6[&#34;memory_add / search / stats&#34;] T7[&#34;跨系统调用(一般是平台)&#34;] end subgraph 服务[&#34;🏗️ 服务层 (Service Layer)&#34;] S1[&#34;LLM Service<br/>(DeepSeek v4 Pro)&#34;] S2[&#34;VectorStore Service<br/>(ChromaDB)&#34;] S3[&#34;MetadataLoader<br/>(各类平台元数据)&#34;] S4[&#34;SchemaValidator<br/>(Zod Schema 校验)&#34;] end subgraph 记忆[&#34;🧠 记忆系统 (Memory System)&#34;] MG[&#34;MemoryManager<br/>统一记忆管理器&#34;] MW_MEM[&#34;WorkingMemory<br/>工作记忆&#34;] ME[&#34;EpisodicMemory<br/>情景记忆&#34;] MS[&#34;SemanticMemory<br/>语义记忆&#34;] MC[&#34;Consolidator<br/>记忆整合器&#34;] MF[&#34;Strategies<br/>6 种遗忘策略&#34;] end subgraph 数据[&#34;💾 数据层 (Data Layer)&#34;] DB1[(&#34;Redis 7<br/>会话 / 工作 / 情景记忆&#34;)] DB2[(&#34;ChromaDB<br/>向量存储 / 语义记忆&#34;)] DB3[&#34;docs/<br/>产品文档&#34;] end subgraph 外部[&#34;🌐 外部服务 (External Services)&#34;] EXT1[&#34;DeepSeek v4 Pro API<br/>(OpenAI 兼容)&#34;] EXT2[&#34;Ollama<br/>Qwen3-Embedding:8b<br/>:11434&#34;] EXT3[&#34;平台 API<br/>&#34;] end CL1 --> GW CL2 --> GW GW --> MW1 --> MW2 --> MW3 --> MW4 MW4 --> R1 & R2 & R3 & R4 & R5 R1 --> H1 R2 --> H2 R3 --> H3 R4 --> H4 H1 --> CH1 H2 --> CH2 CH1 --> T1 CH2 --> T1 T1 --> T2 & T3 & T4 & T5 & T6 & T7 CH1 --> S1 & S3 & S4 CH2 --> S1 & S2 T2 --> S2 T3 --> S3 T4 --> S3 H4 --> MG MG --> MW_MEM & ME & MS MC --> MW_MEM & ME & MS MC --> MF S1 --> EXT1 S2 --> DB2 S3 --> DB3 S3 --> EXT3 MW_MEM --> DB1 ME --> DB1 MS --> DB2 MS --> DB1 MC --> S1 MS --> EXT2 style 客户端 fill:#E3F2FD,stroke:#1565C0,stroke-width:2px style 网关 fill:#FFF8E1,stroke:#F57F17,stroke-width:2px style 路由 fill:#FFF3E0,stroke:#E65100,stroke-width:2px style 处理器 fill:#FBE9E7,stroke:#BF360C,stroke-width:2px style 链路 fill:#E8F5E9,stroke:#2E7D32,stroke-width:2px style 工具 fill:#F1F8E9,stroke:#33691E,stroke-width:2px style 服务 fill:#E0F2F1,stroke:#004D40,stroke-width:2px style 记忆 fill:#F3E5F5,stroke:#6A1B9A,stroke-width:2px style 数据 fill:#FCE4EC,stroke:#880E4F,stroke-width:2px style 外部 fill:#FFEBEE,stroke:#C62828,stroke-width:2px

技术概览

graph LR subgraph 语言[&#34;语言 & 运行时&#34;] L1[&#34;TypeScript 5.4+<br/>ESM Module&#34;] L2[&#34;Node.js 20+&#34;] end subgraph 框架[&#34;Web 框架&#34;] F1[&#34;Fastify 4.28&#34;] end subgraph AI[&#34;AI / LLM&#34;] A1[&#34;LangChain.js 1.4&#34;] A2[&#34;@langchain/openai&#34;] A3[&#34;DeepSeek v4 Pro&#34;] A4[&#34;Qwen3-Embedding:8b&#34;] end subgraph 存储[&#34;存储&#34;] D1[&#34;Redis 7<br/>(ioredis)&#34;] D2[&#34;ChromaDB<br/>(chromadb client)&#34;] end subgraph 验证[&#34;数据验证&#34;] V1[&#34;Zod&#34;] V2[&#34;JSON Schema&#34;] end subgraph 工程[&#34;工程化&#34;] E1[&#34;Vitest 4.1&#34;] E2[&#34;ESLint&#34;] E3[&#34;Docker Compose&#34;] E4[&#34;tsc (TypeScript)&#34;] end L1 --> L2 --> F1 F1 --> A1 A1 --> A2 --> A3 A1 --> A4 F1 --> D1 F1 --> D2 F1 --> V1 V1 --> V2 style 语言 fill:#E3F2FD,stroke:#1565C0,stroke-width:2px style 框架 fill:#FFF3E0,stroke:#E65100,stroke-width:2px style AI fill:#E8F5E9,stroke:#2E7D32,stroke-width:2px style 存储 fill:#FCE4EC,stroke:#880E4F,stroke-width:2px style 验证 fill:#F3E5F5,stroke:#6A1B9A,stroke-width:2px style 工程 fill:#E0F2F1,stroke:#004D40,stroke-width:2px

部署架构

graph TB subgraph docker[&#34;🐳 Docker Compose 部署&#34;] direction TB subgraph app[&#34;Application&#34;] APP[&#34;Node.js 进程<br/>Fastify &#34;] end subgraph infra[&#34;Infrastructure&#34;] REDIS[(&#34;Redis 7<br/><br/>AOF 持久化&#34;)] CHROMA[(&#34;ChromaDB<br/>&#34;)] OLLAMA[&#34;Ollama<br/><br/>(可选,本地部署)&#34;] end subgraph volumes[&#34;持久化卷&#34;] V1[&#34;data/redis/&#34;] V2[&#34;data/chroma/&#34;] V3[&#34;data/ollama/&#34;] end end subgraph external[&#34;外部服务&#34;] EXT_LLM[&#34;DeepSeek API<br/>(云端)&#34;] end APP -->|&#34;ioredis&#34;| REDIS APP -->|&#34;HTTP&#34;| CHROMA APP -->|&#34;HTTP&#34;| EXT_LLM APP -.->|&#34;HTTP(可选,不推荐)&#34;| OLLAMA REDIS --> V1 CHROMA --> V2 OLLAMA --> V3 style docker fill:#E3F2FD,stroke:#1565C0,stroke-width:2px style app fill:#FFF3E0,stroke:#E65100,stroke-width:2px style infra fill:#E8F5E9,stroke:#2E7D32,stroke-width:2px style volumes fill:#FCE4EC,stroke:#880E4F,stroke-width:2px style external fill:#FFEBEE,stroke:#C62828,stroke-width:2px
相关推荐
装不满的克莱因瓶5 小时前
学习并掌握 LangChain 检索器的作用,实现让 LLM 动态调用知识库功能
人工智能·python·ai·langchain·llm·agent·智能体
大熊猫侯佩6 小时前
赛博代码遗孤:我与 AI 特工共生的 11 条末世生存法则
agent·ai编程·cursor
养肥胖虎6 小时前
多Agent开发笔记:为什么4个Codex加1个Claude会把cpu跑满
vscode·agent·codex
码农大坚果6 小时前
智能体开发实战03|上下文工程降本80%
agent
码农大坚果6 小时前
智能体开发实战01|Agent是什么
agent
摘笑7 小时前
我花了3天让AI Agent学会查数据库,才发现MCP这玩意是真的香
agent·ai编程·mcp
阿里云云原生7 小时前
重磅发布!AgentScope Java 2.0:为企业级分布式智能体提供原生工程底座
agent
canonical_entropy7 小时前
制品生命周期与收敛拓扑:CodeStable 与 AGE 的模式差异
aigc·agent·ai编程
canonical_entropy7 小时前
控制层和方向层的分野:OpenProse、Natural-Language Agent Harnesses 与 AGE的比对分析
aigc·agent·ai编程