
引言
我一直在想一件事:
大家在講 AI Agent 的時候,其實都在講「表現」,但很少人在講「本質」。
像是:
- 會用 tool
- 會寫 code
- 會 multi-step reasoning
這些都沒錯,但仍然停留在表層。
這篇不是在教你怎麼寫 Agent,而是提供一種可以用來設計 Agent 的語言。
當我把 Agent 一路往下拆,會發現它其實可以收斂到一個更簡單、也更穩定的結構。
三個原語
如果把 Agent 拆到最底層,可以用三個東西來描述:
1. Generate(探索可能性)
2. Evaluate(施加 selection pressure)
3. Update(改變 state / belief)
一開始可能會覺得還需要更多分類(例如 Action、Memory),但其實:
Act 與 Compress,本質上都是 Update 的不同形式
- Act = 對外改變世界的 Update
- Compress = 對內壓縮與更新 state 的 Update
因此這三個原語,其實已經足夠描述一個完整系統
Agent = control loop
Agent 不是能力集合,而是一種控制結構。
state = init_state()
while True:
candidates = Generate(state)
scores = Evaluate(candidates)
action = select(candidates, scores)
result = Environment.step(action)
feedback = observe(result)
state = Update(state, action, feedback)
- Generate:探索解空間
- Evaluate:施加選擇壓力並收斂決策
- Update:改變 state(包含行動與記憶)
關鍵在於:
Agent 的差別在 control,而不在模型能力
為什麼 Update 需要經過 Compress
如果沒有 Action,系統只是在思考,而沒有對世界產生影響。
但更底層的問題是:Update 是如何發生的。
Update 並不是直接發生,而是需要經過 Compress。
Update 需要透過 Compress 才能成立也就是:
experience = Environment.step(action)
compressed = Compress(experience)
state = Update(state, compressed)
Compress 的本質
Compress 並不是單一功能,而是一個轉換機制:
它把「經驗」轉成「結構」。
可以拆成三個層級:
1. 資訊壓縮(summary)
- trajectory summary
- state abstraction
- context reduction
作用是降低複雜度,使資訊可被處理
2. 記憶結構化(memory)
- interaction logs
- user state
- feature representation
作用是讓系統能跨時間維持一致性
3. 行為固化(skill formation)
- finetuning
- distillation
- pattern reuse
作用是把經驗轉化為可重用能力
Compress → Update 的關係
這些步驟形成一條鏈:
experience
↓
Compress(抽象 / 結構化)
↓
state / belief
↓
Update(改變未來決策)
如果缺少 Compress:
- 無法泛化(generalize)
- 無法學習(learning)
- 無法形成能力(skill formation)
- 系統無法擴展(scale)
因此可以更精準地說:
Update 的品質,取決於 Compress 的品質
Agent 的學習能力,本質上取決於其 Compress 能力
行為不是分類,而是組合的結果
常見的 Agent 行為(Search、Planning、Memory)並不是本質,而是原語組合的結果。
例如:
Search = Generate ↔ Evaluate 的反覆迭代
Planning = Generate + Evaluate + Update(跨時間)
Memory = Update 的策略
Alignment = Evaluate 的 Constraint
Simulation = Generate + 穩定的 state(Update)
Adaptation = Update(短期 state 改變)
Learning = Update(長期 belief 改變)
行為並不是被列舉出來的,而是從結構中生成出來的
Generate vs Evaluate
兩者的角色是不同的:
Generate = 決定可能性邊界
Evaluate = 決定收斂方向
- 沒有 Generate,就沒有可選擇的空間
- 沒有 Evaluate,系統無法收斂
一個決定上限,一個決定方向
Evaluate 的本質
Evaluate 並不是單純的評分,而是 selection pressure(選擇壓力)。
它決定:
- 哪些行為被保留
- 哪些行為被淘汰
- 系統長期會收斂到哪裡
Evaluate 的結構
Evaluate = Objective × Constraint × Belief
Objective(目標)
- revenue
- conversion
- retention
Constraint(限制)
- 不違規
- 不傷害體驗
Belief(世界模型)
- 預測 conversion
- 預測 LTV
本質上是對世界的預測
商業版本的 Evaluate
score =
P(convert) * revenue
+ P(retain) * LTV
- risk
- uncertainty
這本質上是一個決策函數
雙層 Evaluate
pred_score = model(action)
real_score = outcome(action)
Learning 的本質是:
讓 pred_score 接近 real_score更底層地說:
Learning = 更新 belief → 改變 Evaluate → 改變 policy
Update 的兩個層級
Adaptation(短期)
state.context = update_context(state.context, feedback)
- 可逆
- 局部調整
Learning(長期)
state.belief = update_belief(state.belief, feedback)
- 累積性
- 改變決策方式
Exploration vs Exploitation
if random() < epsilon:
action = explore(candidates)
else:
action = exploit(candidates)
系統需要在探索與利用之間取得平衡
Evaluate 的失敗模式
1. Belief failure
預測與現實不一致
2. Objective failure
優化方向錯誤
3. Constraint failure
行為失控
結論(升維版本)
如果再往下一層壓縮,Agent 可以被描述為:
Agent = 壓縮 → 選擇 → 再壓縮
也就是:
Compress → Evaluate → Compress並存在於:
Agent ↔ Environment ↔ Feedback的閉環中。
更底層的結構
experience = Environment.step(action)
representation = Compress(experience)
action = select(Evaluate(Generate(representation)))
new_representation = Compress(representation, experience)
兩次 Compress 的角色
Compress #1(理解)
experience → representation讓系統理解當下
Evaluate(選擇)
representation → action決定行為方向
Compress #2(學習)
experience + representation → new representation
讓未來決策改變
核心觀點
Agent 的核心不是推理,而是壓縮。
沒有 Compress 的結果
- 無法泛化
- 無法累積知識
- 行為不會改善
系統會看起來聰明,但不會變強
最終定義
Agent = 一個透過壓縮經驗,並在選擇壓力下持續重塑行為分佈的系統
一個關鍵問題
壓縮的目標是什麼?
- 最小資訊量
- 最大決策效益
- 最強預測能力
不同答案,會導向不同的 Agent 設計
















