跳至主要內容
EMil Wu
EN

#12

實戰 Tips 0:三個跟 AI 協作前該校準的事

Practical Tips 0: Three Things to Calibrate Before Working with AI

實戰心得 12 分鐘閱讀
三個校準概念:說清楚 vs 放手、策略 vs 指導、加法 vs 減法 三個校準概念:說清楚 vs 放手、策略 vs 指導、加法 vs 減法
三個跟 AI 協作前該校準的事:目標、邊界、節奏

昨天在 R&D Weekly SyncUp 分享了一些 Agent 的建構心得並 Demo 了最近的一些工作跟對話內容,有幾個 Tips 想在這邊也分享給大家。

前 11 篇我們建了兩個系列:技術框架(1–7 篇)解釋 AI Agent 系統長什麼樣,心法(8–11 篇)解釋工作流怎麼設計。

我們今天不談架構、不談方法論,談的是你每天跟 AI 互動時,那些容易被忽略但影響巨大的細節。


Tip 1:分清楚該說清楚的,跟該放手的

AI 跟人類的思考方式有根本性的差異,AI 目前的架構在仿造人類,但底層結構不同,他處理輸入的方式也不同,而這個差異帶來一個核心問題:什麼時候該說清楚?什麼時候該放手?

該說清楚的:人類的隱含 Context

舉個工程師常講的笑話:你跟工程師說「幫我買五個蘋果,如果有看到香蕉的話買一個」,有可能他最後買了一個蘋果回來,因為他看到了香蕉,我知道這個工程師笑話很爛,但他帶出一個有趣的觀點,那就是正常人都能理解意思是「五個蘋果 + 一個香蕉」,但思考直線的工程師可能會誤會(會嗎?ha~),其實 AI 也可能犯同樣的錯,這種錯誤我稱之為人類的 Context,意即人類可以靠常識和上下文推斷出來的東西,但 AI 在邏輯上有可能搞錯。

最常見的場景是:你跟 AI 說明檔案的讀取或修改時,他搞錯目錄、誤會主詞,人類會因為上下文知道「它」指的是什麼,AI 大部分時候也可以,但在少部分情況下會出問題,而 Pete Hodgson 在一篇文章 [3] 中精準地描述了這個現象:LLM 像一個「寫程式能力在 senior 等級、但設計決策在 junior 等級」的開發者,他懂技術,但缺乏你專案的隱含上下文,而 2025 年一篇對 13 個主流 LLM 的研究 [1] 也驗證了這點:模型在一般任務上表現優異,但在需要精確遵守特定指令(比如品牌語調、格式規則、內容邊界等)的場景中表現大幅下滑。

所以,這些地方該說清楚:檔案路徑、主詞指代、隱含的商業邏輯、「人類覺得理所當然但 AI 不會自動推斷」的前提。

而該放手的:AI 的知識空間

WHAT vs HOW:人類定義目標與約束,AI 自由探索執行路徑 WHAT vs HOW:人類定義目標與約束,AI 自由探索執行路徑

但反過來,AI 擁有的知識比你想像中多很多,如果你長期跟 AI 合作,你會發現一件事:在某些場景下,你越指導 AI、給他越多框架,他反而會越笨。

為什麼說「某些場景」?因為這裡有一個重要的 nuance,MIT Sloan 2025 年的研究 [14] 發現,更詳細的 prompt 帶來的效果等同於升級模型,我知道這看起來好像跟標題的「放手」有點矛盾,但其實 USC 的 PRISM 研究 [15](2026 年 3 月,目前最新)也發現,persona prompt(如「你是專家工程師」)在寫作、STEM 推理等 8 類任務中有 5 類都有效,只有在純事實查詢時才會降低準確率,所以「越指導越笨」不是普遍成立的,那差別到底是什麼?

其實關鍵的區分是:你在指導什麼?

舉個具體例子:假設你要開發一個網站,你告訴 AI:「用 Next.js 14 + Tailwind + Prisma + PostgreSQL,先建 monorepo 結構,再用 Server Components 寫首頁,然後……」

這是在指導 HOW,也就是執行路徑,你把技術選型、架構決策、實作順序都鎖死了,AI 會乖乖照做,但他不會告訴你「其實你這個場景用 Astro 更適合」或「Prisma 在這個規模下會有效能問題」,因為他的判斷力已經被你的指令壓縮了。

但如果你說:「我要做一個部落格網站,預期流量不大,需要 SEO 友善、載入速度快、部署成本低。請先調查適合的技術方案,給我你的建議。」

這是在說清楚 WHAT,也就是目標、約束、你在乎的事,AI 會在你定義的框架內自由探索,用他龐大的知識庫幫你做技術選型,而不是被你的先入為主的指令限制住。

這就是 Tip 1 的核心:對目標和約束要清楚,對執行路徑要放手。

flowchart LR subgraph WHAT["WHAT — 該說清楚
人類定義"] direction TB G["目標 Goals"] C["約束 Constraints"] CTX["隱含 Context"] end subgraph HOW["HOW — 該放手
AI 探索"] direction TB T["技術選型"] A["架構設計"] I["實作路徑"] end WHAT -->|"定義邊界"| HOW style WHAT fill:#f0f7f1,stroke:#6b8f71,stroke-width:2px style HOW fill:#fdf6f0,stroke:#c67a50,stroke-width:2px
Tip 1 的核心區分:人類負責 WHAT(目標與約束),AI 負責 HOW(執行路徑)

Anthropic 在 Context Engineering 指南 [4] 中也明確說到:隨著模型變得更聰明,他們需要更少的指令性工程(prescriptive engineering),我們應該允許 agent 擁有更大的自主性,而傳統的模板和 few-shot examples 在 agent 需要自主循環工作時反而會適得其反。

但這馬上帶出一個問題:如果我不該指導 AI「怎麼做」,那我(人類)的介入應該是什麼形式?


Tip 2:你的介入是策略,不是指導

上面那個網站的例子,其實已經暗示了答案,你告訴 AI「用 Next.js + Tailwind + Prisma」,這是指導,因為你在替他做技術決策,而你告訴 AI「SEO 友善、載入快、部署成本低」,這是策略,你是在定義約束條件跟邊界。

所以,指導是你給 AI 一條路,而策略是你給 AI 一個邊界,讓他在裡面自己找路。

flowchart TB subgraph GUIDANCE["指導 Guidance — 你替 AI 做決定"] direction LR HU1["人類"] -->|"用 Next.js"| S1["Step 1"] S1 -->|"加 Tailwind"| S2["Step 2"] S2 -->|"建 Prisma"| S3["Step 3"] end subgraph STRATEGY["策略 Strategy — 你定義邊界,AI 自己找路"] direction TB HU2["人類定義邊界"] HU2 --> B1["SEO 友善"] HU2 --> B2["載入快"] HU2 --> B3["成本低"] B1 & B2 & B3 --> AI["AI 在邊界內自由探索"] end style GUIDANCE fill:#fde8e8,stroke:#c45a4a,stroke-width:2px style STRATEGY fill:#f0f7f1,stroke:#6b8f71,stroke-width:2px
指導是替 AI 鋪路,策略是給 AI 畫邊界 — 後者讓 AI 發揮知識庫的優勢

Anthropic 在 Building Effective Agents [6] 中建議的 prompt 結構,也就是 Context、Task、Constraints、Format、Criteria,本質上就是這個思路:最佳的 prompt 在具體指引與靈活性之間取得平衡, 而 Figma 設計團隊 [9] 也提出了同樣的觀點:約束不會限制創意,約束賦予創意形式。

但策略不是萬能的

這裡也有反面,2026 年初的 Agentic AI 架構調查 [18] 指出,業界的主要實務趨勢是「可控編排」(controllable orchestration),也就是說他們發現在複雜的多步驟任務中,純粹的約束式方法並不足以讓 AI 可靠運作,這種情境下,AI 需要明確的步驟引導才能確保可預測性,而 Plan-and-Solve [16] 的研究也發現,在推理任務中,將問題拆解為明確的逐步計畫,效果永遠優於只說「Let’s think step by step」。

所以,真正的原則不是「永遠只給策略」,而是:根據任務性質選擇介入深度。

  • 開放性/探索性任務(技術選型、設計方向、研究調查)→ 給策略、約束,讓 AI 探索
  • 精確性/多步驟任務(Migration 腳本、資料處理 pipeline、已確定的實作)→ 給明確步驟,減少自由度
flowchart LR TASK["任務性質"] --> OPEN["開放性/探索性
技術選型、設計方向、研究"] TASK --> PRECISE["精確性/多步驟
Migration、Pipeline、已確定實作"] OPEN --> STR["給策略 + 約束
高自由度"] PRECISE --> STEP["給明確步驟
低自由度"] style OPEN fill:#f0f7f1,stroke:#6b8f71,stroke-width:2px style PRECISE fill:#fdf6f0,stroke:#c67a50,stroke-width:2px style STR fill:#f0f7f1,stroke:#6b8f71,stroke-width:1px style STEP fill:#fdf6f0,stroke:#c67a50,stroke-width:1px
根據任務性質選擇介入深度:探索性任務給策略,精確性任務給步驟

策略要包含正面跟反面

定義策略時,你需要同時想兩個方向:AI 應該做什麼,以及不應該做什麼。

這邊舉個例子:你告訴 AI「A 使用者要看到 A 物品,B 使用者要看到 B 物品」,AI 有可能做出一個頁面,同時顯示 A 和 B 物品,因為他認為兩個條件都滿足了,但你的隱含意思是:A 不該看到 B、B 不該看到 A。(我最近在做網站 QA Agent 時剛踩到這個坑)

不過這裡有一個 nuance 值得注意:早期的研究(Pink Elephant Problem [7])認為負面指令(「不要做 X」)效果不如正面指令(「做 Y」),類似心理學的反諷效應,但 2025 年 3 月一篇更新的研究 [17] 挑戰了這個結論,而隨著模型規模增大,模型處理否定指令的能力顯著提升,而另一篇 2025 年 6 月的研究 [19] 更發現,只用負面樣本訓練也能持續提升推理表現。

所以,正面約束跟反面約束都是有效的工具,不需要刻意只用其中一種,更重要的是:你有沒有把兩個方向都想過? 很多人只告訴 AI「要做什麼」,卻忘了想「不要做什麼」,但事先定義的邊界,權重遠大於事後發現錯誤時的修正,轉換成在實務上的建議就會是:在約束模糊或 AI 容易誤解的地方,用正面框架會更可靠:

容易被誤解的寫法更明確的寫法
不要修改 A 模組修改範圍限定在 B 模組
不要用舊版 API使用 v3 API
A 使用者不該看到 B 物品A 使用者的頁面只顯示 A 物品

但如果你是在邊界清楚的場景下,「不要做 X」就會一樣有效,特別是當你用的是較新、較大的模型時。

用第二篇五層架構的語言來說:指導是你在替 Agent 做決定,策略是你在寫 Skill,提供判斷的方法論,讓 Agent 自己決定怎麼做。

但策略要定期「健檢」

當你開始給 AI 各種約束,從正面的、反面的、到策略性的,這些約束會隨著時間累積變多,因為有些約束是你一開始就設定的,有些是合作過程中因為踩到坑而補上的,而累積到一定程度後你會發現一件事:你餵給 AI 的約束跟 context 已經多到開始互相干擾了。

這就帶出了最後一個 Tip。


Tip 3:迭代要分「加法」跟「減法」

遇到錯誤的時候,很多人的直覺是繼續修、繼續改、繼續加約束,但如果你還記得第九篇文章(精煉循環),就知道這不是線性的,迭代有時候會讓事情變好,有時候會讓事情變差。

不過,好的迭代是存在的,先說正面的:NeurIPS 的 Self-Refine 研究 [20] 顯示,讓 LLM 反覆對自己的輸出生成回饋並精煉,品質會持續提升,他們的研究顯示 7 個任務平均提升約 20%,而 2025 年底的應用研究 [21] 也發現,迭代式自我精煉讓測試正確率從 53% 升到 75%–89%。

Loading chart…
研究證實:有結構的迭代式精煉可帶來 20%~68% 的品質提升 [20][21]

所以迭代本身不是問題,問題是無結構的重複,也就是說問題出在你用同樣的方式、同樣的 context 不斷重試。

morphllm 的研究把這個現象稱為 Context Rot [10]:即使 context window 還沒滿,LLM 的輸出品質也會隨著輸入長度增加而顯著下降,18 個最新的模型全部在長輸入時表現變差,典型症狀包括遺忘約束條件、矛盾修改、重複工作等等。

不過這裡也有 nuance:新一代模型已經在改善這個問題,Anthropic 報告 Claude Opus 4.6 在完整 1M token context 下維持 90% 的檢索準確率 [22](我個人經驗是過 75%~80% Context 就會開始緩步下降),而 Factory.ai 的評估 [23] 也顯示,結構化的 context compression(錨定式摘要)可以有效抵消 context rot,不需要每次都重啟對話。

所以不是「迭代必然遞減」,而是「無結構的迭代必然遞減」, 有結構的迭代(明確回饋、定期壓縮、清楚的改善目標)可以持續進步。

Loading chart…
無結構的重複重試導致 Context Rot,品質持續下滑;有結構的迭代則能持續進步 [10][20][23]

加法跟減法

加法與減法:從建立系統到精煉收束的迭代節奏 加法與減法:從建立系統到精煉收束的迭代節奏

這就帶出了加法與減法的概念:

加法階段: 一開始跟 AI 合作時,迭代自然是加法,因為你在建立系統、補充規則、增加功能、加約束,這時候加法是正常的。

減法階段: 當你遇到瓶頸,比如同一個問題修了好幾次還是出現、AI 的回應品質明顯下降、迭代不再帶來進步,這時候你需要的不是加更多東西,而是:

  1. 退後一步,重新審視你跟 AI 溝通的方式和所有累積的限制
  2. 找出缺失的 Context,也許不是 AI 不夠好,而是有些關鍵資訊他不知道。請他做 research、explore,找到缺少的資料
  3. 精煉現有內容,請 AI 看看目前的東西裡面,哪些進行到現在已經不需要了、哪些限制互相矛盾、哪些可以被整理掉

arXiv 上一篇 2025 年的研究 [11] 發現,AI 輔助編程中 46% 的變更是新增行,而重構的比例逐年下降,因為 AI 天生傾向加法,不擅長減法

Loading chart…
AI 輔助編程中 46% 是新增程式碼,重構比例逐年下降 — AI 天生傾向加法 [11]

Google Chrome 團隊的 Addy Osmani [12] 分享的做法跟這個思路一致:把工作拆成 AI 能在 context 範圍內處理的小塊,每個步驟實作、測試後再進入下一步,而他們的核心觀點是:知道何時該用 AI、何時該自己動手,是 AI 讓你加速還是減速的關鍵分水嶺,Google 內部的隨機對照實驗 [24] 也顯示,使用 AI 的開發者平均快了約 21%,所以 AI 不是讓你變慢的原因;不知道什麼時候該停、什麼時候該減才是。

我自己的做法是:每跟 AI 合作半天到一天,就暫停一下, 回頭看一下剛才做的所有東西,用減法把目標收束到一個可以繼續進行的框架跟方向中。

加法讓你前進,減法讓你不迷路。


三個 Tips 的關係

這三個提醒不是各自獨立的,它們是一條連續的思路:

flowchart TD T1["Tip 1
分清 WHAT vs HOW
對目標清楚,對路徑放手"] Q1{{"但放手後
人類該怎麼介入?"}} T2["Tip 2
介入是策略,不是指導
定義邊界,不規定路線"] Q2{{"但策略跟約束
會越積越多?"}} T3["Tip 3
迭代分加法與減法
知道何時加、何時減"] CORE(["核心:對目標清楚
對路徑放手
對節奏有意識"]) T1 --> Q1 --> T2 --> Q2 --> T3 --> CORE style T1 fill:#f0f7f1,stroke:#6b8f71,stroke-width:2px style T2 fill:#fdf6f0,stroke:#c67a50,stroke-width:2px style T3 fill:#f0eff7,stroke:#7a6b8a,stroke-width:2px style CORE fill:#faf8f5,stroke:#2d2d2d,stroke-width:3px style Q1 fill:#fff,stroke:#999,stroke-width:1px style Q2 fill:#fff,stroke:#999,stroke-width:1px
三個 Tips 是一條連續的思路:每一個 Tip 自然引出下一個問題

Tip 1 告訴你 AI 跟你的認知不同,該清楚的要清楚(目標、約束),該放手的要放手(執行路徑),但「放手」不是「放任」,你還是需要介入,只是介入的方式該是什麼?

Tip 2 回答了這個問題,你的介入是策略(定義邊界),不是指導(規定路線),策略要包含正面跟反面、要根據任務性質調整介入深度,但隨著策略跟約束的累積,你的 context 會越來越龐雜!

Tip 3 處理這個問題,迭代不是永遠加法,好的迭代有結構、有回饋、有減法,所以知道什麼時候該加、什麼時候該減,是跟 AI 長期協作的關鍵節奏。

而這就是貫穿三個 Tips 的核心:

把 AI 當作一個能力很強但需要清楚邊界的協作者:對目標要清楚,對路徑要放手,對節奏要有意識。


參考資料

Tip 1 相關:

  • [1] “The Instruction Gap: How LLMs Get Lost Following Instructions” (arXiv, 2025) — 13 個 LLM 在精確指令場景中表現下滑 連結
  • [2] “Telling an AI model that it’s an expert makes it worse” (The Register, 2026) — USC 研究:persona prompt 降低事實準確率 連結
  • [3] “Why Your AI Coding Assistant Keeps Doing It Wrong” (Pete Hodgson, 2025) — AI 是 senior coder 但 junior designer 連結
  • [4] Anthropic, “Effective Context Engineering for AI Agents” — 模型越聰明越不需要指令性工程 連結
  • [5] “Chain-of-Thought Prompt Engineering for Medical QA” (ScienceDirect, 2025) — 增加 prompt 複雜度不保證更好的效果 連結
  • [14] “Study: Generative AI results depend on user prompts as much as models” (MIT Sloan, 2025) — 更詳細的 prompt 效果等同升級模型 連結
  • [15] “Expert Personas Improve LLM Alignment but Damage Accuracy” (USC PRISM, 2026/03) — persona prompt 在 8 類任務中有 5 類有效 連結

Tip 2 相關:

  • [6] Anthropic, “Building Effective Agents” — prompt 應在指引與靈活性之間平衡 連結
  • [7] “The Pink Elephant Problem” (16x Engineer, 2025) — 負面指令的反諷效應 連結
  • [8] “Why Positive Prompts Outperform Negative Ones” (Gadlet) — 正面指令效果優於負面 連結
  • [9] “Cooking with Constraints” (Figma Blog) — 約束賦予創意形式 連結
  • [16] “Plan-and-Solve Prompting” (ACL 2023) — 逐步計畫在推理任務中優於高層級約束 連結
  • [17] “Negation: A Pink Elephant in the Large Language Models’ Room?” (arXiv, 2025/03) — 模型越大越能處理否定 連結
  • [18] “Agentic AI: Architectures, Taxonomies, and Evaluation” (arXiv, 2026/01) — 業界趨向可控編排 連結
  • [19] “The Surprising Effectiveness of Negative Reinforcement in LLM Reasoning” (arXiv, 2025/06) — 負面訓練有效提升推理 連結

Tip 3 相關:

  • [10] “Context Rot: Why LLMs Degrade as Context Grows” (morphllm) — 18 個模型長輸入表現變差 連結
  • [11] “AI-Assisted Programming Decreases Productivity of Experienced Developers” (arXiv, 2025) — AI 傾向加法,重構比例下降 連結
  • [12] “My LLM Coding Workflow Going Into 2026” (Addy Osmani) — 小迴圈迭代、知道何時該停 連結
  • [13] “Newer AI Coding Assistants Are Failing in Insidious Ways” (IEEE Spectrum) — 2025 年模型達品質高原期 連結
  • [20] “Self-Refine: Iterative Refinement with Self-Feedback” (NeurIPS 2023) — 迭代改進平均提升 ~20% 連結
  • [21] “Self-Refining LLM Unit Testers” (2025/12) — 迭代讓正確率從 53% 升到 75%–89%
  • [22] Anthropic — Claude Opus 4.6 在 1M token context 下維持 90% 檢索準確率
  • [23] “Evaluating Context Compression for AI Agents” (Factory.ai, 2025-2026) — context compression 有效抵消 context rot 連結
  • [24] Google 內部 RCT — AI 輔助開發者平均快 21% (via Addy Osmani) 連結

支持這個系列

如果這系列文章對你有幫助,考慮請我喝杯咖啡