20 KiB
| date | topic |
|---|---|
| 2026-06-24 | portal-platform-evolution |
AgentKit 门户平台整体演进路线
Summary
按优先级串行推进 AgentKit 门户平台演进:先建独立 RAG 平台对标 MaxKB 功能对等,再扩展多端接入与 MCP Server,最后生态替换降本(MCP/Celery/LiteLLM)。不设硬性时间,按完成度推进。
Problem Frame
AgentKit 定位为企业级统一 AI Agent 门户平台,面向企业用户与开发者。对标 MaxKB(开源企业级智能体平台,GitHub 19k+ stars)后发现,当前能力堆栈在多个方向存在差距:
- RAG 工业级管道:AgentKit 现有
memory/模块是开发者级组件库(基础分块 + pgvector 语义检索 + time_decay 重排),MaxKB 是工业级产品功能(双索引检索 + 智能分段 + 问题生成 + 术语表 + 命中处理模式)。RAG 是门户平台服务企业知识库场景的底线能力。 - 平台触达:AgentKit 仅有飞书/Confluence/通用 HTTP 三种 RAG 适配器,MaxKB 原生支持企微/钉钉/飞书/Slack 多端接入。门户平台需要触达企业现有协作工具。
- MCP Server:AgentKit 已有 MCP Client(
mcp/client.py)和 MCP Server(mcp/server.py)基础实现,但尚未将 Skill/专家团队发布为 MCP 工具。门户平台应完善 MCP Server 的 Skill/专家团队发布能力。 - 自研 vs 生态:AgentKit 大量自研(Agent 引擎/LLM 网关/工作流画布/MCP 客户端/记忆系统/消息总线),commodity 层维护成本高。
本次演进为预防性演进 + 必备功能补齐,非救火式驱动。目标是补齐门户平台应有的能力,使 AgentKit 在企业级 AI Agent 平台赛道具备完整竞争力。
Key Decisions
串行演进策略(方案 A)。 按优先级串行推进,每个方向充分交付后再进入下一个。理由:用户要求"对标 MaxKB 功能对等",MVP 驱动难以一次达标;不设硬性时间契合串行节奏;预防性演进无紧急压力,可保障交付质量。
RAG 平台并行独立。 新建独立 RAG 平台模块,现有 memory/ 保留给 Agent 记忆(WorkingMemory/EpisodicMemory/SemanticMemory)。理由:职责分离,避免 RAG 与 Agent 记忆耦合;RAG 平台作为门户平台基础设施服务于企业用户知识库场景,Agent 记忆服务于 Agent 运行时。
开放引入生态依赖。 commodity 层优先用生态,降低维护成本。约束:需注意开源协议合规,且对已完成或进行中的特性保持向后兼容。差异化层(Agent 引擎/专家团队/自进化/终端安全)保持自研。
保留现有工作流。 FlowCanvas 不替换为 LogicFlow,现有工作流画布保持自研。理由:避免破坏现有节点类型(SkillNode/ApprovalNode/ConditionNode/ParallelNode)和工作流。
对标 MaxKB 功能对等。 RAG 工业级管道的成功标准是功能对等:双索引检索/智能分段/问题生成/术语表/命中处理模式/rerank 全部具备。
Requirements
RAG 工业级管道(优先级 1)
R1. 新建独立 RAG 平台模块,与现有 memory/ 模块职责分离,现有 memory/ 保留给 Agent 记忆使用。现有 memory/local_rag.py 的 LocalRAGService(pgvector + 分块 + 嵌入 + 语义检索)需明确迁移策略:吸收/扩展至新平台、提取至新模块、或新建并废弃 LocalRAGService。
R2. 支持双索引检索:pgvector 语义检索 + PostgreSQL 全文检索(search_vector),提供 embedding(语义)/ keywords(全文)/ blend(混合)三种检索模式。检索模式由企业用户按知识库配置默认值,Agent 运行时可按查询特征覆盖。
R3. 在 RAG 平台模块中实现智能分段与高级分段能力(可参考现有 memory/chunking.py 的分块基础),提供分段预览能力,企业用户可在向量化前查看分段结果。
R4. 支持问题自动生成:为文档段落自动生成相关问题/问法,提升检索召回率。
R5. 支持术语表(Termbase):通过全文检索分词增强,提升中文场景检索准确率。
R6. 支持命中处理模式:模型优化模式(LLM 基于检索结果生成回答)与直接回答模式(直接返回匹配段落),按知识库配置默认模式,企业用户在知识库设置中选择,Agent 可按查询场景覆盖。
R7. 支持 rerank 重排:检索结果经 rerank 模型重排后返回,提升相关性排序。
R8. 扩展现有 KnowledgeBaseView/DocumentUpload/SearchTest 组件,提供可视化文档管理:文档上传/分段预览/检索测试,企业用户可通过前端界面管理知识库。知识库必须实施 per-KB 访问控制(owner/authorized-users),Agent 检索必须限定于调用用户授权的知识库。文档上传必须验证文件类型(白名单)、强制大小限制、并在索引前净化解析内容(markdown sanitize、PDF 解析安全)。
平台触达扩展(优先级 2)
R9. 支持多端消息接入:企微/钉钉/飞书/Slack 消息适配器,企业用户可通过现有协作工具使用 AgentKit。各平台适配器必须验证平台提供的请求签名/token(飞书 encrypt_key、钉钉 token、企微信 EncodingAESKey)后处理消息,拒绝未认证请求。所有第三方平台凭证必须存储于 secrets store(非明文配置),定义轮换策略与访问审计。
R10. 完善现有 MCP Server(mcp/server.py):支持将 Skill/专家团队发布为 MCP 工具,供外部 AI 系统调用。MCP 工具调用必须要求认证与授权(复用现有 JWT+RBAC 或 API Key 机制),发布 Skill/专家团队为 MCP 工具需管理员级授权。
生态替换降本(优先级 3)
目标:将 commodity 层(MCP 客户端/异步任务/LLM Provider 适配)迁移至生态方案,降低自研维护成本,使团队聚焦差异化能力。成功标准:替换后现有功能行为不变,维护代码量减少。
R11. MCP 客户端替换为 langchain-mcp-adapters:跟进行业协议演进,降低自研 3 传输层(Stdio/HTTP/SSE)的维护成本。
R12. 引入 Celery 异步任务:与现有 asyncio 原生共存,承接文档向量化/批量任务(利用现有 Redis 作为 broker,不引入新基础设施),提供任务持久化/重试/调度能力。提供异步任务可视化:进度展示、失败通知与重试、任务历史。
R13. LLM Provider 底层替换为 LiteLLM:上层网关逻辑(fallback/缓存/用量追踪)保留自研,底层 provider 适配走 LiteLLM 统一接口。
Actors
A1. 企业用户 — 通过前端界面管理知识库(上传文档/配置分段/测试检索)、配置多端接入、发布 MCP 工具。
A2. 开发者 — 通过 API/MCP Server 集成 AgentKit 能力到外部系统。
A3. Agent — 运行时调用 RAG 平台检索知识库内容,支撑问答与决策。
Key Flows
F1. RAG 文档处理流程
- Trigger: 企业用户上传文档到知识库。
- Actors: A1, A3
- Steps: 文档解析 → 分段(智能/高级)→ 分段预览 → 向量化 → 全文索引建立 → 问题自动生成 → 可用。
- Outcome: 文档进入知识库,可被 Agent 检索。
F2. RAG 检索流程
- Trigger: Agent 需要检索知识库回答用户问题。
- Actors: A3
- Steps: 查询接收 → 检索模式选择(embedding/keywords/blend)→ 双索引检索 → rerank 重排 → 命中处理(模型优化/直接回答)→ 返回结果。
- Outcome: Agent 获得相关知识库内容。
F3. 多端消息接入流程
- Trigger: 企业用户通过企微/钉钉/飞书/Slack 发送消息。
- Actors: A1, A3
- Steps: 消息适配器接收 → 转换为 AgentKit 标准格式 → Agent 处理 → 响应转换为目标平台格式 → 返回。
- Outcome: 企业用户通过协作工具获得 Agent 响应。
F4. MCP Server 发布流程
- Trigger: 企业用户或开发者将 Skill/专家团队发布为 MCP 工具。
- Actors: A1, A2
- Steps: 选择 Skill/专家团队 → 配置 MCP endpoint → 发布 → 外部 AI 系统可通过 MCP 协议调用。
- Outcome: AgentKit 能力通过 MCP 协议对外输出。
Scope Boundaries
Deferred for later
- 本地模型支持(Ollama)——后续迭代,服务企业私有化部署场景。
- 现有
memory/模块重构——保留给 Agent 记忆用,不在本次演进范围。
Outside this product's identity
- FlowCanvas→LogicFlow 替换——保留现有工作流,不替换。
- Agent 引擎(ReActEngine/ReWOO/Reflexion/PlanExec)——保持自研,是核心差异化能力。
- 专家团队编排(流水线 + 私董会)——保持自研,生态无对应方案。
- 自进化系统(16 组件)——保持自研,独有能力。
- 终端安全(6 层白名单)——保持自研,安全必须自主可控。
Dependencies / Assumptions
- 开源协议合规:生态替换涉及的依赖协议需宽松可商用。Celery (BSD-3)、LiteLLM (MIT)、langchain-mcp-adapters 需确认协议。(注:LogicFlow 已因保留 FlowCanvas 决策排除,非协议原因——Apache-2.0 本身可商用)
- 现有特性向后兼容:生态替换(MCP 客户端/Celery/LiteLLM)不能破坏现有功能,需提供迁移路径。
- pgvector 基础设施:RAG 平台与现有 EpisodicMemory 共用 pgvector 基础设施,但数据模型独立。
- 前端组件复用:现有 KnowledgeBaseView/DocumentUpload/SearchTest 组件可能需要重构以支撑 RAG 平台可视化文档管理。
Outstanding Questions
Resolve Before Planning
- [P0 安全] MCP Server 端点缺少认证/授权决策:R10 暴露 Skills/Expert Teams 为 MCP 工具,F4 描述发布流程但未提及认证、授权、限流或访问控制。未认证的 MCP 端点允许任何可达客户端调用 Skills、读取 Expert Team 输出,若工具具备文件系统或 shell 访问权限则构成远程代码执行面。需在规划前明确:认证方案(API Key / JWT 复用 / OAuth / mTLS)、授权模型(按 skill / team / tenant)、限流策略。(ce-doc-review 延期,security-lens,置信度 100)
- [P0 安全] 多端消息适配器缺少输入验证:R9 多平台消息接入(飞书/钉钉/企业微信),F3 未提及签名校验、来源认证或速率限制。外部平台消息为不可信输入边界,缺少验证允许伪造消息、注入恶意内容、触发未授权 Skill 执行。需在规划前明确:各平台签名机制(飞书 encrypt_key、钉钉 token、企微信 EncodingAESKey)、消息格式校验、重放攻击防护。(ce-doc-review 延期,security-lens,置信度 100)
- [P0 安全] 文档上传缺少内容净化:R1/R7 涉及用户上传文档(PDF/Word/Markdown/TXT),需求未提及内容净化、恶意文件检测或大小限制。上传文档可能包含恶意脚本(XSS via markdown)、超大文件导致 OOM、嵌入恶意宏。需在规划前明确:文件类型白名单、大小限制、内容扫描、markdown sanitize、PDF 解析安全。(ce-doc-review 延期,security-lens,置信度 100)
Deferred to Planning
- 飞书消息接入适配器与现有飞书 RAG 适配器(
memory/adapters/feishu.py)的复用程度——后续确认。 - RAG 平台数据模型(Knowledge/Document/Paragraph/Problem/Embedding)的具体设计——ce-plan 决策。
- Celery 与现有 asyncio 原生的共存策略——ce-plan 决策。
- LiteLLM 与现有自研 Provider 的迁移路径——ce-plan 决策。
- [P1 战略] 对标 MaxKB ≠ 竞争力:功能对等是底线而非差异化。需明确 AgentKit 相对 MaxKB 的差异化定位(专家团队/自进化/终端安全等独有能力如何与 RAG 平台协同)。(ce-doc-review 延期,product-lens,置信度 75)
- [P1 前提] 演进前提缺少用户痛点证据:文档以"对标 MaxKB 发现差距"为前提,但未提供用户痛点证据(用户反馈/流失原因/竞品丢失原因)。需确认:是否有用户因缺少 RAG/多端/MCP Server 而流失或抱怨?(ce-doc-review 延期,product-lens,置信度 75,ROOT)
- [P1 前提] 未评估"不做"基线:未评估不执行此演进计划的后果。需确认:若不演进,AgentKit 的实际损失是什么?(ce-doc-review 延期,adversarial,置信度 75,DEPENDENT)
- [P1 战略] 同质化追赶 vs 差异化构建:RAG/多端/MCP Server 是 commodity 能力,MaxKB 已有。需确认:投入大量资源追赶 commodity 是否优于强化差异化能力?(ce-doc-review 延期,product-lens,置信度 75)
- [P1 战略] 重建 MaxKB 缺乏正当性论证:RAG 平台并行独立意味着重建 MaxKB 已有的工业级管道。需确认:为何不直接集成 MaxKB 或 fork?(ce-doc-review 延期,adversarial,置信度 75,ROOT)
- [P1 基础设施] 并行 RAG 平台导致基础设施翻倍:独立 RAG 平台与现有
memory/共用 pgvector 但数据模型独立,可能导致维护两套 RAG 基础设施。需确认:长期是否合并?(ce-doc-review 延期,product-lens,置信度 75,DEPENDENT) - [P1 设计] RAG 平台信息架构未定义:RAG 平台的前端信息架构(知识库列表/文档管理/检索测试/配置页)未定义。归 ce-plan 设计。(ce-doc-review 延期,design-lens,置信度 75)
- [P1 设计] 多端配置流程缺失:R9 多端消息接入缺少配置流程(如何添加平台/配置凭证/测试连通性)。归 ce-plan 设计。(ce-doc-review 延期,design-lens,置信度 75)
- [P1 安全] 知识库访问控制未指定:R8 可视化文档管理未指定访问控制(谁可查看/编辑/删除知识库)。需明确 RBAC 模型。(ce-doc-review 延期,security-lens,置信度 75)
- [P1 安全] 适配器凭证管理未定义:R9 多端适配器需要管理各平台 API 凭证(app_id/app_secret/token),需求未提及凭证存储与轮换。归 ce-plan 设计。(ce-doc-review 延期,security-lens,置信度 75)
- [P1 安全] MCP 发布授权未指定:R10 MCP Server 发布流程未指定谁有权发布 MCP 工具。需明确发布权限模型。(ce-doc-review 延期,security-lens,置信度 75)
- [P1 技术] PG 全文检索对中文不适用:R2 依赖 PostgreSQL 全文检索,但 PG 原生全文检索对中文支持差(缺中文分词)。需确认:是否使用 pg_jieba/zhparser 扩展或外部搜索引擎?(ce-doc-review 延期,feasibility,置信度 75)
- [P1 优先级] R12 优先级阻断 P1 交付:R12(Celery)在 P3,但 R1-R8(RAG 管道)的文档向量化需要异步任务能力。需确认:P1 是否依赖 R12?(ce-doc-review 延期,scope-guardian,置信度 75)
- [P2 证据] Celery 替换缺少必要性证据:R12 引入 Celery 但未提供 asyncio 原生不足的证据(具体场景/性能瓶颈/故障案例)。需补充必要性论证。(ce-doc-review 延期,feasibility,置信度 75)
- [P2 量化] LiteLLM 节省未量化:R13 引入 LiteLLM 但未量化节省(维护代码量/开发效率/兼容 provider 数)。需补充量化数据。(ce-doc-review 延期,feasibility,置信度 75)
- [P2 设计] MCP 配置流程未指定:R10 MCP Server 发布流程缺少配置细节(endpoint 路径/工具命名/参数定义)。归 ce-plan 设计。(ce-doc-review 延期,design-lens,置信度 75)
- [P2 设计] 分块预览未定义:R3 分段预览的交互模式未定义(预览界面/编辑能力/重新分段)。归 ce-plan 设计。(ce-doc-review 延期,design-lens,置信度 75)
- [P2 技术] 消息总线替换未处理:现有
bus/(MemoryBus/RedisBus)在生态替换中未提及。需确认:是否保留自研?(ce-doc-review 延期,feasibility,置信度 75) - [P2 技术] Rerank 模型未处理:R7 rerank 未指定模型(本地/API/开源)。归 ce-plan 决策。(ce-doc-review 延期,feasibility,置信度 75)
- [P1 战略] MaxKB 对等框架解决错误问题:MaxKB 是 RAG 知识库产品,AgentKit 是 Agent 平台。对标不同产品类别的功能对等可能构建不服务于实际用户的能力。需重构为用户结果导向的成功标准。(ce-doc-review 第 2 轮延期,product-lens+adversarial,置信度 100)
- [P1 战略] 串行策略饿死差异化投入:串行执行意味着差异化能力(Agent 引擎/专家团队/自进化)在 P1/P2 完成前零投入。需考虑预留差异化并行轨道。(ce-doc-review 第 2 轮延期,product-lens,置信度 75)
- [P1 战略] Build-vs-buy 未评估:R1-R8 从零构建工业级 RAG 管道,未评估集成 MaxKB 或采用 RAG 框架(LlamaIndex/Haystack)。需补充 build-vs-buy 评估。(ce-doc-review 第 2 轮延期,product-lens+adversarial,置信度 100)
- [P1 前提] 核心替换向后兼容性是假设非验证:R11/R12/R13 替换三个核心组件但假设"现有功能行为不变"。现有 LLM 网关有 6 provider + fallback + 语义缓存 + RemoteLLMProvider 代理。需将向后兼容从假设转为验证前提。(ce-doc-review 第 2 轮延期,adversarial,置信度 75)
- [P1 设计] 文档处理失败状态缺失:F1 未定义解析失败/不支持格式/向量化错误的用户可见状态。归 ce-plan 设计。(ce-doc-review 第 2 轮延期,design-lens,置信度 75)
- [P1 设计] 分段预览交互模式未定义:R3 "查看分段结果"是只读还是可编辑(合并/拆分/重新分段)未定义。归 ce-plan 设计。(ce-doc-review 第 2 轮延期,design-lens,置信度 75)
- [P1 设计] 多端配置与认证流程缺失:F3 缺少多端 onboarding 流程(webhook 配置/OAuth/app 凭证/连通性测试)。归 ce-plan 设计。(ce-doc-review 第 2 轮延期,design-lens,置信度 75)
- [P2 战略] 维护成本痛点延期至 P3:Problem Frame 声明"commodity 层维护成本高"但解决方案在最低优先级 P3。需考虑将高杠杆替换(如 LiteLLM)提前并行。(ce-doc-review 第 2 轮延期,product-lens,置信度 75)
- [P2 战略] R11-R13 是技术债非产品需求:R11-R13 成功标准是"现有功能行为不变"(零用户可见影响),无 Actor 受益。需考虑移至独立工程债轨道。(ce-doc-review 第 2 轮延期,product-lens,置信度 75)
- [P2 战略] 门户触达(P2)反转门户价值主张:门户平台的核心价值是触达,但多端接入在 P2。需考虑在 P1 并行交付至少一个高价值渠道。(ce-doc-review 第 2 轮延期,product-lens,置信度 75)
- [P2 技术] Celery 缺乏必要性论证:R12 引入 Celery 但未论证 asyncio 不足。文档向量化是 CPU-bound(可用 ProcessPoolExecutor),批量任务是 I/O-bound(asyncio 强项)。需补充具体场景。(ce-doc-review 第 2 轮延期,scope-guardian+adversarial,置信度 75)
- [P2 技术] LiteLLM 替换覆盖缺口:R13 未评估 LiteLLM 对 6 个现有 provider(尤其 Doubao/Wenxin/Yuanbao)的覆盖,以及语义缓存/用量追踪/RemoteLLMProvider 代理等网关特性。需补充 feature-gap 分析。(ce-doc-review 第 2 轮延期,scope-guardian+adversarial,置信度 75)
- [P2 战略] 串行策略阻断 MCP Server:R10 完善现有 MCP 基础设施,无依赖 RAG 或多端。串行策略将其阻断在两个无关工作流之后。需考虑解耦 R10。(ce-doc-review 第 2 轮延期,adversarial,置信度 75)
- [P2 设计] MCP 发布配置细节未定义:F4 "配置 MCP endpoint"未定义配置字段(工具名称/描述/输入 schema/鉴权方式/发布前测试)。归 ce-plan 设计。(ce-doc-review 第 2 轮延期,design-lens,置信度 75)
- [P2 设计] 新 RAG 平台门户 IA 未定义:R1 新建独立 RAG 平台模块,但未定义其在门户导航中的位置(顶级 section 还是扩展现有知识库管理区)。归 ce-plan 设计。(ce-doc-review 第 2 轮延期,design-lens,置信度 75)
Sources / Research
- MaxKB 系统架构:https://maxkb.cn/docs/v1/system_arch/
- MaxKB 技术解析:https://juejin.cn/post/7650428235188420651
- MaxKB GitHub:https://github.com/1Panel-dev/MaxKB
- AgentKit 代码库:
memory/(RAG 基础组件)、server/routes/(22 路由模块)、src/agentkit/server/frontend/src/components/(前端组件) - AgentKit 项目规则:
AGENTS.md、CLAUDE.md