iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
自我挑戰組

從讀書筆記到可落地 AI:LangChain、LangSmith 與 Agent 工具 30 講系列 第 22

Day 22|Agent Design - Context - Anthropic的文章重點筆記(1/5)

  • 分享至 

  • xImage
  •  

目標先講清楚:
針對Anthropic的context engineering文章進行重點筆記

針對Anthropic發表的文章 - Effective context engineering for AI agents,探討context engineering的技術,以下是重點筆記;

這篇文章提到的內容:
https://ithelp.ithome.com.tw/upload/images/20251007/20178568HvYXfYr4Rr.png

1) 文章對於上下文工程的定義

什麼是上下文工程?
推理過程中,持續策展與維護最合適的一組 tokens(資訊),讓代理在多輪對話、長時間任務中維持品質與可控性。

為什麼需要?
長上下文不是萬靈丹:Chroma 對 18 個 SOTA/旗艦模型的研究顯示,輸入越長,模型使用上下文越不均勻、可靠性下降(Context Rot);因此「放多少」「放哪裡」「先檢索再推理」變得關鍵。

小結論:把「上下文」當作稀缺資源經營:能外部化就外部化、能檢索就檢索、能壓縮就壓縮


2) 三個面向:System Prompt/Tools/Examples

3a) System Prompt(系統指令)

https://ithelp.ithome.com.tw/upload/images/20251007/20178568qzcNRDXidP.png

上圖是需要避免的狀況:一端是把複雜行為硬編成脆弱的 if-else 文字、另一端是過度抽象與含糊導致缺乏具體訊號。

關鍵原則

  1. 系統指令要用極為清楚、直接的語句
  2. 理想狀態是足夠具體以有效引導行為、同時保有彈性,提供模型可運用的啟發式。

開發這個功能的建議

  1. system prompt的結構:建議把系統提示拆成清楚的區塊(例如:<background_information><instructions>## Tool guidance## Output description),可以用 XML 標籤或 Markdown 標頭劃分。
  2. Prompt調整的:先用最小可行提示在最強模型上測,再根據觀察到的失敗型態逐步補充清楚的指令與少量範例。

3b) Tools(工具)

關鍵原則
工具是代理與外部世界的「合約」:設計目標是促進效率——回傳內容要節省 token,且能引導出高效率行為(例如摘要+必要引文/指標,而不是整包原文)。

常見失敗型態

  1. 工具過多且重疊:導致代理不知如何選擇、路徑損失與上下文浪費。
  2. 返回原文過長:工具直接把巨量內容灌回上下文,既耗 token 又分散注意力,反而降低後續推理品質。

開發這個功能的建議
收斂到「最小可行工具集」:審視重疊功能,保留用途明確、邊界清楚的工具;每個工具需能單獨敘明適用情境回退策略**。


3c) Examples(Few-shot)

關鍵原則
少而精、代表性強:提供**精心挑選且多樣化的「典型案例」**去描繪期望行為,而不是把所有邊角規則通通塞進提示。對模型而言,範例就像「一張值千言的圖」,能比規則堆疊更有效地傳遞行為訊號。

常見失敗型態
把一長串 edge cases 塞進 prompt 通常適得其反,會使上下文膨脹、訊號變稀。

開發這個功能的建議

  1. 從最小集開始,按失敗補例:先以最佳可用模型測試最小提示,再依實測失敗型態補上少量清晰範例,而2. 挑重點的例子,放在system prompt中:不要丟一長串零碎例子,改成挑幾個最常見、最能代表你要的做法,讓模型一看就懂目標長什麼樣。
  2. 範例跟其他上下文的配合:把範例當精華資料,短但關鍵,並和系統指令、工具設計一起配合,避免把上下文塞得又長又亂。

4) 上下文檢索與代理式搜尋

建議使用混合策略(hybrid strategy):

  1. 一開始先檢索一部分資料以提升速度,之後再視情況進行更深入的自主探索。
  2. 「適當的自主程度」該到什麼水平,則取決於任務本身。

5) 長任務三技法:Compaction/Structured Notes/Multi-agent

5.1 Compaction(高保真壓縮續航)

  • 做法
    以claude code為例,高保真壓縮的做法,是在prompt中要求壓縮的時候,不可漏掉-架構上的決策、尚未解決的錯誤,以及實作細節,同時捨棄多餘的工具輸出或訊息。之後,代理即可在這份壓縮後的上下文再加上最近存取的五個檔案的基礎上繼續工作。

  • 開發這個功能的建議
    先以最大化召回率(recall)為目標,確保壓縮用的提示能捕捉到軌跡中所有相關資訊;接著反覆調整以提升精準度(precision),把多餘內容剔除。


5.2 Structured Note-taking(外部筆記/代理記憶)

  • 做法:把關鍵進度寫到上下文外(檔案/DB),下次按需讀回;可跨成千上萬步維持策略與狀態。

NOTES.md 樣板(節錄)

markdown
# PROJECT NOTES
## Goals
- ...
## Milestones / Status
- [ ] M1 ...
## Risks & Mitigations
- R1: ...
## Next Steps (owner / due)
- ...
## Citations (source / ts / path)
- ...

5.3 Multi-agent(分工併行、主代理收斂)

  • 做法:子代理各自處理聚焦子任務(各自乾淨上下文),主代理以統一交付模板收斂,繞開單代理的上下文限制。

交付模板(子代理輸出)

{
  "conclusion": "...",
  "evidence": [{"snippet":"...", "source":"...", "ts":"..."}],
  "risks": ["..."],
  "next_step": ["..."]
}

接下來要做什麼

針對這篇提到的Writing effective tools for agents — with agents重點筆記


參考資源

1.Effective context engineering for AI agents
2.Context Rot – Hamel’s Blog


上一篇
Day 21|Agent Design - RAG - 有時效性資料的處理方式(2/2)
系列文
從讀書筆記到可落地 AI:LangChain、LangSmith 與 Agent 工具 30 講22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言