記憶、算法庫與可重用問題求解路徑
——從世界模型到能力模型的累積式智能架構
Series: Adaptive Epistemic Systems Series
Paper: 5 / 11
Version: v0.1
Language: zh-TW
Status: Complete Draft / Canonical UTF-8 Source
摘要
一個能持續吸收世界知識、更新狀態與重構表示空間的智能系統,若每次面對任務都重新生成方法、重新構造算法或重新探索相同求解路徑,將產生巨大的重複計算成本,也無法形成真正的能力累積。本文提出一個從「世界模型」向「能力模型」擴張的架構:除了保存事實、事件、概念與關係之外,系統也應保存曾經使用過的算法、外部工具、執行契約、成功與失敗紀錄、成本、版本、適用條件與可重用方法鏈。
本文將可調用算法表示為具有輸入域、輸出域、前置條件、後置條件、依賴、成本、可靠度、版本與歷史表現的能力節點,並提出:
Reuse≻Adapt≻Create
作為一般性的求解優先順序。系統遇到任務時,應優先檢索是否已存在足夠匹配且仍有效的方法;若現有方法可局部修正,則進行 adapt;只有當現有方法在適配度、可靠度、成本或約束條件上無法達到門檻時,才重新構造新算法。
本文進一步將問題求解歷史表示為可重用方法鏈:
A3→A7→A12→Verify
並指出能力成長不只來自算法數量,也來自算法組合、執行經驗、失敗模式、契約與調度策略的累積。透過外掛記憶層,主世界圖不需常駐所有細節,只需保留可尋址索引與語義連結;需要時再快速恢復相關算法、資料、執行紀錄與系統模型。
本文亦提出算法新鮮度、能力版本化、方法退化、重新驗證、負遷移、能力債務與重用錯誤等風險,並給出一組可驗證命題,用以測試「能力記憶」是否真的比每次重新生成更高效、更穩定、更可轉移。本文的核心主張是:
intelligence should accumulate reusable capability, not only reusable knowledge
。
關鍵詞: 記憶外掛、算法庫、能力模型、方法重用、算法適配、問題求解路徑、執行歷史、工具調度、能力累積、方法鏈
1. 問題:如果每次都重新想,系統真的學會了嗎?
前四篇已經讓系統具備:
world state
freshness
canonical symbols
adaptive representation
。
但現在出現一個新的問題。
假設任務:
Q1
被成功解決。
之後出現一個高度相似任務:
Q2
如果系統仍然從:
∅
開始重新尋找方法,那麼先前成功經驗並沒有真正變成能力。
因此:
past success⇒future capability
除非系統能保存、定位、理解與重新使用那段方法。
這就是世界模型與能力模型之間的分界。
2. 世界知識與能力知識不是同一類資訊
世界模型主要回答:
世界是什麼?
例如:
Fact(A)
Relation(A,B)
Event(E,t)
。
能力模型則回答:
這種問題要怎麼處理?
例如:
Algorithm(Ai)
Tool(Tj)
Workflow(Wk)
ExecutionPattern(Pl)
。
因此整體系統應擴充為:
S=(Gworld,Gcapability)
。
兩者可以互相連接,但不應混成同一語義。
3. 外掛記憶層
主世界圖不應常駐所有歷史執行內容。
定義外部記憶:
Mext
保存:
{facts,algorithms,execution traces,past solutions,schemas,tool contracts,system models}
。
主系統只需保留索引:
Π:G→Mext
。
因此:
remember everything=keep everything active
。
4. 記憶不是單一資料庫
更合理地說:
M={Mepisodic,Msemantic,Malgorithmic,Mprocedural,Mtrace,Mexternal}
。
其中:
Mepisodic
保存具體過去事件;
Msemantic
保存抽象知識;
Malgorithmic
保存算法;
Mprocedural
保存方法鏈;
Mtrace
保存執行過程;
Mexternal
保存可重新調用的外部資料與系統描述。
5. 算法作為一等能力節點
算法不應只是檔案名稱或程式碼字串。
定義:
Ai=(idi,fi,Ii,Oi,Prei,Posti,Depi,Costi,Reliabilityi,Versioni,Freshnessi)
其中:
fi
是算法本體;
Ii
是輸入域;
Oi
是輸出域;
Prei
是前置條件;
Posti
是後置條件;
Depi
是依賴;
Costi
是成本;
Reliabilityi
是可靠度;
Versioni
是版本;
Freshnessi
是有效性狀態。
因此算法本身也是:
vAi∈Vcapability
。
6. 不是知道算法存在,而是知道它何時可用
真正的能力不是:
Exists(Ai)=True
而是:
CanUse(Ai,Q)=True
。
因此需要估計:
Match(Ai,Q)
。
一個簡化適配度可寫成:
Match(Ai,Q)=w1Minput+w2Moutput+w3Mconstraint+w4Mdomain+w5Mcost
。
若:
Match(Ai,Q)≥θ
才值得使用。
7. Reuse、Adapt、Create
本文提出三階決策:
Reuse
直接調用既有方法;
Adapt
修改既有方法;
Create
重新構造。
一般優先順序為:
Reuse≻Adapt≻Create
。
原因不是 reuse 永遠比較好,而是若既有方法已被驗證,重用通常能降低:
Cdesign
Cverification
Cdebug
與:
Clatency
。
8. 最小決策規則
可寫成:
D(Q)=⎩⎨⎧Reuse(Ai),Adapt(Ai),Create(Anew),Match(Ai,Q)≥θ1θ2≤Match(Ai,Q)<θ1Match(Ai,Q)<θ2
。
但這只是起始模型。
實際上還要考慮:
Reliability(Ai)
Cost(Ai)
Freshness(Ai)
Risk(Ai,Q)
。
9. 已存在不代表值得用
即使:
Ai
存在,也可能:
Cost(Ai)≫Budget
或:
Reliability(Ai)<θr
或:
Latency(Ai)>θl
或:
Freshness(Ai)<θf
。
因此真正的建立新算法條件不是:
AQ=∅
而是:
imaxU(Ai∣Q)<θU
。
其中:
U(Ai∣Q)
是綜合效用。
10. 算法效用函數
可定義:
U(Ai∣Q)=αPsuccess−βCcompute−γCmoney−δClatency−ϵRisk+ζReusability
。
因此「最強算法」不一定是最值得使用的算法。
最佳方法是:
A∗=argAimaxU(Ai∣Q)
。
11. 執行歷史是能力的一部分
每個算法應保存:
H(Ai)={(Qj,Resultj,Costj,Successj,Errorj,Contextj)}j=1n
。
這使系統可以估計:
P(Success∣Ai,Q,C)
。
因此方法選擇不再只依賴人工標註,而能利用過去真實執行經驗。
12. 成功紀錄與失敗紀錄同樣重要
若只保存成功:
Msuccess
而刪除失敗:
Mfailure
系統會重複踩相同錯誤。
因此需要:
FailureMode(Ai)
以及:
Counterexample(Ai)
。
失敗可以成為負能力知識:
在什麼條件下不要用這個方法。
13. 算法選擇也可以持續更新
若算法歷史改變,則:
Pt(Ai∣Q)
也應更新。
例如:
Pt+1(Success∣Ai,Q)=Pt(Success∣Ai,Q)
。
這可以使用 Bayesian、頻率統計、分數更新或其他方式。
重要的不是一定用哪一種,而是:
method choice should learn from method outcomes
。
14. 算法新鮮度
世界知識會過時,算法也會過時。
例如:
Dependency(Ai)
可能更新;
Interface(Ai)
可能變更;
Version(Ai)
可能失效;
SecurityAssumption(Ai)
可能不再成立。
因此需要:
Freshness(Ai)
與:
LastVerified(Ai)
。
算法不是因為「以前成功過」就永久可信。
15. 能力張力
可類比世界節點,定義算法更新張力:
TAi
。
例如:
TAi=αAgei+βDependencyChangei+γFailureRatei+δInterfaceChangei+ϵRiski
。
若:
TAi>θi
則:
Revalidate(Ai)
。
16. 算法契約
每個算法應有:
Contract(Ai)=(Prei,Posti,Invarianti,Failurei)
。
這讓調度器能在執行前判斷:
Prei(Q)=True?
執行後判斷:
Posti(Result)=True?
。
若:
Posti=False
則結果不能直接進 canonical state。
17. 執行後驗證
流程:
Q→Ai→Result→Verify
。
若:
Verify(Result)=True
則:
Commit(Result)
。
若:
Verify(Result)=False
則可以:
Fallback(Aj)
或:
Adapt(Ai)
或:
Create(Anew)
。
18. 方法鏈:真正可重用的不是單一算法
許多問題不是:
Q→Ai
一次完成。
而是:
Q→A1→A2→A3→Verify
。
因此要保存:
Wk=(A1,A2,…,An)
作為 workflow。
19. 方法鏈可以有條件分支
例如:
A1→{A2,A3,r1>θr1≤θ
。
因此方法鏈更一般是:
Gworkflow
而不只是線性序列。
20. 方法鏈也是圖節點
定義:
vWk∈Vcapability
並建立:
TaskType→Workflow→Algorithm
。
這樣系統不只知道有哪些算法,也知道:
某類問題通常應按什麼順序使用哪些能力。
21. 從 Know-What 到 Know-How
可將系統能力分成:
Know-What
知道世界事實;
Know-How
知道方法;
Know-When
知道何時使用;
Know-Where
知道在哪個系統或容器執行;
Know-When-To-Build
知道何時現有能力不夠。
Paper 05 主要建立前四者中的方法與調度部分。
22. 記憶檢索不是全文搜尋
若記憶庫龐大,系統需要:
Retrieve(M,Q)
而不是:
Scan(M)
。
檢索條件可以包含:
SemanticMatch
TaskType
InputSchema
OutputSchema
HistoricalSuccess
Cost
。
因此:
memory usefulness∝retrievability
。
23. 能力索引
定義能力索引:
Index(Ai)=(Domain,InputType,OutputType,Constraint,CostBand,ReliabilityBand)
。
查詢:
Q
先被映射到能力需求:
Req(Q)
再:
Req(Q)→Retrieve(A)
。
這比直接用自然語言搜尋算法名稱更穩定。
24. 方法重用也可能造成負遷移
相似問題不代表同一方法適用。
若:
Similarity(Q1,Q2)↑
但關鍵約束不同:
Constraint(Q1)=Constraint(Q2)
直接 reuse 可能失敗。
因此:
similarity=applicability
。
25. 負遷移檢測
可比較:
ExpectedGain(Reuse)
與:
ExpectedLoss(Mismatch)
。
只有:
ExpectedGain(Reuse)>ExpectedLoss(Mismatch)
才執行 reuse。
這使系統避免「因為以前成功過,所以什麼都用同一招」。
26. Adapt 的形式
Adapt 可以包括:
ParameterChange
WrapperAddition
ConstraintInjection
AlgorithmComposition
InputTransformation
OutputTransformation
。
因此:
AiAdaptAi′
不一定表示完全新算法。
27. Adapt 需要保留 lineage
若:
A2=Adapt(A1)
則應保存:
Parent(A2)=A1
。
更長期:
A1→A2→A3
形成算法演化鏈。
這使系統可以知道:
哪個版本從哪裡來,又為什麼修改。
28. Create 不代表無中生有
真正的新算法往往仍然使用既有 primitives。
可寫成:
Anew=Compose(Ai,Aj,rk,opl)
。
因此 create 也可能只是新組合:
new capability=new composition of old capabilities
。
29. 能力閉包
若:
A={A1,…,An}
則可組合能力空間:
Closure(A)
可能遠大於:
∣A∣
。
因此能力不只由算法數量決定,而由:
compositional reachability
決定。
30. 方法鏈的壓縮
若大量任務反覆使用:
A3→A7→A12→Verify
可以建立:
W∗
作為高階 macro。
則:
W∗(Q)
直接調用整段流程。
這是一種:
procedural abstraction
。
31. 方法鏈也需要拆分
若:
W∗
在新環境下部分失效,不能只整體丟棄。
可拆成:
W∗=Wa∘Wb∘Wc
找到失敗段:
Wb
再:
Adapt(Wb)
。
這能降低重新設計成本。
32. 能力記憶的壓縮與蒸餾
執行 trace 可能非常大。
因此不需永久保存所有細節。
可從:
Trace1,…,Tracen
抽取:
Pattern
FailureMode
CostProfile
SuccessCondition
。
這形成:
experience compression
。
33. 但不能只保存摘要
若摘要錯誤,可能污染後續所有調度。
因此:
Summary
應保留對原 trace 的:
Provenance
。
需要時:
Summary→RawTrace
可追溯。
34. 能力債務
如果某算法長期未重新驗證:
Freshness(Ai)↓
但仍被反覆依賴,則形成能力債務:
DAicap
。
可定義:
DAicap=Usage(Ai)⋅Risk(Ai)⋅Staleness(Ai)
。
若:
DAicap↑
應優先重新驗證。
35. 能力節點也能被淘汰
若:
Usage(Ai)→0
Reliability(Ai)↓
Replacement(Ai)=True
則可:
Deprecate(Ai)
甚至:
Archive(Ai)
。
因此能力庫不是 append-only。
36. 能力競爭
同一任務可能有:
A1,A2,…,An
多個可用方法。
系統可以持續比較:
Performance(Ai)
Cost(Ai)
Reliability(Ai)
。
因此算法之間可以形成:
capability competition
。
37. 能力替換不是刪除歷史
若:
A2
全面優於:
A1
仍不一定應完全刪除:
A1
。
因為在某些特殊約束下:
A1
仍可能更好。
所以應建立:
Dominates(A2,A1∣C)
而非:
A2>A1
的全域判定。
38. 問題分解
複雜任務:
Q
可以拆成:
Q→{q1,q2,…,qm}
。
每個:
qi
可以選不同:
Ai
。
因此:
Solve(Q)=Compose(Solve(q1),…,Solve(qm))
。
這是後續異質計算容器調度的直接前置結構。
39. 調度器
定義:
Scheduler
負責:
Task→CapabilitySelection
。
完整流程:
Q→Understand→Decompose→Retrieve→Evaluate→Select→Execute→Verify→Learn
。
這個循環使每次任務都有可能增強後續能力。
40. Learn 的內容
執行後:
Learn
不只更新世界知識。
也更新:
Reliability(Ai)
Cost(Ai)
FailureMode(Ai)
Workflow(Wi)
Match(Ai,Q)
。
因此:
task execution→capability update
。
41. 世界模型與能力模型的交叉連結
世界節點:
vdomain
可以連到:
vAi
表示:
ApplicableTo(Ai,Domain)
。
算法節點又能連到:
vsystem
表示:
Requires(Ai,System)
。
因此:
Problem→Domain→Algorithm→System
形成完整能力路徑。
42. 能力模型本身也有非對稱時空張力
某些算法多年不變:
TAi≈0
。
某些算法高度依賴外部介面:
TAj≫0
。
所以 Paper 01 與 Paper 02 的非對稱更新理論,同樣適用於能力圖。
這使世界模型與能力模型共享:
Freshness
Tension
Provenance
Validation
。
43. 方法重用的核心工程預測
若能力記憶有效,則對重複或相似任務:
Creuse<Crecreate
。
同時:
Reliabilityreuse≥Reliabilityrecreate
應至少在大量已驗證任務上成立。
44. 對適配能力的預測
若:
Q2
與:
Q1
高度相似但有局部差異,則:
Cost(Adapt)<Cost(Create)
且輸出品質保持近似。
若不成立,adapt 層的存在價值就需要重新檢驗。
45. 對方法鏈記憶的預測
對多步任務:
WorkflowReuse
應降低:
PlanningCost
ToolSelectionError
與:
ExecutionVariance
。
如果只保存單一算法、不保存方法鏈,則這些收益可能不完整。
46. 對失敗記憶的預測
若系統保存失敗模式:
FailureMemory=True
則:
RepeatedFailureRate
應低於:
FailureMemory=False
的系統。
47. 對能力新鮮度的預測
若算法依賴會變動,加入:
Freshness(Ai)
與:
Revalidate(Ai)
應降低:
StaleCapabilityFailureRate
。
48. 實驗設計草案
建立三種系統:
S1=generate-every-time
S2=algorithm-memory only
S3=algorithm + workflow + trace + freshness
。
提供:
Q1,…,Qn
包含:
- 重複任務;
- 輕微變形任務;
- 高度相似但關鍵約束不同的任務;
- 工具版本更新;
- 已知失敗模式;
- 多步工作流。
測量:
PlanningCost
ExecutionCost
SuccessRate
RepeatedFailureRate
Latency
AdaptationCost
StaleMethodFailure
。
49. 失敗模式:能力庫變成垃圾場
如果系統不斷保存:
A1,A2,…
卻不去:
Deduplicate
Version
Validate
Deprecate
能力庫會和世界知識庫一樣退化。
因此 Paper 04 的:
Add,Delete,Merge,Split,Abstract
也適用於能力節點。
50. 失敗模式:錯誤方法被過度重用
若某方法:
Ai
過去成功率高,系統可能產生:
ReuseBias(Ai)↑
。
這會使新的、更好方法難以被採用。
因此需要保留:
ExplorationRate>0
。
即使有成熟方法,也要允許有限探索。
51. 失敗模式:方法鏈僵化
成功 workflow:
W∗
若被永久固化,環境改變後可能失效。
因此:
Freshness(W∗)
與:
Revalidate(W∗)
同樣必要。
52. 失敗模式:過度創造
若 Create 閾值太低:
θU↓
系統會一直生成新算法。
結果:
∣A∣↑
但:
ReuseRate↓
。
這違反能力累積初衷。
53. 失敗模式:過度重用
反之若:
θU↑
系統可能硬把舊算法套用到不適合的新問題。
因此:
reuse and innovation require dynamic balance
。
54. 能力成長函數
可將能力累積寫成:
Ct+1=Ct+ΔA+ΔW+ΔHexecution+ΔMfailure+ΔMselection
。
其中:
ΔA
是新算法;
ΔW
是新方法鏈;
ΔHexecution
是執行經驗;
ΔMfailure
是失敗知識;
ΔMselection
是調度經驗。
55. 從知識累積到能力累積
Paper 04 的世界擴張是:
more effective world structure
。
Paper 05 則新增:
more effective capability structure
。
因此:
Intelligence Growth=World Model Growth+Capability Model Growth
。
56. 下一步:算法知道了,但在哪裡執行?
到目前為止,系統已經可以知道:
Ai
該不該用。
但仍有下一個問題:
同一算法應該在哪一種計算載體執行?
若系統只能假設單一傳統計算機,那麼能力模型仍被某個底層架構綁定。
因此下一篇將引入:
Γi
作為抽象計算容器,並讓算法選擇升級為:
(A∗,Γ∗)=argAi,ΓjmaxU(Ai,Γj∣Q)
。
57. 結論
一個真正能累積能力的智能系統,不應每次面對任務都重新發明方法。
世界知識告訴系統:
what is the case
能力知識則告訴系統:
what can be done
以及:
how it was done before
。
因此本文提出:
M+A+W+H
作為能力累積核心。
其中:
M
是記憶;
A
是算法庫;
W
是方法鏈;
H
是執行歷史。
系統的正常優先順序為:
Reuse≻Adapt≻Create
但此順序受適配度、可靠度、新鮮度、風險與成本動態調整。
因此:
previous execution
不再只是歷史。
它可以被壓縮、索引、驗證並轉換成:
future executable capability
。
真正的能力成長,不只是能夠「想出更多方法」,而是能夠:
知道哪些方法已經存在、何時值得重用、何時應修改,以及何時真的必須重新創造
。
這一步使自適應世界狀態系統正式跨越:
knowledge system
走向:
cumulative problem-solving system
。
附錄 A:最小算法節點
Ai=(idi,fi,Ii,Oi,Prei,Posti,Depi,Costi,Reliabilityi,Versioni,Freshnessi,Historyi)
。
附錄 B:最小算法選擇函數
U(Ai∣Q)=αMatch(Ai,Q)+βReliability(Ai)+γFreshness(Ai)−δCost(Ai)−ϵRisk(Ai,Q)
並選擇:
A∗=argimaxU(Ai∣Q)
。
若:
U(A∗∣Q)<θreuse
則進入 Adapt 或 Create。
附錄 C:最小方法鏈
Wk=(A1,A2,…,An,Verify)
。
其執行可表示為:
QA1Z1A2Z2→⋯AnZnVerifyResult
。
若其中一步失敗:
Aj→Failure
則可根據 workflow contract:
Fallback
Retry
Adapt
或:
Abort
。
附錄 D:完整能力循環
Q→Understand→Decompose→Retrieve(M)→Search(A,W)→Evaluate→⎩⎨⎧ReuseAdaptCreate→Execute→Verify→Commit→Learn
其中:
Learn
反向更新:
M,A,W,Reliability,Freshness,FailureMode
。
這使:
every task can become reusable capability
。