快速接入数字员工
这份指南使用应用后端身份跑通一个通用文本任务。示例中的 URL、员工 UUID 和凭证需要替换成自己的配置。
1. 在 Console 配置
在“应用管理”中登记应用,打开应用详情:
- 保持应用全局状态启用,在“概览”开启 API 接入。
- 在“员工授权”新增授权,选择员工;同时授予“创建任务”和“读取使用配置”,或选择“全部操作”。设置所需有效期。
- 在“服务凭证”生成应用服务凭证,保存一次性显示的完整
fc_app_Key。
平台管理员还需确保员工在线、Adapter 支持应用任务,并在员工的“执行能力”中配置任务实际需要的工具。通用文本任务不要求 TikHub;采集任务使用 TikHub 时,授权配置在员工处。
应用只有 API 调用需求时,可以登记为 API 应用。需要从 FunClaw 授权跳转的独立网站,另外配置“登录配置”和组织/空间应用使用权限。
2. 配置应用后端
在应用服务端配置环境变量。以下使用 Bash 和 curl;FUNCLAW_API_ORIGIN 应指向 API 服务,而非 Front 或 Console 页面。
export FUNCLAW_API_ORIGIN='http://localhost:8081'
export FUNCLAW_APPLICATION_API_KEY='<完整的 fc_app_ 应用服务凭证>'凭证只供应用后端使用,不放入 NEXT_PUBLIC_*、浏览器代码、任务 input 或日志。完整凭证仅在签发时显示一次;丢失后重新签发。
先检查身份,再查询可使用的员工:
curl --fail-with-body "$FUNCLAW_API_ORIGIN/api/open/v1/applications/me" \
-H "Authorization: Bearer $FUNCLAW_APPLICATION_API_KEY"
curl --fail-with-body "$FUNCLAW_API_ORIGIN/api/open/v1/applications/me/employees" \
-H "Authorization: Bearer $FUNCLAW_APPLICATION_API_KEY"身份接口直接返回 {applicationId, clientId, code, displayName};员工列表返回 {items: [...]}。选择同时具有 TASK_CREATE 和 READ 的员工,保存其 id。响应字段见调用接口。
3. 提交任务
export EMPLOYEE_ID='<员工列表返回的 id>'
curl --fail-with-body "$FUNCLAW_API_ORIGIN/api/open/v1/applications/me/tasks" \
-H "Authorization: Bearer $FUNCLAW_APPLICATION_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: summary:example-001' \
--data "{\"employeeId\":\"$EMPLOYEE_ID\",\"title\":\"概括产品介绍\",\"instructions\":\"概括 input.text,结果写入 output.summary。读取 FUNCLAW_APPLICATION_TASK_INPUT_PATH 中的输入信封,把包含原 inputHash 和 output 的 JSON 对象写入 FUNCLAW_APPLICATION_TASK_RESULT_PATH。\",\"input\":{\"text\":\"FunClaw 为独立应用提供数字员工任务执行服务。\"}}"成功返回 HTTP 201,响应中的 id 是后续查询使用的任务 ID。初始状态通常为 PENDING。
相同业务请求发生网络超时或重试时,复用同一个 Idempotency-Key 和相同请求内容。修改员工、标题、指令或输入后使用新键。同一个键不能代表不同任务。
4. 查询状态与结果
export TASK_ID='<提交响应的 id>'
curl --fail-with-body "$FUNCLAW_API_ORIGIN/api/open/v1/applications/me/tasks/$TASK_ID" \
-H "Authorization: Bearer $FUNCLAW_APPLICATION_API_KEY"应用后端定期查询,直到 status 为 COMPLETED、FAILED 或 CANCELLED。建议从 3–5 秒轮询开始,遇到临时网络故障退避重试;页面关闭不应终止应用后台对已提交任务的跟踪。
COMPLETED 后读取结果:
curl --fail-with-body "$FUNCLAW_API_ORIGIN/api/open/v1/applications/me/tasks/$TASK_ID/result" \
-H "Authorization: Bearer $FUNCLAW_APPLICATION_API_KEY"结果直接返回 JSON 对象,例如:
{
"assignmentId": "00000000-0000-4000-8000-000000000001",
"applicationId": "00000000-0000-4000-8000-000000000002",
"output": {
"summary": "FunClaw 为独立应用提供数字员工服务。"
}
}校验任务 ID、应用 ID 和约定的结果字段后,完成本应用的业务处理。output 的业务结构由应用与员工执行逻辑约定,平台不自动生成上述摘要字段。
5. 按需取消
curl --fail-with-body -X POST \
"$FUNCLAW_API_ORIGIN/api/open/v1/applications/me/tasks/$TASK_ID:cancel" \
-H "Authorization: Bearer $FUNCLAW_APPLICATION_API_KEY"运行中任务的取消需要 Adapter 确认。取消请求成功后继续查询,直到任务进入终态。网络请求超时仅代表客户端停止等待,不能据此判断任务已经取消。
接下来阅读输入与结果,为具体业务约定执行指令、结果字段与回执。