client-finder/ASYNC.md

1.6 KiB
Raw Permalink Blame History

Client Finder Async Skill

异步执行 client-finder 查询,不阻塞主 session

触发方式

方式 1: 通过 sessions_spawn 调用

sessions_spawn({
  runtime: "subagent",
  mode: "run",
  task: "client-finder-async",
  label: "client-finder: farm equipment Dallas",
  agentId: "main",
  cleanup: "keep"
})

方式 2: 直接调用脚本

cd ~/clawd/skills/client-finder
CLIENT_KEY=sk_xxx.yyy bun run scripts/run.ts "farm equipment Dallas" "us"

输入参数

通过 task 传递 JSON

{
  "query": "farm equipment parts Dallas",
  "country": "us",
  "client_key": "sk_ae28fc4e.2e0b218cf22ff1a27d52ab4601e1be5e1436f6932bd6282f"
}

输出

  • 立即返回: workflow ID 和状态
  • 异步推送: 完整结果通过 webhook 推送

并发优势

方式 阻塞主 session 并发能力 结果推送
直接调用 单线程 webhook
sub-agent 多线程 webhook

批量查询示例

// 并发执行多个查询
const queries = [
  "farm equipment Dallas",
  "tractor parts Texas",
  "agricultural machinery DFW"
];

for (const query of queries) {
  sessions_spawn({
    runtime: "subagent",
    mode: "run",
    task: `client-finder: ${query}`,
    label: `client-finder: ${query}`,
    cleanup: "keep"
  });
}
// 主 session 立即空闲,可以处理其他请求

监控子任务

# 查看活跃的子 agent
/subagents list

# 查看特定子任务的日志
/subagents log <id>

# 停止子任务
/subagents stop <id>