数字员工输入与结果
应用通过 instructions 描述本次工作,通过 input 提供结构化参数,通过 output 接收结果。平台不识别采集账号、标签维度或业务表;这些由应用与员工执行逻辑约定。
选择交付方式
| 内容 | 推荐方式 |
|---|---|
| 少量文本、分析参数、结果摘要 | 直接使用通用任务的 JSON input/output。 |
| 大文件、完整采集数据、图片、逐条打标结果 | 使用应用自己的受控接口传递;通用结果返回业务 ID、计数和回执摘要。 |
| 组织资产读取或写入 | 通过对应资产服务及组织使用授权校验,遵循该服务的资源归属规则。 |
任务输入信封和结果提交受 64 KiB 限制,包含信封字段开销。不要把图片或视频 Base64 塞进 JSON。
指令与 Skill
任务接口不需要为每个 Skill 新增字段。应用可在 instructions 中要求员工使用已安装的 Skill,并约定 input 与结果结构。
通用文本处理可以直接执行。已有 Skill 如果依赖旧业务接口、组织身份或专用回调,需要适配对应的输入/交付方式;不能认为所有 Skill 均可零修改接入。
例如当前独立封面应用使用 $cover-materal-collector-new 采集、$cover-material-tagging-new 打标。它们的业务字段属于该应用,其他应用可以约定自己的参数。
员工侧执行约定
以下内容面向编写执行指令或适配 Skill 的开发者。应用后端仍只调用公开任务接口。
Adapter 会为任务设置:
| 环境变量 | 用途 |
|---|---|
FUNCLAW_APPLICATION_TASK_INPUT_PATH | 当前任务输入信封文件路径。 |
FUNCLAW_APPLICATION_TASK_RESULT_PATH | 当前任务结果文件应写入的路径。 |
先读取输入信封:
{
"version": 1,
"assignmentId": "00000000-0000-4000-8000-000000000001",
"applicationId": "00000000-0000-4000-8000-000000000002",
"inputHash": "<输入信封中的原始 hash>",
"instructions": "本次执行指令",
"input": {"businessId": "item-001"}
}执行完成后,将下面的 JSON 对象写入结果路径:
{
"inputHash": "<与当前输入信封完全相同的 hash>",
"output": {
"businessId": "item-001",
"received": true
}
}保留本次 inputHash 原值,不自行重算,不复用其他任务的结果。output 必须是对象,不能只在对话中说“完成”。Adapter 校验并提交结果,取得保存回执后才报告任务完成。
应用通过 /tasks/{id}/result 读到的是 {assignmentId, applicationId, output};无需给平台结果回传接口提供应用服务凭证,也无需管理员工侧任务凭证。
业务回调与回执
对于采集、图片交付或逐条打标,应用可以在 input 中提供业务接口地址、业务任务 ID 和本轮专用的临时凭证。员工的执行逻辑负责调用这些接口,校验真实回执,再将摘要写入平台任务结果。
这属于应用自己的业务协议。FunClaw 通用任务接口没有 callbackUrl 字段,也不会自动向 input 中的 URL 发通知。
应用提供的接口应校验临时凭证与业务任务归属,支持重复提交,并限制有效期和操作范围。接口地址必须能从员工 Adapter 所在机器访问;localhost 指员工机器本身,不一定是应用服务器。
应用服务 Key 不放进 input。员工执行平台工具时使用 Adapter 管理的任务身份,Skill 应保留该绑定,不用应用 Key 或宿主机长期凭证覆盖。
判断业务成功
应用后端应完成这些检查:
- 平台任务进入
COMPLETED,结果中的assignmentId、applicationId与本次任务相符。 output满足约定的字段和类型,业务 ID 与本次请求相符。- 使用业务回调时,应用数据库中存在匹配的真实回执,条数、版本和完整性满足业务要求。
- 幂等完成入库、审核或结算,释放应用自己的批次占用。
例如打标结果进入 REVIEW_REQUIRED 表示等待人工审核,不等于自动正式入库。聊天文本、单张图片已上传或模型声称成功,都不能代替完整结果与回执。
当前执行范围
通用应用任务使用独立临时工作目录、JSON 输入和结果,当前接口未开放固定项目绑定、TaskFile 或共享盘挂载参数。需要使用组织资源时,应使用对应资源服务的授权入口,不能通过 input 中任意 orgId 或本机路径获得访问权。
临时目录用于任务工作目录与会话隔离,不是操作系统文件沙箱。执行环境和可运行的 Skill 由平台维护。