新版架构草案 · 2026-05-31 · Payload 前置集成

Hermes Agent 团队知识沉淀与内容分发系统

以飞书作为团队主入口,Hermes Agent 负责任务编排,IMA 负责知识沉淀,Payload 承担用户、权限和内容资产后台,Content Publisher 输出 HTML、PDF、长图、卡片和短链接。

4 层 入口、Agent、工具、资产
3 条 知识、协作、发布主线
Phase 0 先验证身份和后台
OSS 专桶 不复用其他项目 bucket

Principles

核心原则

这版方案的关键是收敛:不先造大平台,而是用最少组件跑通团队知识、飞书协作和内容分发闭环。

飞书是主入口

团队成员主要在飞书中与 Agent 交互,任务执行结果也优先回到飞书。

IMA 是知识大脑

IMA 负责知识检索与沉淀,不承担工作流执行和内容发布职责。

Hermes 是编排核心

Hermes 负责意图识别、任务规划、工具调用、上下文和权限判断。

Payload 是权限底座

用户、角色、客户、内容资产、分享链接、访问日志和后台管理都放在 Payload。

关键边界:微信只做分发,不做知识库;Content Publisher 只做渲染和分享,不做完整 CMS;第一阶段不引入 Dify、RAGFlow、Docmost、Outline 等重系统。

Architecture

总体架构

模块边界按职责拆开,物理部署可以先收在一台服务器和一个 Next.js/Payload 应用里。

用户入口
飞书 Bot团队主交互入口
Payload Web后台与分享页
微信链接、PDF、长图分发
客户链接受控外部访问
Hermes Agent Core
Intent Router识别任务类型
Planner规划执行路径
Policy Guard权限与风险判断
Tool Router统一调度工具
工具层
IMA Skills知识检索与沉淀
Feishu CLI文档、任务、日程
Payload API内容资产与权限
PublisherHTML、PDF、长图
沉淀层
PostgreSQL用户、内容、日志
OSS图片、PDF、附件
IMA长期知识库
飞书文档协作归档

Payload First

为什么第一阶段集成 Payload

Payload 不是附属 CMS,而是第一阶段就需要的用户、权限、内容资产和管理后台。

自研会重复建设的能力

  • 用户注册和登录
  • 团队成员管理
  • 客户身份管理
  • 角色权限
  • 内容管理后台
  • 媒体上传
  • 分享链接管理
  • 访问日志查看

Payload 在本系统中的定位

能力承担内容
Auth用户登录、会话、API Key、自定义认证策略
RBACowner、admin、editor、member、client、viewer
Admin Panel团队、客户、内容、权限、人工审核
Collections用户、内容资产、分享链接、访问日志、审计日志
Local APIHermes Agent 在服务端读写内容资产
结论:Payload 是 AI 内容资产库、权限后台和管理面板;知识长期沉淀仍以 IMA 和飞书文档为主。

Technology

技术栈建议

第一阶段统一使用 TypeScript Monorepo,避免过早拆成多语言、多服务。

选型说明
Web/后台Next.js + Payload承载 Payload Admin、分享页、认证回调和部分内部 API
Agent WorkerNode.js 20 + TypeScript与 Payload、飞书 CLI、MCP Server 生态协同更顺
数据库PostgreSQLPayload 主库,保存用户、内容、日志、权限
文件存储阿里云 OSS新建本项目专用 bucket,不复用其他项目 bucket
队列Redis + BullMQ渲染 PDF、长图、同步 IMA、同步飞书文档
渲染PlaywrightHTML 转 PDF、长图截图、摘要卡片截图
LLM可配置OpenAI、DeepSeek、通义、混元等走统一 LLM Adapter
知识接入IMA Skills Adapter封装 IMA 检索和沉淀能力
hermes-agent-platform/
  apps/
    web/                    # Next.js + Payload Admin + 分享页
    hermes-worker/           # 飞书 Bot、Agent Runtime、异步任务
  packages/
    shared/                  # 共享类型、Content Artifact Schema
    adapters/
      feishu-cli/
      ima-skills/
      publisher/
    policy/
    prompts/
  infra/
    docker-compose.yml
    migrations/

Content Artifact

核心内容协议

所有 Agent 产物先进入标准内容结构,再渲染成不同形态,避免到处散落生成 HTML、PDF 或图片。

{
  "artifact_id": "art_xxx",
  "version": 1,
  "title": "方案标题",
  "summary": "摘要",
  "audience": "client",
  "content_type": "proposal",
  "body_markdown": "...",
  "assets": [],
  "tags": ["客户A", "AI产品"],
  "visibility": "private",
  "source": {
    "channel": "feishu",
    "conversation_id": "oc_xxx",
    "message_ids": ["om_xxx"],
    "knowledge_refs": []
  },
  "outputs": {
    "html": null,
    "pdf": null,
    "long_image": null,
    "share_link": null,
    "feishu_doc": null,
    "ima_ref": null
  }
}

设计原则

  • Agent 只生成结构化内容,不直接生成散乱产物。
  • Content Publisher 从 Artifact 渲染输出。
  • Payload 保存元数据、权限、版本、状态和审计线索。
  • IMA 和飞书文档保存长期沉淀版本。
  • 分享链接只引用 Artifact 和 Output,不复制业务内容。
Markdown HTML PDF 长图 卡片 短链接

Identity

飞书身份与 Payload 用户系统打通

飞书内交互和网页登录必须映射到同一套 Payload 用户、团队和权限模型。

A. 飞书 Bot 消息事件

  1. 飞书消息事件进入系统。
  2. 提取 tenant_keyopen_idunion_id/user_id
  3. 调用 resolveFeishuUser()
  4. 在 Payload Users 中查找或创建影子用户。
  5. 建立 conversation、message、agent_run。

B. 飞书内打开页面

  1. 用户点击内容链接、审核链接或后台链接。
  2. 进入 /auth/feishu/start
  3. 飞书 OAuth 或免登获取 code。
  4. 服务端换取用户信息。
  5. upsert Payload User 并创建 session。

身份键和权限策略

身份键

feishu:{tenant_key}:{union_id || open_id}。优先使用 union_id,拿不到时退回 open_id。

默认登录

团队成员默认走飞书 SSO;本地密码只保留超级管理员 break-glass 账号。

权限联动

飞书侧执行动作前调用同一套 Payload Access Control,避免两套权限逻辑分裂。

Main Flows

三条核心业务流程

先跑通团队最常用的三类场景:知识沉淀、协作执行、内容发布。

1. 知识沉淀

飞书消息进入 Hermes,识别为 knowledge_capture,解析网页、图片、PDF、文本或链接,必要时生成 Artifact 草稿,再调用 IMA Skills 沉淀。

摘要 分类 IMA 回写
2. 协作执行

识别 collaboration_action,经过 Policy Guard 和必要的飞书卡片确认后,调用 Feishu CLI 创建文档、任务、日程或群通知。

飞书文档 任务 日程
3. 内容发布

汇总飞书上下文,必要时查询 IMA,生成 Content Artifact,写入 Payload,再渲染 HTML、PDF、长图、卡片和短链接。

HTML PDF 长图
飞书用户
Hermes Agent
Payload Artifact
分享页 / 短链接

MVP Scope

第一阶段 MVP 范围

MVP 不是完整平台,而是验证飞书身份、Payload 权限和内容发布闭环。

必须完成
  • Next.js + Payload 初始化
  • PostgreSQL 接入
  • 飞书 OAuth/免登登录
  • 飞书 Bot 消息接收
  • Content Artifact Markdown
  • HTML 分享页与短链接
  • 访问日志与审计日志
建议加入
  • 飞书卡片二次确认
  • 飞书群白名单
  • draft -> review -> published 审核流
  • Hermes Worker API Key
  • 基础访问统计页面
暂不做
  • 复杂多 Agent
  • 完整工作流引擎
  • Dify / RAGFlow / Docmost
  • 复杂客户门户
  • 全文搜索门户
  • 微信机器人主入口

Roadmap

分期路线

先验证身份与内容资产闭环,再逐步补 PDF、长图、飞书执行和 IMA 沉淀。

Phase 0

工程骨架与身份验证

搭建 Next.js + Payload + PostgreSQL,实现飞书 OAuth/免登、resolveFeishuUser 和本地超级管理员账号。

3 到 5 天
Phase 1

飞书 Bot + Hermes Gateway

接收私聊与群聊 @ 消息,做幂等、群白名单、基础 intent、conversations/messages/agent_runs。

1 周
Phase 2

Content Artifact + HTML 发布

生成 Artifact,Payload 保存,Next.js 渲染分享页,支持 public/team/password/expiring 和访问日志。

1 周
Phase 3

PDF / 长图 / 卡片

Playwright 渲染 PDF 和长图,接入 OSS,对象存储和异步队列,适配微信分发形态。

1 周
Phase 4

Feishu CLI Adapter

打通飞书文档、群通知、会议纪要和行动项,所有高风险操作进入确认与审计。

1 周
Phase 5

IMA Skills Adapter

打通知识检索、知识沉淀、Artifact 发布后回流 IMA 和 knowledge_refs 记录。

1 到 2 周

Security

权限与审计

企业级 Agent 的第一天就要有权限、确认和审计,不然后面补会很痛。

角色

角色权限
owner系统所有权、租户配置、最高权限
admin用户、团队、客户、内容、分享链接管理
editor创建、编辑、发布内容
member使用 Agent、查看团队内容、生成草稿
client查看授权客户内容
viewer只读访问

高风险动作

  • 发布 public 内容
  • 生成客户可访问链接
  • 同步内容到 IMA
  • 创建或修改飞书任务、日程
  • 群内发送通知
  • 生成不带过期时间的外部链接
  • 批量导出内容
处理方式:高风险动作必须支持二次确认,发布前可进入 review 状态,并记录 audit_logs。

Cloud Resources

已知云资源约束

规划执行时参考本地资源文件,但本页面不展示数据库、SSH、OSS 等敏感凭证。

资源当前结论对方案的影响
数据库已有阿里云 RDS PostgreSQLPayload 第一阶段可以直接规划使用 PostgreSQL,不必先用 SQLite
运行服务器已有一台可登录云服务器Hermes Worker、Next.js/Payload Web、渲染任务可先部署在同一主机
域名ai.fightcool.com,已备案并有安全证书飞书 OAuth/免登回调、Payload Admin、分享页、短链接优先使用该域名
对象存储当前账号已有 OSS 能力,但 ftai-movies 属于其他项目本项目必须新建专用 bucket,不能复用 ftai-movies

第一阶段部署路径

ai.fightcool.com
  /admin              Payload Admin
  /s/:slug            分享页
  /auth/feishu/*      飞书登录/免登
  /api/feishu/events  飞书 Bot 事件入口
  /api/hermes/*       Hermes 内部 API

新建 OSS Bucket 建议

Bucket 名称:hermes-agent-content 或 ai-content-hub
Region:oss-cn-shanghai
读写权限:私有
版本控制:建议开启
服务端加密:建议开启
访问:Payload 校验后签名 URL 或代理下载
重要提醒:不得直接使用 ftai-movies bucket。新 bucket 默认私有读写;公开素材可放入 public/ 前缀,客户文件和内部草稿必须放入受控路径。

Next Actions

下一步工程任务清单

下面这组任务可以直接作为第一轮开发 backlog。

立即确认
  1. 飞书应用形态:企业自建应用还是应用商店应用。
  2. 飞书登录方式:网页 OAuth、飞书内免登,或两者都支持。
  3. Payload 部署方式:同一个 Next.js 服务承载 Admin 和分享页。
  4. 数据库:本地开发 PostgreSQL,生产 PostgreSQL。
  5. 对象存储:新建本项目专用阿里云 OSS bucket。
  6. 第一批角色:owner、admin、editor、member、client。
  7. 第一批内容类型:memo、proposal、meeting_notes、card。
第一批开发任务
  1. 初始化 monorepo。
  2. 创建 Next.js + Payload 项目。
  3. 配置 PostgreSQL。
  4. 定义 Users、Teams、ContentArtifacts、ShareLinks。
  5. 实现飞书 SSO callback 和 resolveFeishuUser。
  6. 实现飞书 Bot 消息入口和 Hermes Gateway。
  7. 实现 Content Artifact 生成、HTML 分享页、权限校验、访问日志和审计日志。

第一阶段验收标准

  • 飞书用户能免登进入内容系统。
  • 飞书消息能映射到 Payload 用户。
  • 用户可以通过飞书 Bot 生成一份 Markdown 内容资产。
  • Payload 后台可以看到该内容资产。
  • 内容资产可以生成 HTML 分享页。
  • 分享页支持 public、team、password、expiring 权限。
  • 所有生成、发布、访问动作都有日志。
  • 微信分发通过复制链接、PDF 或长图完成。

References

参考依据

具体字段和接口仍需以真实应用联调为准。