docs(registry): seed 10 examples + 5 skills (LI SDD M3.1 + M3.3)
對應 .agents/specs/llm-interface/ Milestone 3.1 + 3.3。
registry/examples/ — 10 個可直接 push 的 workflow 範本:
starter: webhook-to-http
common: cron-watcher, llm-classify, rag-search-answer, daily-digest
external: email-summary (gmail+claude+telegram), pdf-to-blocks,
github-issue-bot
advanced: parallel-fanout (trigger_workflow fan-out),
error-retry (try_catch+wait pattern)
每個含:workflow.yaml(可直接 push)+ description.md(解決什麼問題 /
改成你自己的 / 學到什麼)+ tags.json(搜尋用)
registry/skills/ — 5 個 AI playbook(markdown):
build_watcher_workflow — cron + filter + trigger 模式
debug_paused_workflow — claude_api callback paused 怎麼追
migrate_http_to_trigger_workflow — 從 self-fetch 換 trigger_workflow
rag_with_arcrun — KBDB + claude_api 組裝 RAG
add_new_wasm_component — TinyGo 寫 + 部署全流程
兩者差異:
examples = 可直接拿來改的 YAML
skills = 面對 X 問題該怎麼想 + 該用哪個 example
兩者後續:CI 自動同步進 KBDB(type=workflow-example / type=agent-skill),
MCP arcrun_search_examples / arcrun_list_skills 走 KBDB semantic search。
(CI sync 是 M3.4 工作)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# parallel-fanout
|
||||
|
||||
## 解決什麼問題
|
||||
同一份輸入要做多種處理(摘要 / 翻譯 / 分類 / 等)。
|
||||
不想等順序執行(總時長 = 全部加總)→ 並行(總時長 = 最慢一個)。
|
||||
|
||||
## 怎麼觸發
|
||||
```bash
|
||||
curl -X POST https://cypher.arcrun.dev/webhooks/named/parallel_fanout/trigger \
|
||||
-H "X-Arcrun-API-Key: ak_xxx" \
|
||||
-d '{"api_key":"ak_xxx","text":"...","target_lang":"en"}'
|
||||
```
|
||||
|
||||
## 預期行為
|
||||
- 3 個子 workflow 同時啟動,各自獨立執行
|
||||
- 主 workflow 返回所有子 workflow 都 trigger 成功的時間(毫秒級)
|
||||
- 子 workflow 完成的結果**不會回到** parent —— 各自寫各自的 KBDB / 通知
|
||||
|
||||
## 改成你自己的
|
||||
- 增 / 減 dispatch 節點數
|
||||
- workflow_name 換你的真實處理 workflow
|
||||
- 若需要等子 workflow 都完成 → 子 workflow 寫完成標記到 KBDB,parent 後續 cron 撿
|
||||
|
||||
## 變體:等所有子 workflow 完成
|
||||
arcrun 預設 trigger_workflow 是 fire-and-await(paused 也算 success)。
|
||||
若要嚴格「等到完成」,要:
|
||||
1. 子 workflow 末步寫 `done:{request_id}` block 到 KBDB
|
||||
2. parent 加 polling 節點 + wait 重試
|
||||
(M2 之後會出 wait_for_workflows 內建零件)
|
||||
|
||||
## 為什麼這 pattern 重要
|
||||
- arcrun 是 multi-tenant / multi-tier 平台。Fan-out 讓你能 build「主 controller + N 個 worker」架構
|
||||
- 比 promise.all 更穩:每個子 workflow 獨立 paused/resume,互不污染狀態
|
||||
|
||||
## 學到什麼
|
||||
- **Fan-out**:一個節點多條 ON_SUCCESS 邊出去,並行執行
|
||||
- `trigger_workflow` 是內建 orchestration 零件(cypher-executor in-process call,繞 CF self-fetch)
|
||||
- input 變數在 fan-out 時複製給每條分支(不互相影響)
|
||||
Reference in New Issue
Block a user