配置算子
算子契约包含四个用户可见部分:标识、执行、方法和授权。只配置当前算子目录实际支持的 Runtime 类型。
标识
使用稳定、唯一的 Identifier 和动作明确的名称。
| 字段 | 建议 |
|---|---|
| 名称 | 只描述一个操作,例如“读取客户档案” |
| Identifier | 稳定机器名;被引用后不要随意修改 |
| 描述 | 说明何时使用,以及重要的不适用场景 |
| 分类/标签 | 便于在目录中可靠发现 |
| 状态 | 只有启用的算子可供调用方使用 |
执行方式
内置 Worker 算子
内置算子在 GeniSpace Worker 中执行。用户从目录选择并配置,Runtime 实现由平台管理。不要为了修改代码而复制内置定义;应配置它开放的方法输入、连接和权限。
REST API 算子
REST API 算子用于调用外部 HTTPS 服务,需要配置:
- Base/Server URL 与方法路径;
- HTTP 方法和 Content Type;
- Header、Path、Query 和 Body 映射;
- 用于认证的连接或 Secret 引用;
- 超时和安全重试策略;
- 预期成功状态与输出映射。
部署相关值使用环境变量或 ConfigMap 引用。不要把 Access Token 写入描述、样例值或导出的工作流 JSON。
数据源操作
数据源操作通过已配置连接执行。凭据归连接管理,操作负责类型化参数和预期输出。请使用实际运行工作流的空间与角色测试访问权限。
方法
一个算子可以开放一个或多个方法。每个方法应对应一项完整操作,并定义:
{
"name": "getCustomer",
"description": "按平台客户 ID 读取一位客户",
"inputSchema": {
"type": "object",
"required": ["customerId"],
"properties": {
"customerId": {
"type": "string",
"description": "稳定客户 ID"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"required": ["found"],
"properties": {
"found": { "type": "boolean" },
"customer": { "type": ["object", "null"] }
}
}
}
优先使用编辑器生成的表单。支持 JSON Schema 编辑时,也应保持与界面校验能力一致。
输入 Schema 规则
- 方法输入根节点使用
object。 - 字段放在
properties下,真正必填的字段写入required。 - 一致使用
string、number、integer、boolean、array或object。 - 封闭取值集合使用
enum。 - 数组定义
items,嵌套对象定义properties。 - 有意区分未传、
null、空字符串和空数组。 - 不允许未知输入时设置
additionalProperties: false。 - 每个业务字段都应有对工作流作者和智能体有意义的说明。
除非远端 API 的确是动态契约,否则不要只定义一个无类型的 payload 对象。
输出 Schema 规则
返回下游节点或智能体可使用的事实。稳健结果通常能区分:
- 成功并有数据;
- 成功但无匹配;
- 参数校验失败;
- 授权失败;
- 远端或 Runtime 失败。
不要只返回“操作完成”。适用时应提供稳定 ID、影响记录数、状态和安全错误信息,并排除 Secret 及调用方无权查看的字段。
映射
在 WorkflowStudio 中,把上游输出路径映射到每项输入。编辑器会校验类型兼容性,但无法判断业务含义。需要测试 null、空数组、嵌套对象、日期和数值转换。
REST API 算子应把传输细节与业务输出分开,例如把远端响应映射成稳定输出对象,不要让每个工作流理解供应商专属信封。
超时与重试
- 算子超时应小于父任务超时。
- 只有操作安全时,才重试临时网络和
5xx错误。 - 没有幂等键时,不要自动重试非幂等写操作。
- 参数和授权错误应直接结束。
- 提供足够诊断元数据,但不暴露凭据或机密负载。
授权
启用算子不会绕过访问控制。调用方必须具备算子、连接、数据集/数据源和目标空间资源的权限。智能体工具目录还会按智能体形态、Chat 模式、应用本地 Provider 和权限进一步筛选。
验证清单
- Identifier 唯一且稳定。
- 输入输出 Schema 明确。
- 认证使用托管连接或 Secret 引用。
- 已测试成功、空结果、参数错误、无权限、超时和远端失败。
- 写操作重试具有幂等性。
- 日志和结果不暴露敏感值。
- 破坏性契约变更前已经检查现有工作流和智能体。