Team AI 整个建模流程怎么讲

先把“建模”和“Agent 编排”分开

  • 建模回答的是:系统里有哪些稳定对象、关系、语义和约束。
  • Agent 编排回答的是:目标怎么进入系统、怎么被路由、怎么执行、怎么回写、怎么治理。
  • 在 Team AI 里两者相关,但面试时最好拆开讲;这篇只讲建模,编排单独看 Team AI 里 Agent 编排怎么讲

先说结论

这类问题不要讲成:

我们先建表,再写接口,再做页面。

这样太流水线,也没有建模感。

更好的讲法是:

我们是先从真实业务对象和协作关系出发,先想清楚系统里有哪些核心对象、它们之间是什么关系、用户会围绕这些对象做什么动作,然后再把它们落成领域模型、API 资源模型,最后再落到前端的页面模型和交互模型。

这句话一出来,整个层次就对了。


一分钟版本

Team AI 的建模不是从页面开始的,也不是从数据库表开始的。结合当前项目,我会先找一级上下文,也就是 project,然后再往下拆 task、session、board、card、logical entity、diagram 这些稳定对象。logical entity 负责沉淀规范化业务节点,diagram 负责把节点和关系画成结构,发布以后再沉淀成 knowledge graph 给项目页和 AI 消费。后端把这些对象做成领域模型和 HATEOAS 资源,前端再沿着资源关系去组织页面、状态和导航,所以整个流程更像是业务模型 资源模型 UI 模型,而不是反过来。


两到三分钟版本

1. 先从业务场景出发

我们做这个项目时,最开始不会先想页面长什么样,而是先想团队在这个系统里到底要协作什么。因为 Team AI 不只是聊天,而是项目协作型产品,所以最稳定的东西不是某个弹窗或者某张表,而是项目、任务、会话、看板、逻辑实体、图谱这些业务对象。

2. 再识别核心对象和关系

接下来会看这些对象之间的关系。比如项目是一个比较强的业务上下文,很多东西都挂在项目下面;会话、任务、看板都属于项目;逻辑实体属于项目语义层;diagram 会把这些实体和关系画出来;diagram 发布之后又会沉淀成 knowledge graph。这里其实已经不是在想 UI 了,而是在想系统的骨架。

3. 再定义对象上的动作

对象有了以后,还要想每个对象上到底发生什么动作。比如项目能不能创建任务、查看会话、进入看板;逻辑实体能不能新增、分类、维护 definition;diagram 能不能保存 draft、更新节点和边、发布成 graph;知识图谱能不能查看节点和关系。这一步很重要,因为业务系统不是“有什么数据”这么简单,更关键的是“这些数据允许发生什么动作”。

4. 再落到后端资源模型

后端这边不是简单把对象做成表和 DTO,而是把它们包装成资源模型,通过 HATEOAS 把关系和动作一起暴露出来。这样返回给前端的就不只是字段,还包括当前资源能跳到哪里、能做什么动作。这个设计对前端很关键,因为前端看到的不只是静态数据,而是可导航、可操作的资源。

5. 最后落到前端页面模型

前端这边再基于这些资源去做页面建模。比如当前项目里已经有 diagrams、logical entities、knowledge graph、conversations 这些独立工作面,本质上不是随便切几个 tab,而是在消费不同资源和不同关系。对前端来说,我关心的不是某个页面对应哪个接口,而是当前页面对应的核心资源是什么,它依赖哪些关系,页面上的动作来自哪些资源能力。这样页面结构会更稳定。


结合当前项目功能讲,会更像真项目

1. Project 是一级上下文,不是普通详情页

在当前项目里,project 下面已经明确挂了 diagrams、logical-entities、knowledge-graph、conversations 这些资源,所以 project 不是一个名字加描述的详情页,而是整个建模与协作的上下文容器。

2. Logical Entity 是建模基座

当前项目里逻辑实体不是一个随手写的 label,而是有 type、subType 和 definition 的规范化对象。你可以把它理解成“先把业务节点命名和分类做对”,这样后面 diagram 和 graph 才不会飘。像现在项目里就已经能区分 EVIDENCE、PARTICIPANT、ROLE、CONTEXT 这几类语义。

3. Diagram 是建模工作台

当前项目里 diagram 不是静态展示,而是真的可编辑、可保存 draft、可更新节点和边的工作面。也就是说,建模不是在文档里画个草图,而是在系统里把节点关系维护成一份可持续演进的结构。

4. Knowledge Graph 是发布后的消费层

这也是当前项目里最适合拿出来讲的地方:diagram 不是画完就结束,而是可以发布成 knowledge graph。项目首页已经直接消费 knowledge-graph 资源,把节点和边可视化出来。这样建模结果不是只给人看,也开始变成系统和 AI 可消费的上下文。

5. 前端不是建模的旁观者

当前项目里前端并不是等后端把对象都定完再来接页面,而是直接承接 diagrams、logical entities、knowledge graph 这些建模工作面。也就是说,前端参与的不只是展示,而是“模型如何进入系统、如何被编辑、如何被消费”的整条链路。


如果面试官问“你说的建模,具体是怎么一步步做的”

你可以直接按下面这 5 步说。

第一步:找稳定对象

我先不看页面,而是先找这个系统里相对稳定的业务对象。因为页面会变,交互会变,但像项目、任务、会话、消息这些东西是相对稳定的。只要对象找准了,后面很多设计都会顺。

第二步:找关系

对象找完之后,我会重点看它们之间怎么组织。比如谁是谁的上下文,谁依附于谁,谁会影响谁。因为复杂系统往往不是难在对象多,而是难在对象之间的关系多。

第三步:找动作

接着我会看每个对象上会发生哪些关键动作,而不是只看字段。比如任务不只是有标题、状态这些字段,更关键的是它会流转、阻塞、评审、完成。动作比字段更接近真实业务。

第四步:抽 API/资源

然后再把这些对象和动作映射成后端资源。这里不是单纯想“接口怎么命名”,而是想“客户端应该怎么理解这个对象、怎么发现它的下一步能力”。

第五步:落到前端页面和状态

最后前端再把资源组织成页面和交互。页面不是建模的起点,而是建模的落点。这样做出来的页面逻辑会更清楚,也更容易跟业务保持一致。


最适合口语表达的一段

你可以直接背这一段:

我们这个项目的建模流程,简单说不是从数据库或者页面开始,而是从业务对象开始。先看团队协作里最稳定的核心对象是什么,比如 project、task、session、logical entity、diagram、knowledge graph;再看这些对象之间的关系,比如 task 和 session 都挂在 project 下面,logical entity 提供规范化业务节点,diagram 负责表达节点关系,diagram 发布以后再沉淀成 knowledge graph;然后再看每个对象上有哪些关键动作。等这些想清楚以后,后端会把它们做成资源模型,把关系和动作暴露出来;前端再基于这些资源去做页面和交互。所以整个过程其实是业务建模先行,页面只是最后一层表达,不是起点。


如果面试官继续追问“那你前端参与建模了吗”

这题很关键,不要把自己说成纯消费方。

推荐回答

我觉得前端一定是参与建模的,只是参与的层次不完全一样。后端可能更偏领域对象和资源暴露,但前端会参与页面模型、交互动作和消费抽象的建模。比如一个页面到底围绕哪个核心资源组织,哪些能力应该做成独立资源关系,哪些状态应该在页面层收敛,这些其实都是前端建模的一部分。如果前端只是等接口来,那最后页面会很碎,也很难持续迭代。


如果面试官问“这个流程和普通 CRUD 项目有什么不同”

推荐回答

普通 CRUD 项目很多时候是从表单和列表反推接口,再从接口反推数据结构,建模相对会浅一些。Team AI 这种项目不太一样,因为它里面有项目协作、任务流转、会话上下文、知识图谱这些持续变化的业务关系,所以如果只按页面和接口去推,很容易做着做着就乱了。我们更强调先把业务对象、关系和动作想清楚,再落到资源和页面,这样系统骨架会更稳。


如果面试官问“为什么动作比字段重要”

推荐回答

因为字段只是对象的静态描述,但业务系统真正复杂的地方通常发生在动作上。比如一个任务的标题和优先级都不难建模,真正难的是它什么时候能进入开发、什么时候必须进入评审、被阻塞后怎么处理、和看板规则怎么对齐。所以如果只盯着字段,最后做出来的系统通常会偏静态,看起来数据很完整,但业务张力不够。


你可以举的例子

例子一:项目

项目不是一个名字加描述这么简单,它其实是很多东西的上下文容器。任务、会话、知识图谱、看板都可以挂在项目下面。所以项目是一个很强的一级对象。

例子二:任务

任务最关键的不是几个字段,而是状态流转和工作流语义。它在系统里不是孤立数据,而是会进入看板、被不同角色处理、产生痕迹和上下文。

例子三:会话

会话也不是简单消息列表。它背后有参与者、有消息流、有 AI 响应、可能还会和项目上下文产生关系。所以它更像一个持续互动的业务对象。

例子四:知识图谱

知识图谱其实是在给项目里的结构化知识建模,让系统不只是存文档,而是知道节点和边之间的关系。这个对后续 AI 消费和上下文组织都很重要。

例子五:图和图谱的关系

如果想结合当前项目讲得更具体,我会说 diagram 更像建模工作台,knowledge graph 更像发布后的消费结果。前者偏编辑,后者偏消费;这样一拆,系统就既有建模入口,也有稳定输出层。


如果你想把“建模流程”讲得更像高级前端

你可以加一句:

对我来说,前端建模不是画几个 TypeScript type,而是决定页面围绕什么资源组织、动作怎么表达、状态怎么收敛、哪些关系应该在页面层显式存在。

这句话很加分。

因为它说明你理解的建模,不是只停留在接口类型定义。


最容易踩的坑

1. 不要把建模讲成画 ER 图

面试官问建模流程,不一定真想听数据库。

他更想听你是不是有“从业务到系统”的思维。

2. 不要只讲后端

虽然领域建模听起来更像后端话题,但你是前端,最后一定要落回:

  • 前端如何参与
  • 前端如何消费
  • 前端如何继续做页面模型抽象

3. 不要一上来就说 DDD

可以讲,但不要先讲。

先讲人话:

  • 对象
  • 关系
  • 动作
  • 资源
  • 页面

讲到一半再说:

其实这套思路和 DDD 会比较接近。

这样更自然。


一个更完整、更自然的收口版本

所以如果让我总结 Team AI 的建模流程,我会说它是一个从业务对象出发的逐层映射过程。先识别 project、task、session、logical entity、diagram、knowledge graph 这些核心对象;再梳理对象之间的关系和动作;后端把它们沉淀成资源模型;前端再基于资源去组织页面、交互和状态。这样做的好处是系统不会被页面牵着走,而是先有稳定的业务骨架,再去长出 UI。对复杂项目来说,这个顺序很重要。

如果面试官追问“那 Agent 编排怎么讲”

我会明确把这个问题单独拆出去。建模回答的是“系统里有什么对象、关系和语义”,Agent 编排回答的是“目标怎么进入系统、怎么路由 specialist、怎么触发 workflow、怎么回写 trace 和治理规则”。在 Team AI 里我会单独用 Team AI 里 Agent 编排怎么讲 讲这条链,而不会和建模混成一件事。

相关拆解

关联逐字稿