Interfaces
Interface 是跨对象类型共享的能力形状。它声明"实现这个接口的对象都具备哪些属性与动作",让 Agent 可以针对能力工作,而不是针对某个具体的对象类型工作——这是 Ontology 保持精简、Agent 逻辑保持复用的关键抽象。
Interface 定义的是"能力的形状",不是"对象的种类"。例如所有 WorkItem 都可以被分配、评论、关闭——这三种能力不属于某一个对象类型,而属于实现了 Assignable、Commentable、Closable 接口的任何对象。Agent 只需要理解接口一次,就能操作所有实现它的对象。
什么是 Interface
在 AIDC 的 Ontology 五个核心抽象中,Object Type 回答"企业里有什么实体",Action Type 回答"允许发生什么变更",而 Interface 回答的是:哪些能力是跨对象通用的。
一个 Interface 由三部分组成:
共享属性Shared Properties实现该接口的对象必须具备的属性,例如 Assignable 要求对象有 assignee 与 assigned_at 属性。属性是 Agent 读取对象状态的统一入口。
能力声明Capability Signatures以方法签名风格声明的可执行能力,例如 assign(assignee: Agent | Employee)。能力声明只定义形状,不定义实现——实现由绑定的 Action Type 提供。
实现清单Implementing Object Types声明哪些 Object Type 实现了该接口。实现清单由中央 Ontology 管理平面维护与版本化,部门 Cell 不能私自增删。
用伪代码表达,一个 Interface 大致是这样的形状:
interface Assignable {
property assignee: Agent | Employee
property assigned_at: Timestamp
action assign(assignee: Agent | Employee) // bound to AssignAgent
action unassign() // bound to AssignAgent (revoke)
}
object WorkItem implements Assignable, Commentable, Closable, Auditable
object Decision implements Assignable, Commentable, Closable, Auditable, Shareable
为什么需要 Interface
没有 Interface 的 Ontology 会很快出现两类退化:要么每个对象类型重复定义一套几乎相同的动作(WorkItem 有"分配工单",Decision 有"分配决策",Lead 有"分配线索",语义相同、定义三份),要么 Agent 的执行逻辑与具体对象类型强耦合,新增一个对象类型就要重写一遍 Agent 的处理代码。Interface 同时解决这两个问题:
- 避免重复定义 — "可被分配"只定义一次。任何对象类型声明实现
Assignable,就自动获得统一的属性形状与动作入口,不需要为每个对象重新设计分配语义。 - Agent 针对能力工作 — Agent 的任务逻辑可以写成"把所有分配给我的、尚未关闭的对象按优先级处理",而不是"查询 WorkItem,再查询 Decision,再查询 Lead"。Context Gateway 按接口检索对象,Agent 的同一段执行逻辑可以覆盖所有实现者。
- 新对象零成本接入 — 当 Ontology 新增一个对象类型(例如
Contract),只要它实现Assignable与Commentable,现有 Agent 无需任何修改就能分配它、评论它。Ontology 的演化不会级联到每个 Agent Cell。 - 权限按能力授予 — 权限模型可以在接口粒度授权:"该 Agent 对本部门所有 Assignable 对象有分配权",比逐对象类型授权更稳定、更可读。
示例 Interface 参考
以下五个接口是 AIDC 建议的起步集合,覆盖了 MVP 七个对象类型的绝大多数通用能力。能力声明采用方法签名风格,括号内为输入,→ 后为提交的 Action Type。
Assignable可分配对象可以被分配给一个 Agent 或员工,并追踪分配状态。能力:assign(assignee: Agent | Employee) → AssignAgent;unassign() → AssignAgent。共享属性:assignee、assigned_at。典型实现者:WorkItem、Decision、Customer/Lead。
Commentable可评论对象可以挂接结构化评论,供人和 Agent 留下判断与上下文。能力:comment(body: Text, author: Agent | Employee) → AddComment;list_comments() → Comment[]。共享属性:comment_count、last_commented_at。典型实现者:WorkItem、Decision、Customer/Lead、File。
Closable可关闭对象有明确的生命周期终点,关闭时必须给出结论。能力:close(resolution: Text) → CloseItem;reopen(reason: Text) → CloseItem (revert)。共享属性:status、closed_at、resolution。典型实现者:WorkItem、Decision。
Auditable可审计对象的每次状态变更都写入 Action Log,且历史可按时间回放。能力:history(range?: TimeRange) → ActionLogEntry[];last_modified_by() → Agent | Employee。共享属性:version、updated_at。典型实现者:所有承担权限边界或被 Action Type 作为目标的对象——在 AIDC 框架中即全部七个 MVP 对象类型。
Shareable可共享对象(或其摘要)可以通过受控通道跨部门共享。能力:share(target: Department, scope: summary | full) → ShareContext;revoke_share(target: Department) → ShareContext (revoke)。共享属性:shared_with、share_scope。典型实现者:File、Decision、Customer/Lead。跨部门读取必须通过 Ontology link 或显式共享对象,Shareable 就是"显式共享对象"的标准形状。
接口与 MVP 对象类型的实现矩阵如下(● = 实现):
| Object Type | Assignable | Commentable | Closable | Auditable | Shareable |
|---|---|---|---|---|---|
WorkItem | ● | ● | ● | ● | — |
Decision | ● | ● | ● | ● | ● |
Customer/Lead | ● | ● | — | ● | ● |
File | — | ● | — | ● | ● |
Agent | — | — | — | ● | — |
Department | — | — | — | ● | — |
ActionLog | — | — | — | ● | — |
Marketing Agent 发现一条新 lead,提交 CreateWorkItem 创建跟进工单。因为 WorkItem 实现了 Assignable,Strategy Agent 的"处理所有分配给我的 Assignable 对象"逻辑无需任何修改即可接手该工单;因为 Customer/Lead 实现了 Shareable,Marketing 可以只共享 lead 摘要而非完整档案,供 Strategy 生成 go/no-go 决策。
Interface 与 Action Type 的关系
Interface 与 Action Type 是声明与实现的关系:Interface 声明能力的形状,Action Type 是能力的受控提交通道。二者的分工可以概括为一张表:
| 维度 | Interface | Action Type |
|---|---|---|
| 回答的问题 | 这类对象能做什么 | 这次变更如何被允许、校验与记录 |
| 定义内容 | 共享属性 + 能力签名 | 输入、目标对象、前置权限、提交后果 |
| 面向角色 | Agent 的任务逻辑与上下文检索 | 权限校验、审计与状态变更执行 |
| 审计关系 | 本身不产生记录 | 每次提交写入 Action Log |
| 示例 | Assignable.assign(assignee) | AssignAgent(MVP 五个 Action Type 之一) |
执行链路上,Agent 调用接口能力时发生三步解析:
- Agent 对一个
Assignable对象调用assign()——它不需要知道对象的具体类型。 - Ontology 把该能力解析到绑定的 Action Type(
AssignAgent),并按目标对象的具体类型加载校验规则与权限前置。 - Action 提交、写入 Action Log,绑定发起者、Agent 版本与上下文包版本。
Interface 不是绕过权限的捷径。"对象实现了 Shareable"只意味着它具备被共享的形状;本次共享是否被允许,仍由 Policy & Identity Plane 按发起者身份、目标部门与对象权限逐次裁决。能力形状与能力授权是两回事。
演化时的兼容性规则
Interface 位于 Agent 逻辑与对象类型之间,它的任何变更都会同时影响两侧。因此 Interface 的演化必须走 Evolution Loop 的受治理路径,并遵守以下兼容性规则:
| 变更类型 | 兼容性 | 处理方式 |
|---|---|---|
| 新增一个 Interface | 兼容 | 直接发布;已有 Agent 与对象不受影响 |
| 对象类型新增实现某 Interface | 兼容 | 纯增量变更;现有 Agent 自动获得对新对象的操作能力 |
| Interface 新增可选属性或可选能力 | 兼容 | 新能力须有默认行为;旧版本上下文包仍可回放 |
| 修改已有能力的签名或语义 | 破坏 | 禁止原地修改;发布新版本接口(如 Assignable v2),旧版进入弃用期 |
| 移除能力,或对象类型撤销实现 | 破坏 | 必须有 proposal、approval 与 rollback 方案,公告弃用期后才能移除 |
| 收紧能力的权限前置 | 受控 | 属于策略变更而非 schema 变更,走 Policy Plane 审批,不改接口版本 |
Interface 的版本由中央 Ontology 管理平面统一治理:每个上下文包与 Action 提交都绑定语义版本,保证历史可回放;schema 更新失败时回滚到上一稳定版本。Agent 可以提案新增或修改 Interface,但不能自动批准——接口是跨部门的公共合约,破坏性变更必须保留人工审批。
实践上,判断一个能力应该进 Interface 还是留在单个对象类型上,可以用一条简单准则:至少有两个对象类型需要同样的语义,才值得抽成接口。过早抽象会让 Ontology 设计过重——这与"从 6-8 个对象类型开始,不做大一统建模"是同一条纪律。
相关阅读
- Object Types — 接口的实现者:MVP 七个核心对象类型
- Action Types — 接口能力背后的受控提交通道
- Action Log —
Auditable接口的落地形态 - Evolution Loop — Interface 变更必须经过的治理闭环