Files
Arcrun/registry/examples/llm-classify/description.md
T
Leo 388c193ae7 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>
2026-05-16 16:33:54 +08:00

36 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# llm-classify
## 解決什麼問題
LLM 結構化輸出最常見場景:把自由文字分到固定 category。
claude_api 用 `_recipe_output_format: json` 自動 parse + validate 必填欄位。
## 怎麼觸發
```bash
curl -X POST https://cypher.arcrun.dev/webhooks/named/llm_classify_example/trigger \
-H "X-Arcrun-API-Key: ak_xxx" \
-d '{"api_key":"ak_xxx","text":"How to deploy Cloudflare Workers in production?"}'
```
## 預期結果
- claude 回 JSON `{category, confidence, reason}`
- KBDB 寫一筆 blocktags_json 含 `category:tech`
- response 回 `{success: true, data: {id, ...}}`
## 為什麼這 pattern 重要
- `_recipe_output_format: json` + `_recipe_output_required_fields` 是 claude_api 的 magic
Claude 回 JSON 後 cypher-executor 自動:
1. 剝 ```json fence
2. parse
3. 驗 required fields 存在
4. 把每個欄位(category / confidence / reason)放到 ctx 頂層,下游 `{{category}}` 直接用
- 不用寫 parse / validate / shape 邏輯,純 prompt + schema
## 改成你自己的
- prompt 改你的分類規則(category 清單可長可短)
- 下游 save_with_tag 可換成 telegram 推播 / gmail / 等
- 若需要多步分類(先粗分後細分),鏈兩個 claude_api 節點即可
## 注意
- claude_api 走 mira daemon (Phase A),會 paused 一陣子等 callback resume
- 若 prompt 抽不出 required_fields,會 validation_failed 不寫 KBDBsafer than partial save