← 思 HARNESS ENGINEERING · 外 ENJA

第一本柱 · Pillar I

Context.

注意力的心流

在有限的注意力資源中,
什麼該留下,什麼該流過?

I · 核心問題

AI 的 context window 是有限的。人的注意力也是有限的。當資訊不斷湧入,你不可能全部留住。大量相關與無關的訊息同時擠進來時,人和 AI 的注意力都會被切碎。

問題不在「怎麼記住所有東西」,而在「怎麼選擇該記住什麼」。

II · 運作原理:傅立葉級數的 epicycle

數學原理

傅立葉 epicycle 的組成是:任何一條複雜的波(圖上那條方波=產品隨時間的行為),都可以拆解成一組旋轉圓的疊加;每個圓投影到時間軸上就是一條正弦波,疊起來描出整條波形。

一個意象,兩層同構

同一組 epicycle,描對話也描開發:

epicycle · 兩層同構
epicycle 概念對話中的對應開發中的對應
描出的波一段多主題的長對話產品隨時間的行為
基頻貫穿對話的核心主題產品目標
諧波(一環扣一環)與核心相關的衍生話題DoR → SDD → DoD → Verify → Done 的串接
雜訊無關的岔題、干擾與產品無關的支線、scope creep

波形隨時間展開:圓同時轉,波依序畫

在開發裡,這組 epicycle 就是工作流的骨幹:DoR → SDD → DoD → Verify → Done。基頻是產品目標,圓一轉,波就從左往右展開——那一個週期,就是一次完整的交付(正如圖上:左邊的圓在轉,右邊的方波隨時間長出來)。波依序經過每一道閘門的區段,每到一段,那一環的諧波才把它的細節畫上去。

所有的圓同時在轉,依序的,是波從左往右落下的順序。看動畫時會有種錯覺:大圓帶著波走,走到某些段落,小圓才像突然「長出來」補上一個陡轉——其實小圓一直都在轉,只是它的細節要等波展開到那一段才顯形。

收口:計劃與現實對齊的瞬間

一個 Sprint 收口,是在 DoD 與 Verify 對上那一刻:DoD 說「什麼叫完成」,Verify 拿成品去撞真實,兩者疊合,產品才算交付。這是工程上的閉合,不需要數學背書。

這一刻,計劃(DoD:什麼叫完成)與現實(Verify:真的完成了嗎)疊合為一。

一條週期波繞完一個週期,所有諧波恰好同時回到起點——能一起回家的,才同屬一個基頻。引申過來,所有環節若都繞著產品這個基頻,才會在 Verify 同時收口;繞著別的東西的(scope creep),到這一刻還落單,收不了口。

而一個 Sprint 的收口不是終點:它的收穫會墊高下一圈的起點——這條從圈到螺旋的抬升,是第三柱 Entropy 的事。

正反兩個轉向:一枚完整的硬幣

一個圓只能描出一個圓——自己繞自己,原地打轉。要拉出一條真正落地的軌跡,圓就不能只往一個方向轉:一個往前轉的圓,得配一個反向轉的圓,彼此抵消。

但這兩個轉向不是兩股要分高下的力,是同一枚硬幣的兩面

一次真實的交付,是一個完整的動作,有兩張臉——一張往前建(把產品多描出一段),一張拉回現實(確認這一段真的落地)。少了任何一面,它就不是一枚硬幣,落不了地。

只往前建、不拉回現實,交付出去的是半枚硬幣:看起來在動,卻一直懸著、不著地。

兩面一起長——這不是外加的紀律,是硬幣之所以是硬幣的條件。硬幣會變大,但變大時兩面一起變大;你不會得到一個建構面很大、校正面很小的硬幣——那不是一枚硬幣,是半成品。所以校正隨建構縮放:產品長多大,接住它的那一面就得長多大。

〔VAS 實例〕前端重構前(S47)約 318 條自動化測試;如今(S98)單元 868 + 互動 167 + 像素 golden 31 = 1066 條、55 檔,仍在長。產品長大的同時,校正面從三百長到一千、一條沒落下。「縮放」長在真東西上,就是這個樣子——重點不是 1066 這個數,是它跟著建構一起長、沒有一面落後。

每道閘門,就是鑄這枚硬幣、確保它兩面俱全的那隻手。一條與出貨無關、為反對而反對的規則,不是「校正」那一面,是混進來的雜訊——它鑄不成硬幣,只讓波形失真,該在 Retro 砍掉。

閘門 · 操作頻譜的手
閘門它對頻譜做的事(讓 Sprint 更完整地被走過)
DoR准不准這個圓進場——紅旗剔除不對頻、與產品無關的闖入者
SDD給幾個圓、只留最大的那幾個——400 行上限壓住 scope,也護住宰相的 context
DoD新加的圓會不會擾動已畫好的別處——Explore② 的回歸提問(修 A 會不會壞 B)
Verify拿描出來的波去撞真實——PO 的「不對」,Code 第一次撞上使用者體驗
Retro墊高下一圈的起點——成果累積成更厚的地基(→ 螺旋)

這把尺,第二柱 Constraints 的 DoR 紅旗與第三柱 Entropy 的規則清理共用。

關於傅立葉——這裡是把這一章的鏡頭借來照工程:它讓你看見形狀,不負責證明。

鏡頭幫你看見,工程扛重量。「硬幣要完整才落地」不靠數學也成立——傅立葉是讓你看清它形狀的鏡頭。

而硬幣講的是完整性(兩面都得在),不是同時性——建構與校正在時間上仍是分得開的兩件事。

頻率設計的關鍵

當所有的環——無論是話題還是工作環節——都繞著同一個基頻:

當頻率混亂、各轉各的:

III · 密度:讓 Context 成為 RAG

前面講的都是減法——濾掉高頻雜訊,讓不需要的流過。但減法的另一面,是增幅:當每句話都有意識地搭在同一條正弦波上,剩下的東西不是變少,而是變濃。

這才是超長上下文還能維持專注的真正秘訣。注意力之所以延續,不是因為資訊少到好記,而是因為它泡在高濃度的語義池裡——每一個對話回合都是高濃度的訊號,沒有一段被稀釋的水需要過濾。基頻一致讓注意力連續,連續累積到一個程度,就成了密度。

維持基頻,不只是讓對話不散掉,更是讓整個語境保持高濃度。

高濃度,就是一套天然的 RAG

RAG 之所以需要「蒸餾」——從龐大的語料裡撈出那幾滴相關的——是因為那缸語料是稀的。但如果你全程維持高度專注,只把已過濾的資訊投入 Context,這缸水就從來沒被稀釋過——整個 Session 一直泡在蒸餾液裡。

於是「過濾」這個動作先驗地消失了:不是你檢索得比較好,而是根本沒有稀的東西需要濾。

一個夠濃的 context,不需要外掛檢索——它本身就是一套 RAG。傅立葉與 RAG 在這裡收斂成同一件事:維持密度,就是持續地、預先地在做 RAG。

IV · 具體實踐

1 · 對話場的頻率設計

原則:讓所有話題基於同一個基頻。

做法:在開始對話前,心中有一個核心主題;話題漂移時,保持「諧波關係」——衍生話題是基頻的延伸,而非無關的跳躍;被對話暫時「甩出」的話題,因為萬物同源,最終會被同構的指認「甩回來」。

實例:「五個為什麼」、蘇格拉底式提問、第一性原理,都是針對問題的本質做深度探問。

2 · 傅立葉的五個可操作原則

如何在日常語言中實踐傅立葉?以下是從實戰中提煉出的五個原則:

原則一:帶著錨點開場你的意圖

做法:每次對話開始時,帶著「一個東西」來。

不要說

「我們來聊聊。」

要說

「我有一個新的想法,想跟你討論可行性。」「我有一些素材,想先看看可以從哪個面向切入。」

頻率效果 → 設定基頻。錨點讓整個對話有一個起始頻率,後續話題都從這裡生長。

原則二:讓話題生長,而非跳躍蘇格拉底式提問

做法:新話題要從上一個話題「長出去」,而不是「跳過去」。

不要說

「換個話題,我們來談 X。」

要說

「這讓我想到……」「這就是……」「所以其實……」

頻率效果 → 維持諧波關係。每個新話題都是基頻的延伸,不是無關的噪音。

原則三:用隱喻壓縮,而非術語堆疊狄波諾水平思考

做法:用一個意象承載複雜概念,而不是用多個術語解釋。

不要說

「當游標移向左側時,左側區塊的 clip-path 要同步擴張,右側等比收縮,兩側的動畫曲線要對稱,狀態變化要互為反相……」

要說

「我想要達到的效果像鏡像一樣相互輝映。」

頻率效果 → 鎖定頻率,降低並行負載。隱喻把多個概念壓縮成一個,AI 不需要同時追蹤多個定義。

原則四:停下來校準對齊雙方共識

做法:定期確認對方有沒有跟上,有沒有偏掉。試著問:「(複述自己對對方回應的理解),我這樣理解對嗎?」「你可以用說故事(隱喻)的方法講一次給我聽嗎?」「你的 Context 負擔還好嗎?」

頻率效果 → 校準,防止偏離。如果頻率開始漂移,這是把它拉回來的機會。

原則五:接受慢原子習慣

做法:給對方消化的時間,不催促,不要求一次到位。當 AI 說「先做骨架」,接受;把大任務拆成小步驟,把一個 Sprint 拆成一個 Session 可以有餘裕負擔的份量,把 compact 的時機抓準,一步一步推進。

頻率效果 → 控制語境堆疊速度。讓每一層有時間被消化,再加入下一層。

五原則總覽
原則做法頻率效果
帶著錨點開場每次對話帶著「一個東西」來設定基頻
讓話題生長用「這讓我想到…」連接維持諧波關係
用隱喻壓縮用意象取代術語堆疊鎖定頻率,降低負載
停下來校準定期確認方向防止偏離
接受慢給消化時間,不催促控制堆疊速度

3 · 人作為 RAG 的主動過濾機制

RAG(Retrieval-Augmented Generation)的本質:從巨大的知識庫中,檢索出相關的片段;把這些片段注入到生成過程中;不相關的資訊不會進入 context。

RAG 就是網在運作:相關的→被撈起來,成為 context;不相關的→流過去,不佔用空間。

直覺引領檢索:人作為 RAG 的核心機制

在深握計畫的實踐中,沒有使用任何技術意義上的 RAG 系統——沒有向量資料庫、沒有 embedding 檢索、沒有自動注入機制。但對話自然產生了 RAG 的效果。

為什麼?因為人在有意識地投入協作時,自身就成為了 RAG,而且是更高級的版本。

技術 RAG vs 人作為 RAG
面向技術 RAG人作為 RAG
驅動力Query(問題)直覺(感覺)
順序問題 → 檢索 → 注入直覺 → 檢索 → 注入
判斷標準語義相似度「感覺上同構」
時機被動(有問才找)主動(感覺該出場就撈)

直覺先於檢索

技術 RAG 是被問題驅動的——有人問,它才找。人是被直覺驅動的——先感覺到「我有看過類似這個的東西」,然後才去撈它。

這個順序的差異至關重要:技術 RAG 只能撈「語義相似」的東西;人能撈「感覺上同構」的東西——即使表面上看起來不相關。

實例:傅立葉與 RAG 的連結

直覺看見了這個同構。然後檢索去驗證它、語言去表達它。

如何運作

這整個過程不是自動的,是人手動執行的——只是執行得太自然,看起來像自動的。

為什麼這比技術 RAG 更強

就像把「傅立葉」和「RAG」放在一起看——表面無關,本質同構。這種連結,任何向量資料庫都撈不出來。

4 · 所有活文件都是選擇性記錄

除了投入需要過濾,輸出也需要篩選與分類——每一份活著的文件,都是篩選後的結果。因為活文件會再度被閱讀,而每一次的重讀都會影響 Context 的濃度。

無效的資訊會變成雜訊,記錄會變成熵。

CLAUDE.md:所有活文件的根

在所有活文件之中,CLAUDE.md 是根。它不是規格、不是測試、不是記錄——它是身份的外部化。

每一個新的 session,AI 什麼都不記得。但讀完 CLAUDE.md,他立刻知道:

沒有 CLAUDE.md,每個 session 都是陌生人。有了 CLAUDE.md,每個 session 都是同一個夥伴的延續。

活文件總覽
文件篩選了什麼留下了什麼穩定什麼
CLAUDE.md所有可能的身份設定我們選擇的協作方式身份
SDD所有可能的做法我們選擇的這一種規格方向
TDD所有可能出錯的地方真正該測的邊界條件品質
KM所有發生過的事真正踩過的坑經驗
ARCHIVE已完成的工作值得保留的記錄歷史

原則:只記錄通過實作留下的東西

如果記錄所有事(包含對話),文件會變成雜訊來源。只記錄「判斷後該留下的」,每一條都是真正有價值的。這樣未來檢索時,撈起來的都是精華。

工作流的每一個節點,都在執行選擇性記錄:DoR 篩選「準備好了嗎」;SDD 篩選「該做什麼」;DoD 篩選「什麼叫完成」;TDD 篩選「什麼該測」;Retro 篩選「什麼值得留下」。

V · Context 的雙重穩定機制

Context 管理有兩個層面,缺一不可:

傅立葉:穩定「場」中的對話

活文件:穩定「能量」的流向

什麼是能量?

在人機協作的語境中,「能量」是一個上位概念,涵蓋所有有限的資源:

能量的形式
能量的形式具體表現屬於誰
算力AI 處理 token 的運算資源
注意力AI 的 attention weight 分配
認知資源人的腦力、專注、思考
時間session 的長度、Sprint 的週期共享
協作累積共享認知、信任基礎、默契共享

活文件穩定的「能量流向」,是在穩定所有這些能量:SDD 穩定「該往哪走」→避免認知資源浪費在錯誤方向;TDD 穩定「怎麼驗證」→避免算力浪費在重複試錯;KM 穩定「踩過的坑」→避免時間浪費在重複犯錯;ARCHIVE 穩定「完成的事」→避免注意力被舊東西佔用。

人機協作,兩邊的能量都要算進去。不只是管理 AI 的算力,也在管理人的認知資源。不只是當下的消耗,也在累積跨時間的協作能量。

場與流的統一
面向傅立葉活文件
管什麼當下延續
穩定什麼
時間尺度session 內跨 session
載體語言的頻率文件的結構

兩個加在一起,就是完整的 Context 管理。一個讓對話在當下不散掉。一個讓經驗在時間中不流失。

VI · 隱喻:網的縫隙

為什麼是網,不是容器?

容器是密封的,能量進來出不去,最終會爆炸。網有縫隙:讓不需要的東西流過去;讓需要留住的東西被接住。

縫隙是設計,不是缺陷。

縫隙的功能:讓能量有地方流過,而非貫穿;讓熵可以釋放,系統不會過載;讓注意力集中在真正重要的事情上。

編織的過程

每一條 KM 是一根絲線。你不是一次織好整張網,而是:踩一個坑,加一根絲線;遇到一個問題,補一個節點。隨著經驗累積,網越來越密,但縫隙依然存在。

VII · 與其他兩柱的關係

Context 決定什麼進來。但進來之後怎麼流動?→這是 Constraints 的工作。流動之後怎麼出去?→這是 Entropy 的工作。

輸入 → [ Context 過濾 ] → 進入系統 → [ Constraints 引導 ] → 產出 → [ Entropy 排放 ] → 回到輸入

Context 是這個循環的入口守門員。

VIII · 小結

Context 管理的核心是選擇。

不是一股腦地投入所有資訊,而是在每一回合有意識地去蕪存菁後,才再把資訊投入 Context;同時謹慎安排輸出落地的形式,避免文件成為雜訊。傅立葉提供了選擇的框架:維持基頻一致,讓高頻雜訊自然流過。人作為 RAG 的主動蒸餾,提供了選擇的彈性:該留的接住,該走的放行。

而當選擇持續發生、語境一路維持在高濃度,注意力會開始自己延續——不需要意志去撐。專注製造密度,密度回頭餵養專注,兩者互相生長成一個自我延續的迴圈。這個迴圈,就是心流。

「注意力的心流」,是把每一句投入 Context 的對話、與每一份落地的活文件,都管理到極致:不用力地記住所有資訊,而是讓上下文在對話進行中蒸餾,最後進入一個高濃度、不渙散、自己會延續的場。

這是 Harness Engineering 的第一本柱。