14 KiB
SY21 — 统一 Expert / Skill / Action 总架构确认稿
状态:总架构确认稿 日期:2026-09-16 关联文档:
History_And_Retrospectives/系统演进旧稿/SY03_知识中心型智能体平台战略.mdHistory_And_Retrospectives/系统演进旧稿/SY15_术语基准本体语义层与对象层.mdHistory_And_Retrospectives/系统演进旧稿/SY20_角色卡与轻量本体架构.mddocs/01_System_Overall/History_And_Retrospectives/系统演进旧稿/SY24_平台架构重思考.md
2026-09-16 术语同步: 本文原先使用
Role / role / role_card作为主术语。 现已确认Role不再作为推荐命名,统一改口为:
- 对外:
专家(Expert) / 技能 / 连接器- 对内:
expert / skill / action / connector / policy文中尚未完全迁移的role、role_card、角色对象层,后续均应分别理解为expert、expert_card、专家对象层。
1. 这份文档要确认什么
在前面几轮讨论后,当前项目需要一份统一总架构结论,用来回答以下问题:
- 平台到底按几层架构来收敛
- 本体、角色卡、对象、技能、Action、连接器分别处于什么位置
- 对外到底暴露什么,对内到底运行什么
- 是否还要继续使用
tool这个词 - 当前代码和文档后续应该往哪个方向迁移
这份文档用于先定平台的总语言、总结构和总对象模型。
2. 最终结论
2.1 平台采用六层总架构
建议正式统一为六层:
- 外部连接层
- 本体与语义上下文层
- 总线与编排层
- 能力层
- 专家对象层
- 工作台与运行治理层
这六层已经足以覆盖:
- 通用数字员工
- 文档类、知识类、分析类能力
- 工业设备监测、安防、巡检、告警、工单等强外部接口场景
2.2 不再把 tool 作为正式命名
命名上正式收敛为:
- 对外:
专家 / 技能 / 连接器 - 对内:
expert / skill / action / connector / policy
结论:
以后不再新增正式架构概念 tool。
tool 只作为历史迁移词存在,用于兼容旧文档、旧字段、旧目录,不再作为未来架构的主词。
2.3 对外默认暴露 专家 + 技能
外部用户默认看到的是:
- 专家
- 技能
- 欢迎语
- starter prompts
- 可完成的任务
因此,用户入口层默认暴露 skill,不暴露 action。
2.4 对内统一使用 action
内部最小执行单元统一叫:
Action
它用于承接:
- 一次原子能力执行
- 一次外部系统调用
- 一次标准化输入输出动作
- 一次可授权、可审计、可编排的执行操作
也就是说:
skill是任务化能力包action是原子执行单元
2.5 要引入本体层,而且是必需的
如果平台后续要扩展到:
- 工业设备运行监测员
- 安防管理员
- 巡检专员
- 告警分析专员
- 工单协调专员
那么本体层是必要项。
原因很简单:
没有本体层,上层对象和工作台体验很快就会被行业对象、事件、状态、规则的差异撕裂。
2.6 专家卡作为专家对象属性存在
角色卡仍然要保留,并作为专家对象的交互属性集存在:
专家卡 = 专家对象的交互属性集
它负责:
- 角色是谁
- 角色如何开场
- 角色如何和用户说话
- 角色建议用户如何开始
- 角色承诺做什么、不做什么
3. 六层总架构定义
3.1 第一层:外部连接层
这一层负责连接真实世界和外部系统。
包括:
- PLC
- SCADA
- MES
- ERP
- CRM
- CMMS / 工单系统
- IoT 平台
- 视频平台
- 文档系统
- 数据库
- API / Webhook / MQ
这一层回答的是:
数据从哪里来,动作往哪里去。
在本项目里,这一层的标准对象是:
connector_definitionconnector_binding
3.2 第二层:本体与语义上下文层
这一层负责定义平台语义。
它承载平台统一语义底座。
当前阶段建议采用轻量本体,先定义:
-
对象类型
- device
- alarm
- work_order
- report
- contract
- knowledge_item
- person
- site
-
动作类型
- monitor
- inspect
- diagnose
- review
- extract
- translate
- escalate
- dispatch
-
状态类型
- running
- warning
- critical
- pending
- approved
- closed
-
关系类型
- belongs_to
- depends_on
- triggers
- resolves
- cites
- produces
这一层回答的是:
系统里到底有什么对象,它们如何关联,允许哪些动作。
3.3 第三层:总线与编排层
这一层负责流转,不负责人格,不负责 UI。
它至少应包含三类总线:
- 上下文总线
- 事件总线
- 能力编排总线
职责包括:
- 角色之间的协作
- skill 对 action 的编排
- action 对 connector 的调用
- 事件进入任务上下文
- 审批和安全边界控制
这一层回答的是:
对象怎么流动,能力怎么协作,任务怎么推进。
3.4 第四层:能力层
这一层正式拆成三类对象:
skillactionpolicy
3.4.1 skill
skill 是面向任务的能力包。
它通常由以下部分组成:
- intent
- prompt template
- action chain
- input schema
- output schema
- artifact schema
- guardrails
可以理解为:
skill = 用户任务入口 + 规则 + 执行编排模板
3.4.2 action
action 是内部原子执行单元。
例如:
read_device_statusquery_alarm_historycreate_work_orderextract_contract_termstranslate_documentgenerate_shift_report
它必须具备:
- 标准输入
- 标准输出
- 权限边界
- 风险级别
- 审计记录
3.4.3 policy
policy 负责定义约束和治理条件,例如:
- 某 action 是否允许自动执行
- 是否需要人工确认
- 哪些角色可以调用哪些 skill
- 哪些 connector 只能读不能写
这一层回答的是:
系统能做哪些事,这些事如何以任务化和原子化两种粒度存在。
3.5 第五层:专家对象层
这是用户真正感知到的执行主体层。
专家对象统一采用一个根模型,例如:
object_definition
专家对象不再分裂成多套根结构。
建议至少包含两类专家:
assistantspecialist
如果后续需要更强的“执行人格化对象”,可补充:
executor
其中:
assistant:默认兜底编排专家specialist:面向领域任务的主专家executor:必要时暴露给用户的窄能力执行专家
这里最关键的变化是:
专家对象不直接等于 action。
专家对象负责承接用户、暴露 skill、组织交互体验;
真正执行时,仍然落到 skill -> action -> connector。
3.5.1 专家卡属于这一层
expert_card 是专家对象属性,不再单列成架构层。
建议最少包含:
- name
- tagline
- greeting
- tone
- opening_prompt
- starter_prompts
- boundaries
- relationship_to_user
3.5.2 专家对象与能力层的关系
专家对象不直接暴露所有 action。
更合适的关系是:
- 专家对象暴露
skill skill编排多个actionaction调用connector
所以:
专家承接用户,skill 组织任务,action 执行动作。
3.6 第六层:工作台与运行治理层
这一层是最终运行现场。
包括:
/homeWorkbench- task
- task_message
- task_object_instance
- object_run
- artifact
- workflow panel
- audit / observe / approval
这一层回答的是:
一条具体任务如何挂载角色、发送消息、运行 skill、触发 action、沉淀产物。
4. 最终对象关系
建议以后统一采用下面这条主链路:
user -> expert -> skill -> action -> connector
再叠加本体层:
ontology -> expert / skill / action / connector
也就是说:
- 用户不是直接找 action
- 用户是进入某个专家
- 专家向用户暴露 skill
- skill 编排 action
- action 调用 connector
- 全程受 ontology 和 policy 约束
5. 对外暴露模型
5.1 对终端用户
默认暴露:
- 专员
- 技能
- 欢迎语
- 任务入口
- 产物结果
默认不暴露:
- action
- connector 技术细节
- 编排细节
- 底层风险策略
5.2 对管理员 / 搭建者
可以暴露:
- skill 绑定了哪些 action
- action 绑定了哪些 connector
- 权限和审批条件
- 输出 schema
- 审计与日志
5.3 对运行时
直接处理:
- action call
- connector call
- context binding
- event routing
- approval gate
- audit log
6. 为什么不再使用 tool
6.1 对外不合适
tool 太像功能按钮集合,不像任务语言,也不像角色语言。
尤其在数字员工和工业智能体场景里,它会把产品体验拉回“工具页”心智。
6.2 对内也不够精确
内部真正需要区分的是:
- 任务级能力包:
skill - 原子执行动作:
action - 外部系统入口:
connector
tool 夹在中间,语义反而模糊。
6.3 正式命名替换
后续正式命名建议统一为:
- 用户可见的
tool->skill - 内部原子执行的
tool->action chatTools->availableSkillscurrentToolKey->currentSkillKeytool_keys->skill_keys- 顶部设置条组件 ->
SkillStrip或ActionStrip - 前端技能定义目录 ->
src/skills/* - 后端原子动作定义 ->
action_definition / action_refs / action_records
说明:
当前仓库已有大量 tool 历史字段,不建议在总架构确认稿阶段立刻全量重命名;
但从现在开始,不再新增新的正式 tool 命名。
7. 角色、技能、Action 的清晰边界
7.1 角色
回答的是:
谁来承接这次任务。
角色包含:
- 身份
- 角色卡
- 协作边界
- 可暴露 skills
- 权限范围
7.2 技能
回答的是:
用户想完成什么任务。
技能包含:
- 任务意图
- 开始条件
- 输入输出约束
- 产物定义
- 对 action 的编排模板
7.3 Action
回答的是:
系统这一步到底执行了什么动作。
Action 包含:
- 原子能力定义
- 风险级别
- 调用协议
- connector 绑定
- 审计信息
8. 角色卡和本体是否重叠
不重叠。
它们都可能写到“能力”相关内容,但目标完全不同。
8.1 本体
服务机器一致性,定义:
- 对象
- 动作
- 状态
- 关系
- 规则
8.2 角色卡
服务人机交互一致性,定义:
- 开场方式
- 角色语气
- 任务入口提示
- 用户对该角色的体验预期
一句话:
本体定义世界,角色卡定义人格。
9. 对当前 Workbench 的直接要求
9.1 欢迎语必须对象属性驱动
当用户挂载某个角色后,Workbench 不应继续显示通用助手欢迎语。
应改为:
- 优先显示当前专家的
expert_card.greeting - 下方展示
starter_prompts - 辅助展示
tagline / opening_prompt / boundaries - 无挂载角色时,再退回默认助手欢迎态
9.2 输入区顶部应体现当前对象
输入区顶部不应只显示一个孤立 chip。
应明确表达:
- 当前对象是谁
- 当前这次输入会触发什么任务语义
- 当前对象是否存在可调设置
并冻结以下交互规则:
+右边一次只显示一个当前对象- 当前对象要么是专员,要么是技能,要么是默认助手
- 专员内部调用技能时,下游技能只进入执行链与右侧面板,不在输入区显性双挂
9.3 右侧面板应是对象面板,不再是旧“工具面板”
建议中性命名:
ObjectPanelExpertPanel
其内容由当前角色和当前运行态决定,而不是由旧页面类型决定。
10. 目标数据结构建议
10.1 角色定义 object_definition
建议继续作为统一根对象,至少补充:
object_kindexpert_card_jsoncapability_profile_jsoncollaboration_profile_jsonontology_binding_json
10.2 技能定义 skill_definition
建议新增独立定义层,至少包含:
idkeylabeldescriptionexposed_to_userinput_schemaoutput_schemaartifact_schemaaction_refspolicy_refsontology_binding
10.3 Action 定义 action_definition
建议新增,至少包含:
idkeylabelaction_typeconnector_refinput_schemaoutput_schemarisk_levelapproval_modeaudit_level
10.4 运行态
建议继续沿用并收敛为:
tasktask_object_instancetask_messageobject_runartifact
其中:
task_object_instance负责挂载当前角色task_message负责持久化会话object_run负责记录 skill 和 action 的执行链
11. 对当前项目的迁移原则
11.1 总原则
先定语言,再改代码。
当前阶段最重要的是把架构口径统一为:
- 六层总架构
- 对外
角色 + 技能 - 对内
skill + action + connector tool正式退出未来命名
11.2 当前阶段不要做的事
- 不要继续新增
tool概念 - 不要再把 action 做成独立页面
- 不要再让路由承担能力身份
- 不要让欢迎语继续写死在页面里
11.3 下一阶段最值得做的事
- 先把当前架构文档同步到这一套口径
- 再把前端欢迎态改为
expert_card.greeting驱动 - 再把
tool相关变量和目录逐步迁移到skill / action - 后续再进入数据库与运行时的对象化升级
12. 一句话总收口
平台以后应统一理解为:
一个以本体为语义底座、以角色为用户承接体、以技能为任务入口、以 Action 为原子执行单元、以 Workbench 为统一运行现场的数字员工与工业智能体平台。