责任定位器
概要
责任定位器负责将流程中的责任(如审批、执行任务)解析为具体用户。常见策略包括:直接指定用户、基于角色的查找、基于组织结构或规则的分配。
当前约束:
- 责任定位器现在只做人岗解析,只允许落到 用户;
- 不再通过责任定位器解析到
服务、Bot、Agent; - 自动化执行能力请通过 服务任务 + 服务提供者 建模。
实现要点:
- 明确责任解析优先级与缓存策略。
- 在未找到匹配执行者时的回退策略(如指定候补、向管理员告警)。
请根据角色和组织模型补充细节,并与 osc_server 的实现对齐。建议补充项:
- 责任解析优先级(显式指定 > 基于角色 > 基于规则);
- 缓存与刷新策略;
- 未匹配时的回退路径与告警机制。
责任定位器实现细节
- 查找算法优先级
- 显式用户(直接指定用户 id);
- 指定角色(按角色从用户池中选择符合条件者);
- 规则引擎(基于字段匹配或复杂表达式,如部门、工位、当前负载);
- 回退策略(配置候补用户、发送管理员告警或进入人工处理队列)。
说明:这里的“候选人”均指人工用户,不包含服务或机器人主体。
- 缓存策略
- 缓存解析结果(短时缓存,TTL 可配置),并在组织结构变更或用户状态变更时触发刷新;
- 对于频繁变化的数据(值班表等),建议采用实时查询并降低缓存时间。
- API 示例
POST /api/resolver/resolve
{
"responsibility": {"type": "role", "value": "approver"},
"context": {"department": "coating", "priority": "high"}
}
Response: { "candidates": [ {"userId":"alice","score": 0.9}, ... ] }
- 审计与可追溯性
- 每次解析记录输入上下文与选定结果,便于事后追踪与问题排查;
- 测试建议
- 单元:优先级规则、规则引擎表达式解析、缓存命中/失效;
- 集成:与用户/组织服务联调、边界条件(无候选人、并发请求)的处理。