Files
Arcrun/registry/examples/rag-search-answer/workflow.yaml
T
Leo e8bd518efa D36 第0步:範例 workflow 金鑰統一走 credential(止血——範例是用戶照抄的樣板)
改前四種寫法並存、沒一個是 credential,而執行端只認 {{credential.X}}
(graph-executor.ts:247→resolveCredentialRefs)⇒ 用戶照抄必踩坑:
  {{api_key}} 13/{{gitea_token}} 2/{{secret.GITHUB_BOT_TOKEN}} 2/{{kbdb_api_key}} 1

改後(19 處統一):
  {{credential.arcrun_namespace}} 15/{{credential.gitea_token}} 2/{{credential.github_bot_token}} 2

⚠️ 中途修正一次錯誤命名:我先改成 kbdb_partner_key(照零件契約舊敘述 ak_xxx),
leo 當場指正「現在沒有 partner key,改用 namespace,沒有發 API key 的機制」——
實際機制確為 X-Arcrun-API-Key: <namespace>(實例上活的 workflow 為證)。

不動:{{secret.LEO_TELEGRAM_CHAT_ID}} 3 處——chat_id 是聊天室 ID 不是金鑰,
無腦套規則會引進「找不到 credential」的錯誤。

驗:違規寫法歸零/12 個範例 YAML 全可解析。
殘:kbdb_upsert_block 契約仍寫『KBDB partner key(ak_xxx)』=假資訊源(我就是被它騙的),
修它被 component-guard 擋(正確),需 leo 跑 scripts/component-arm.sh。
2026-07-29 19:33:46 +08:00

34 lines
919 B
YAML
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.
name: rag_search_answer
description: 收問題 → 從 KBDB semantic search → 把 top context 餵 claude 回答
flow:
- "input >> ON_SUCCESS >> search_kbdb"
- "search_kbdb >> ON_SUCCESS >> answer_with_context"
config:
search_kbdb:
component: kbdb_search
api_key: "{{credential.arcrun_namespace}}"
query: "{{input.question}}"
topK: 5
user_id: "{{input.user_id}}" # 可選,限定某用戶 namespace
answer_with_context:
component: claude_api
timeout_ms: 45000
_recipe_output_format: text
prompt: |
你是知識庫助手。根據下列 context 回答問題。
**規則**
1. 只用 context 內的資訊,不外推
2. context 沒講的,老實說「資料庫裡查不到」,不要編
3. 引用時標 [block_id],方便用戶追原始
Context:
{{search_kbdb.results}}
問題:{{input.question}}
回答: