Files
Arcrun/registry/skills/INDEX.md
T
Leo cda1c7b261 instructions 補「你配備了 Arcrun、別上網搜」+新增 skills/INDEX(LLM wiki 式導航)
leo 兩個洞察:
① 「整個 arcrun instruction 很像 LLM wiki…它會拿到一個 index 把所有文件說明都塞給它,
   它不會就可以查,範本全部寫在裡面」
   ⇒ 對照 wiki 的 push/pull 分法:我原本只做了 push(instructions 開場),
     漏了 pull(INDEX 導航)。補 registry/skills/INDEX.md:
     什麼症狀查哪支 skill/查現成零件recipe workflow 的九支工具/四個已知的坑/腹語術紅線
② 「它不去查就不知道…如果它去上網搜因為它不知道自己有配備呢?」
   ⇒ 實測確認 instructions 是 **push**(本 session system prompt 內就有藏書地圖那段)
     ⇒ AI 不會去上網搜,但原本的 instructions 沒說「你配備了什麼」
     ⇒ 開場補:Arcrun 是什麼/你現在就有完整能力/不要上網搜(網路上沒有)

驗:tsc 零錯誤。⚠️ 未部署——實測總管 token 只有 account(read),無法部署任何 CF worker。
2026-07-30 22:38:37 +08:00

64 lines
3.8 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.
# Skill: INDEXArcrun 導航:什麼問題查哪裡)
> **這支的定位=LLM wiki 的 `INDEX.md`**leo 2026-07-30 點破:
> 「整個 arcrun instruction 很像 LLM wiki…它會拿到一個 index 把所有文件說明都塞給它,
> 它不會就可以查,範本全部寫在裡面」)。
>
> **push vs pull**(照 wiki 的分法):
> - **push**MCP 連線時的 `instructions`(AI 一定看到,不看就出事的三句)
> - **pull**=本檔。AI 卡住時 `arcrun_get_skill('INDEX')` 拿到全館導航
---
## 一、我現在該查哪個?(照症狀找)
| 你的處境 | 用這個 | 工具 |
|---|---|---|
| **要開始寫 workflow,但不知道有什麼零件** | `write_intent_workflow` | `arcrun_get_skill('write_intent_workflow')` |
| 想「每 X 分鐘掃 Y,找到就處理」 | `build_watcher_workflow` | `arcrun_get_skill('build_watcher_workflow')` |
| 要做檢索問答(RAG | `rag_with_arcrun` | `arcrun_get_skill('rag_with_arcrun')` |
| workflow 卡住不動/paused | `debug_paused_workflow` | `arcrun_get_skill('debug_paused_workflow')` |
| 想把 http 呼叫改成觸發別的 workflow | `migrate_http_to_trigger_workflow` | 同上 |
| **真的需要新零件**(罕見)| `add_new_wasm_component` | 同上 ⚠️ 先確認工作流做不到 |
## 二、我要查「有沒有現成的東西」
| 找什麼 | 工具 | 注意 |
|---|---|---|
| 有哪些**零件** | `arcrun_list_components()` / `arcrun_search_components('自然語言')` | 零件=能力(`http_request``code``if_control`…)|
| 有哪些 **recipe** | `arcrun_recipe_list()` / `arcrun_recipe_search('...')` | recipe=打某個 API 的配方(`telegram_send``kbdb_get`…)|
| 有哪些**跑過的 workflow** | `arcrun_list_workflows()` / `arcrun_search_workflows('...')` | **這些是最可靠的範本**(實跑過)|
| 某個 workflow 的完整定義 | `arcrun_get_workflow(name)` | 拿來照抄結構 |
| 執行紀錄/為什麼失敗 | `arcrun_list_recent_executions()` / `arcrun_get_execution_trace(id)` | |
⚠️ **零件 vs recipe 分不清會寫錯**
`telegram_send``gmail``kbdb_get`**recipe 不是零件**
它們要寫成 `http_request` 該 recipe。
## 三、已知的坑(不看會踩)
| 坑 | 現況 | 怎麼避 |
|---|---|---|
| **`/cypher/search` 回假 `found`** | 對**任何**節點名都回 found(不查 registry| status 目前不可信,改用 `list_components` 自己確認。修復中(CP `arcrun-usable` 步驟 3|
| **引擎沒有條件分支** | `grep ON_TRUE\|ON_FALSE` = 0`if_control` 只回 boolean | 判斷寫成獨立節點接 `ON_SUCCESS`。見 Gitea Arcrun#5 |
| **`registry/examples/` 8/13 是壞的** | 引用不存在的零件(把 recipe 當零件寫)| **別照抄 examples**,改用 `arcrun_get_workflow` 拿實跑過的 |
| **registry 可能是空的** | 安裝器無註冊步驟 ⇒ 新實例查不到零件 | 查不到 ≠ 不存在,別據此改寫成 code |
## 四、最重要的一條紅線
🔴 **查不到零件就改寫成 `code` 節點=「腹語術」**(表面用 Arcrun、實際全寫 JS)。
- 缺 API → **寫 recipe**`arcrun_recipe_push`
- 缺能力 → **投稿零件 PR**(要人類確認,見 `add_new_wasm_component`
- `code` 只用於**局部整形**(例:剝掉 LLM 回應的雜訊、切段落)
> 實錄:2026-07-30 盤點發現正式 workflow 只用 2 個零件,8 個 code 節點含 if×61 for×23
> 最大一個 5509 字元——**每一個 if 都是沒被測過的新 bug**。
> 零件的價值是「被測過 1000 次」,寫進 code 就歸零。
## 五、還是不會?
- `arcrun_list_skills()` — 看全部 skill
- `arcrun_get_gui_context()` — 看目前實例的狀態
- `arcrun_report_feedback()`**回報這裡沒寫清楚的地方**(這份 INDEX 該被你的問題改進)