AI 一打開沒有全景圖,不知道庫裡有哪些子庫、各裝了什麼 #81
Notifications
Due Date
No due date set.
Depends on
#86 我的票和我的筆記在兩個世界——AI 只讀得到一半,於是一直重推我想過的事
Leo/Arcrun
Reference: Leo/Arcrun#81
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
我希望有一個功能是:任何裝了 Arcrun 的人,他的 AI 一打開就有一張全景圖——知道這座庫裡有哪些子庫、每個子庫裝了什麼。
為什麼要這個
沒有全景圖的 AI,會用「不知道有什麼」的狀態下判斷,而它自己不會發現。
2026-08-09 總管當天的實例(同一天三次,全部同源):
Leo/mira這個 repo 存在 ⇒ 票開錯 repo⇒ 這些都不是判斷力問題,是沒有一份「現在長什麼樣」擺在眼前。
而每一個裝了 Arcrun 的用戶,他的 AI 都會遇到同一件事。
🔴 形態的硬要求
現況需要先釐清(總管實查,2026-08-09)
注入有一部分已經存在:接上 Arcrun RAG MCP 的 AI,連線時會收到一段「藏書地圖」,
每庫一行,含核心條目與 triplet 數。總管自己這個 session 開場就有。
⇒ 但 leo 說「總圖是做出一張 graph,但這個不會注入」——這兩件可能是不同的東西
(例如示範庫裡的
00-MAP.md是另一份)。🔴 接手的人第一件事是釐清這個差異,不要假設:現在到底有幾份「地圖」、各自長什麼樣、
各自會不會被注入、涵蓋範圍是「這座庫的子庫」還是「整個世界(repo/實例)」。
釐清結果請寫回本票(leo 2026-08-09 立的規矩:設計寫在 issue 上,別讓下一個人再翻一次源碼)。
已知的相關真身(起點,非結論):
kbdb/src/library-map.ts、mcp/lib/library-map.ts、kbdb_map.tsmcp-handler.ts怎麼驗
相關
Leo/arcrun-rag#19—— 那張是做給人看的 portal GUI(展開庫目錄/帳號識別/MCP 說明),本票是做給 AI 的注入物。兩張不同,但同一個病根:「庫裡有什麼看不到」。
Leo/mira#2—— Mira 現代化。leo:「你把 Mira 做完不就會有全景圖了」⇒ 頂層那份「有哪些 repo/實例」的全景圖是這個機制的產物,不另外手寫一份。
🔗 已與「票的全局」合併成同一張票(leo 2026-08-11 深夜親口定調)
⇒ 本張的「知識那一半」與「票那一半」是同一份 md,不是兩個產出。
⇒ 完整規格已寫在
Leo/InkStoneCo#17,動工前請以那張為準。📌 本張原本就寫著的形態要求(「可以是 md 檔」「一開始它就知道庫裡有哪些子庫」「不是 graph」)
完全一致,只是現在多了「票」這一半。
🔴 另外 leo 明確劃掉一個方向:現有那張好看的 graph 是 wow factor、已經做完了,不是目標。
不要再產一個視覺化的東西。
🔍 釐清結果(本票要求的那份,2026-08-13 總管實測)
本票寫著:
照辦。而且第一件事就是推翻本票自己的一句話。
❌ 被推翻:「注入有一部分已經存在」
本票原文:
我這條 session 沒有。
身分:
portal-login/leo21c/admin/knowledge_scope: 全部知識庫(arcrun_whoami實回)。我收到的 MCP server instructions 全文只有靜態的那段(「# Arcrun — 你已經配備了這套工具,別上網找」⋯⋯
結束在「第一個節點固定是
input。」),沒有【藏書地圖】那一段。⇒ 「開場就有地圖」這件事不是穩定成立的。它可能在 08-09 那天成立過,今天不成立。
為什麼會這樣(機制,不是猜測)
mcp/src/mcp-handler.ts:而
buildLibraryMapInstructions(mcp/src/lib/library-map.ts):catch { text = null }——任何錯誤一律吞掉回 null⇒ 那條鐵律本身是對的,但它被實作成「失敗時沒有任何人會知道」。
「地圖抓不到」和「這裡沒有知識」在畫面上長得一模一樣——兩者都是沉默。
(同
Arcrun#109的形狀:「保險拒絕了」和「程式碼不存在」都是沉默。)🔴 更根本的一件:指路的話全被放進了那個會消失的加分項裡
startHere(必定出現、連 KBDB 掛了也會出現的那段)我逐行讀完了:它從頭到尾在講工作流、零件、recipe、邊的語法。
kbdb_search/kbdb_get_map/「這條連線裡有主人的知識庫」——一個字都沒有。⇒ 所以本票要的「AI 一打開就有全景圖」,現況比票上寫的更差:
不是「有一部分已經存在」,而是連「這裡有知識可查」這句話都不在保證出現的那一段裡。
實害(同一天、可對照):總管為了回答「Arcrun 是什麼」派了一條 opus 去讀 682 行原始碼——
而
kbdb_search(q="Arcrun 是什麼", mode="keyword")一查就 33 筆真答案(含「Arcrun >> 運行於 >> CF」)。它不是查不到,是不知道有得查。
現在到底有幾份「地圖」(本票問的那題,答案)
kbdb的GET /map(聚合真身,kbdb/src/actions/library-map.ts)kbdb_get_mapMCP 工具(mcp/src/tools/kbdb_map.ts)mcp-handler.ts+renderLibraryMapLines)arcrun-rag#19,非本票⇒ 本票要的是 #3,而 #3 目前是「有實作、已部署、但會無聲不生效」。
順帶:就算 #3 送到了,它今天也會說謊
kbdb_get_map()實回:8 個庫裡 7 個triplet_count: 0、top_entities: [],而那 7 個庫的 entries 是有的(keyword 搜得到)。
渲染出來會是「核心:(尚無)|0 triplets」⇒ AI 的合理推論是「這庫沒東西,別查」。
這一半已由 PR #117(
Arcrun#87三次收尾)處理:renderLibraryMapLines改成0 triplets/N 筆原始內容(尚未萃取關係,kbdb_search 查得到)。⇒ 所以這張票要的東西,需要兩件都成立:
①地圖說實話(PR #117)②地圖真的送得到、送不到時也要留下痕跡(進行中)。
對本票驗收條件的一點補充建議
本票的第 4 條驗法(「用沒看過這座庫的 AI 實測」)是對的,但建議再加一條,
因為今天的故障正好落在它抓不到的地方:
— 總管