# 課程主題:Context Engineering 是什麼 * 近期熱門詞,實質與 Prompt Engineering 指涉同一概念:優化語言模型的輸入 * 重點從「格式與咒語」轉向「自動化管理輸入的內容與脈絡」 * 在 AI Agent 時代,是讓 Agent 穩定運作的關鍵技術 # 語言模型觀點:f(x) 與可改變之處 ![image](https://hackmd.io/_uploads/H1vLWaVJWx.png) * 語言模型可視為函式 f,輸入 x,輸出 f(x) * 想改善輸出有兩條路:改 f(訓練/學習)或改 x(改善輸入) * 多數情境無法改 f(閉源、成本高),實務聚焦在改 x # Context Engineering 與 Prompt Engineering 的差異 ![image](https://hackmd.io/_uploads/SyfKW6VyWe.png) ![image](https://hackmd.io/_uploads/S1rBzpVybx.png) * 本質相同:都在「把輸入弄好」 * 焦點不同:Prompt Engineering 常強調輸入格式與指令寫法;Context Engineering 強調管理「輸入的脈絡與資料」 * 名稱更新帶來觀念轉移,而非能力飛躍 # 神奇咒語的歷史與退潮 ![image](https://hackmd.io/_uploads/Byy6Wp4y-x.png) ![image](https://hackmd.io/_uploads/SyOGzaN1Ze.png) * 早期模型(如 GPT-3)不穩定,以格式/關鍵詞觸發長輸出或更好行為(如「位置」) * 常見咒語:一步一步思考、確認答案正確、先深呼吸、情緒勒索/小費誘因等 ![image](https://hackmd.io/_uploads/SkhVGaEkbx.png) * 模型進步後效益下降:2023/06 對數學題從 72%→88%;2024/02 無咒語已 85%,加咒語僅到 89% * 合理趨勢:模型應「本來就盡力」,不應靠咒語啟動思考 # 為何在 AI Agent 時代特別需要 * Agent 需穩定、可重現地獲取正確資訊並決策 * 透過自動化方式讓模型「自己管理自己的輸入」 * 目標是流程化與系統化,而非手工調咒語 # Context 應包含的內容 ![image](https://hackmd.io/_uploads/ry5uzpV1Zl.png) * 使用者任務與指令(要做什麼) * 具體操作指引(步驟、格式、長度限制、語氣要求) * 必要前提與情境(domain、場景、對象) * 評估/成功條件(正確性、覆蓋度、約束) * 可用資料與例子(範例輸入輸出、參考資訊) # 例子:加入情境可消歧 ![image](https://hackmd.io/_uploads/BJgMop4yZl.png) * 問「載具是什麼?」無脈絡會得到多義答案(交通工具、電子票證載具等) * 加上情境「在超商結帳時」→ 正確解為電子發票的儲存工具 * 關鍵:模型不會讀心,前提需明講 # 關於論文與 arXiv 的補充(簡要) * arXiv 是快速公開研究成果的平台,鏈接中的數字可見上傳年月(如 2206 代表 2022/06) * 早期工作(無 ChatGPT 前)多展示「咒語」對行為的影響,作為歷史背景 # 本堂課的綱要與範圍 * 釐清 Context 應包含哪些資訊 * 說明為何 AI Agent 時代需要 Context Engineering * 介紹 Context Engineering 的基本操作(以管理輸入為核心) * 不涵蓋模型訓練;重點在「訓練人」而非「訓練模型」 --- # 情境影響輸出:曼谷運河動物案例 * 同一張照片,在不同情境下模型會得出不同結論 * 未提供地點時,模型判斷為鱷魚;加上「曼谷」後改判為水巨蜥 * 顯示「情境資訊」能顯著改變模型輸出結果 * 提供背景(地點、時間、任務)可讓模型給出更合理的答案 # 範例在 Context 中的作用 ![image](https://hackmd.io/_uploads/BkkHsp41-x.png) * 給模型明確範例可顯著提升準確度 * 火星文例子:單純指令下模型自行定義「火星文」;加入範例後才正確理解需以注音替換 * 範例讓模型建立任務概念,而非僅靠文字描述 # GPT-3 時代的 In-Context Learning ![image](https://hackmd.io/_uploads/Bk3si6Vk-x.png) * GPT-3 論文指出:給模型範例可使其在不改變參數的情況下完成新任務 * 模型透過「輸入中的例子」理解任務模式 * 稱為 In-Context Learning,「Learning」加引號因其非真正學習(參數不變) # Gemini 1.5 的 In-Context Learning 案例 ![image](https://hackmd.io/_uploads/SksKipEy-e.png) ![image](https://hackmd.io/_uploads/Sy7qiTNyZx.png) * 測試極稀少語言「卡拉蒙語 (Kalamang)」翻譯 * 模型原本無法翻譯,加入教科書與字典內容後即可進行翻譯 * 關鍵在於教科書中的例句,而非文法解釋 * 顯示長 Context 可使模型在輸入階段「臨時學會」新語言 * 強調模型未改變參數,Context 移除後能力即消失 # System Prompt 的角色 ![image](https://hackmd.io/_uploads/BygEnTEJbl.png) ![image](https://hackmd.io/_uploads/BkVVhpVybl.png) * System Prompt 由模型開發者設定,提供每次互動必備資訊 * Claude 3 Opus System Prompt 約 2500 字,包含: * 模型身份(名稱、公司、日期) * 使用說明與限制(禁止事項、互動規範) * 回應風格(避免「Good Question」、知識截止時間、身份設定) * 錯誤應對策略(不要輕易承認錯誤) * System Prompt 是模型行為一致性的基礎 # 對話歷史(短期記憶) ![image](https://hackmd.io/_uploads/rJEw2a4J-e.png) ![image](https://hackmd.io/_uploads/BJqOhaV1-e.png) * 模型利用當前對話歷史接續文字生成 * 例如教它「隔壁老王=法老王」,在同一對話中能記住 * 關閉對話或開新對話後記憶消失 * 對話歷史僅影響當前 session,不改變模型參數 # 長期記憶的引入(ChatGPT) ![image](https://hackmd.io/_uploads/HJoF36N1be.png) ![image](https://hackmd.io/_uploads/BJls3pEybl.png) * 2024 年 9 月後 ChatGPT 新增長期記憶功能 * 可在「自訂 ChatGPT」中開啟記憶選項 * 長期記憶基於使用者過往互動形成,嵌入於每次輸入前 * 用戶可透過「我是什麼樣的人」測試記憶內容 * 長期記憶不可見,但影響模型對使用者的理解與回應 --- # 為何需要額外資訊來源 ![image](https://hackmd.io/_uploads/SkFn36NkZe.png) * 語言模型的知識有限且可能過時 * 需結合外部資料(如網路搜尋或內部資料庫)以補足資訊缺口 * 典型做法是先搜尋,再將結果與使用者的 Prompt 一起餵入模型 # RAG(Retrieval-Augmented Generation) * RAG 是結合檢索與生成的技術 * 流程:搜尋 → 取回相關文件 → 與 Prompt 合併 → 模型生成回答 * ChatGPT 已可直接在對話介面中搭配搜尋引擎使用 * 但仍要注意:搜尋結果可能錯誤,模型仍是「文字接龍」 # RAG 錯誤案例:Google AI Overview ![image](https://hackmd.io/_uploads/By9k6T4JWe.png) * 有人詢問「起司黏不在披薩上怎麼辦?」 * AI Overview 建議「加入 1/8 無毒膠水」 * 原因:模型引用 Reddit 玩笑貼文,誤當真 * 顯示語言模型即使有搜尋仍可能產生錯誤與幻覺(hallucination) # 搜尋輔助的效益與限制 * 搜尋能讓模型獲取正確或最新資訊(如課程官網) * 無搜尋時模型常提供錯誤網址或資訊 * 但搜尋不保證正確性,模型仍可能誤讀來源內容 # 模型使用工具的能力 ![image](https://hackmd.io/_uploads/BJBQpaV1be.png) * 搜尋引擎是一種工具,現今模型還能結合更多工具 * 各大模型(Claude、Gemini、GPT)皆支援工具調用 * 搜尋 Gmail * 讀取 Google Calendar * Gemini 甚至可直接修改日曆內容 # 讓模型學會使用工具的方法 ![image](https://hackmd.io/_uploads/ByOBT6Ny-l.png) ![image](https://hackmd.io/_uploads/r11w66V1Wx.png) * 在 Context 中說明「如何使用工具」 * 可用自然語言描述操作方式,模型能理解 * 工具指令放在「<tool>」與「</tool>」間 * 工具輸出放在「<output>」與「</output>」間 * 範例工具:`temperature(城市, 時間)` 取得氣溫 # 模型輸出與真實執行的差異 * 模型輸出工具指令僅為「文字」 * 不會自動執行實際程式 * 需自行撰寫外部程式(例如用 `eval()`)將指令轉為真實動作 * 執行後再將工具輸出回饋給模型 # Colab 實作示範概要 * 下載並使用 Hugging Face 模型(Gemma 2 9B) * 建立兩個工具:`multiply(a, b)`、`divide(a, b)` * 模型僅能輸出文字如 `multiply(3, 4)`,需 `eval()` 執行才會運算 * 模型初步運算僅靠「心算」模擬結果(未真正使用工具) # 真正呼叫工具的流程 * 從模型輸出中擷取工具指令(在標記符號間) * 將指令丟給 `eval()` 執行並取得輸出 * 將工具指令與輸出回寫到模型的 Context * 模型根據新 Context 繼續生成內容 * 若再次產生新工具請求,重複流程 * 當輸出不再出現工具請求時,即為最終回答 # 工具輸出與最終回答分離 * 工具使用過程可隱藏於系統內,不需顯示給使用者 * 使用者僅看到模型的最終答案 * 實際上結果來自工具回傳的資訊,而非模型本身的知識 --- # 工具使用流程 ![image](https://hackmd.io/_uploads/HJzX0pVyWg.png) * 準備 system/tools prompt 與使用者輸入,組成 messages(符合 Gemma 格式) * 進入 while 迴圈,每輪把 messages 丟給 pipeline 取得 response * 若 response 含工具指令,擷取 \ 與 \ 之間的命令並忽略其他文字 * 在 Python 以 eval 執行命令,將結果轉成字串存入變數,並把工具輸出與使用紀錄寫回 messages * 若無工具相關符號,直接將模型輸出作為最終答案 # 範例:數學運算工具 * 呼叫 multiply 計算 111×222 * 再呼叫 divide 計算 24642÷777,得到 31.714 * 最終對使用者顯示「111 乘以 222 除以 777 等於 31.714」 * 工具呼叫過程可對使用者隱藏 # 範例:溫度工具與可靠性 * 假工具 get_temperature:輸入城市與時間,回傳固定的「攝氏 30 度」 * 問「高雄 1 月 11 號的天氣」→ 工具回傳 30 度,模型即據此回答 * 若工具回傳荒謬數值,模型有機會質疑結果並提示輸入可能有誤 # 模型決定是否用工具 * 任務需外部資料或計算(數學、天氣)時傾向用工具 * 一般寒暄(如「你好嗎?」)不會呼叫工具 # Computer Use(直接操控電腦) ![image](https://hackmd.io/_uploads/r1cX1R4J-e.png) * 模型可用「螢幕畫面+工具集合(鍵盤輸入、滑鼠移動/點擊)」執行任務 * 能力接近人類操作電腦,可完成網站操作、表單填寫等 * 並非所有模型都勝任,需支援度較高的模型與介面 # ChatGPT 代理人模式示例:訂高鐵票 * 任務:9/20 09:00–10:00 台北→左營,兩張票 * 流程:開啟雲端螢幕→搜尋台灣高鐵→選起訖站→設定張數→選日期→輸入時間→遇到驗證碼停止 * 現況:操作可能失誤(點選不準、驗證碼無法處理),但展示了自動化潛力 # Computer Use 的操作原理 * 將螢幕截圖與可用動作(鍵盤、滑鼠座標、左右鍵)作為工具提供給模型 * 模型逐步規劃下一步行為並輸出具體座標與操作 * 實驗:定位搜尋欄座標→點擊→輸入關鍵字→按 Enter,完成頻道搜尋 # 深度思考(Reasoning/腦內小劇場) ![image](https://hackmd.io/_uploads/BksCk0NkWl.png) * 模型先在內部嘗試多種解法、規劃步驟與驗證,再產生答案 * 使用者通常只看到摘要,不見完整思考過程 * 代表模型會自產 context(推理痕跡)並用於產生最終輸出 # Context 的組成 ![image](https://hackmd.io/_uploads/ryaygAVkWl.png) * 包含:User Prompt、System Prompt、對話歷史、長期記憶、搜尋結果、工具結果、推理結果 * 目標:避免塞爆 context,只放必要資訊 # Agentic Workflow 與 AI Agent ![image](https://hackmd.io/_uploads/H1iMeCNkbg.png) * Workflow:把任務拆成 SOP 多步驟(驗證輸入→評分→檢查合理性),提升穩定性 * AI Agent:模型自行規劃與調整步驟,循環進行蒐集資料、形成假設、寫程式實驗、驗證結論 * 適用於無法事先完全預期步驟的複雜任務 --- # AI Agent 的循環 ![image](https://hackmd.io/_uploads/Hy9HgAVk-e.png) * 人類先給目標(Goal) * 模型基於當前輸入形成 Observation * 依 Observation 採取行動(呼叫工具、寫程式、產出報告、與人互動) * 環境(人、工具)回饋輸出導致新 Observation * 不斷以「Observation → Action → 新 Observation」循環運作 # 與傳統 Agent 的差異 * 輸出空間幾乎無限(自然語言可表達任意行為),非預先離散化的動作集合 * 可用人類語言下指令與提供回饋,互動門檻低 * 例:AlphaGo 僅能在棋盤上落子;語言模型可接受文字需求並產生多樣行為 # 免費體驗範例:Gemini CLI ![image](https://hackmd.io/_uploads/S1JteCV1bl.png) * 可直接操作本機電腦,具高風險(可刪檔、關程式),與雲端隔離的 Agent Mode 不同 * 會在執行前詢問許可,可批量「Allow」 * 多步驟完成任務:建立資料夾、生成 index.html/style.css/script.js、打開檔案 * 能依使用者回饋迭代修改(如降低遊戲速度) * 可嘗試開關投影片等系統操作,但成功率受環境與上下文影響 # 本質仍是文字接龍 ![image](https://hackmd.io/_uploads/BJZCeR41Wg.png) * 系統提示與初始 Observation 決定第一個 Action * Action 影響環境產生新 Observation,進而產生下一步 Action * 整體行為是「依序條件化的文字續寫」,與對話生成本質一致 # 長時運行的挑戰:Context Window ![image](https://hackmd.io/_uploads/BJbJb0EkWe.png) ![image](https://hackmd.io/_uploads/BkfmZCEJbl.png) * 模型宣稱可處理極長輸入(數十萬至百萬 token),以容納歷史與資料 * 「能輸入」不等於「能讀懂」;輸入過長時模型易混亂、表現劣化 * 實務需抑制無用內容,避免超限導致錯誤或漂移 # 過長 Context 的負面效應 ![image](https://hackmd.io/_uploads/HyF4WA4yZg.png) ![image](https://hackmd.io/_uploads/rkar-RVJbg.png) * RAG 資料量與正確率呈先升後降:過多檢索內容使模型「讀不動」 * 「Lost in the middle」現象:開頭與結尾資訊較易被利用,中段資訊易被忽略 * 即使尚未達到長度上限,表現也可能因資訊堆疊而下降 # 互動方式對表現的影響 ![image](https://hackmd.io/_uploads/SJlPWCNkbg.png) ![image](https://hackmd.io/_uploads/B1EDbR4JZe.png) * 一次給完整需求優於「擠牙膏式」逐步追加 * 多輪增量指示會降低正確率並提高不穩定性(Capability 下降、Unreliability 上升) --- # Context Rot 與長上下文失效 ![image](https://hackmd.io/_uploads/r1BubREk-g.png) ![image](https://hackmd.io/_uploads/SkhdW0Nkbg.png) * 「Context Rot」指出「可輸入很長 ≠ 真能讀懂」,長上下文常使模型在細節上失準 * 實驗:要求模型精確複製長字串(如多次出現 Apple/Apples),輸入一長就大量出錯 * 多家宣稱大視窗的模型(Gemini、Qwen、GPT-4 Turbo、Claude)在約 10^4 tokens 即顯著退化 * 結論:上下文越長越易混亂,不能盲目增長 # Context Engineering 核心 ![image](https://hackmd.io/_uploads/Sk59bR4ybx.png) ![image](https://hackmd.io/_uploads/H1Js-RE1Zx.png) * 只把「需要的內容」放進 context * 把「不需要的內容」清出 context,保持潔淨 * 實務上常用模型本身協助挑選與清理 # 招數一:選擇(Retrieval 與篩選) ![image](https://hackmd.io/_uploads/HyS2bCVy-e.png) * 以 RAG 只檢索與任務高度相關的資料再送進 context ![image](https://hackmd.io/_uploads/r1i0-AEk-g.png) * 利用模型把使用者任務轉成搜尋關鍵字,再去查找資料 * Reranking:用小模型過濾搜尋結果,只留最相關的文檔進 context ![image](https://hackmd.io/_uploads/HJwkfAV1Wl.png) * 句級檢索(如 Provence 思路):小模型逐句判斷相關性,進一步縮短輸入 ![image](https://hackmd.io/_uploads/Sk9bM0V1bl.png) * 工具版 RAG:把「工具說明」當文件,僅檢索需要的工具說明放入系統提示 * 過多工具會劣化行為;少而精的工具集合表現更穩定(早期 Plugin 僅允許選少數) ![image](https://hackmd.io/_uploads/HJTfG04yZe.png) * 記憶選擇:把龐雜歷史存外部,按需用 RAG 取回,而非全塞進 context # 記憶選擇的實作範例 ![messageImage_1762087469956](https://hackmd.io/_uploads/HJsBG0Ny-x.jpg) ![image](https://hackmd.io/_uploads/S1dOzC41bg.png) * 史丹佛小鎮(Smallville)式記憶:將代理的瑣碎經驗存檔外部,詢問或決策時再檢索 * 記憶評分三指標:最近性、重要性、與當前問題的關聯性;只將高分者放入 context * 好處:避免大量無用細節擠爆 context,同時保留關鍵脈絡 # 從互動歷史中挑範例(SpringBench) ![image](https://hackmd.io/_uploads/ryeoG0V1be.png) ![image](https://hackmd.io/_uploads/B1k2MR41Zx.png) ![image](https://hackmd.io/_uploads/Hya3MAVkbl.png) ![image](https://hackmd.io/_uploads/Sy_RG0Nkbe.png) * 任務連續進行,每題回饋對/錯;期望模型用過往經驗提升答對率 * 不能把全部歷史放入 context,改以 RAG 選最相關的過往題目作為範例 * 動態挑選範例優於固定範例;僅加入「過去答對」的記憶表現最佳 * 純放「過去答錯」的記憶常有傷害;如何安全利用負例仍是開放問題 # 招數二:壓縮(Summarization/Compression) ![image](https://hackmd.io/_uploads/H16k7RNyWx.png) ![image](https://hackmd.io/_uploads/Hkf-m0VJbl.png) * 當互動累積超過視窗,就把久遠歷史做摘要,留下關鍵要點作長期記憶 * 觸發策略可為:每 N 回合壓一次、視窗使用率達門檻即壓、固定時間間隔壓 * 遞迴式壓縮:多輪互動後將新舊摘要再合併重壓,遠古細節逐步淡出 * 直覺理由:大量互動細節本就冗餘,壓縮能去除噪音、保留決策所需訊息 # 壓縮在「電腦操作」場景特別必要 ![image](https://hackmd.io/_uploads/HyAzQ0EkZe.png) * 電腦操作含大量低價值事件(滑鼠移動、關廣告、右鍵等) * 對未來推理只需保留任務結果與關鍵狀態,微步驟應被摘要掉 * 節省視窗又維持可用脈絡 # 外部長期儲存 + RAG 回讀 ![image](https://hackmd.io/_uploads/rySHmA41be.png) * 未放入 context 的原始歷史可存硬碟或資料庫,必要時以 RAG 讀回 * 若擔心 RAG 漏檢,可在摘要中留「指向原始檔」的明確線索,需細節時再展開 * 原始庫近乎無限,但視窗有限;以摘要做門面、原文做備援 # 關於模型記憶的觀察與猜測 * 有「永久筆記」式顯式記憶與「會衰退」的隱性短期記憶兩路並存的可能 * 隱性記憶對近事較敏感、久遠會淡化;類似遞迴壓縮後的保留 * 指令要求「忘記」有時有效、有時殘留,顯示內部記憶機制非單一路徑 # 招數三:Multi-Agent(提要) ![image](https://hackmd.io/_uploads/rkm8XAVJ-l.png) * 多代理協作常結合「選擇 + 壓縮」:檢索/評審代理負責挑選,摘要代理負責壓縮 * 依任務把工作流拆解給不同專長的小模型/代理,減少單一大上下文的負擔 --- # Multi-Agent 的概念 * Multi-Agent 系統中有多個 AI agent,各自扮演不同角色(如 CEO、CTO、Programmer、Reviewer、Tester) * 每個 agent 各司其職,處理特定任務,組成類似公司協作的架構 * 除了專長分工外,從 context engineering 角度看,multi-agent 是有效管理上下文的手段 # 單一 Agent 的問題 ![image](https://hackmd.io/_uploads/HyI_70VyWx.png) * 單一 agent 需處理所有任務,context window 容易被資訊塞滿 * 例如組織出遊時,同一 agent 同時負責規劃、訂餐廳、訂旅館,context 很快爆滿 * 過多互動資訊(特別是 computer use 的細節)使模型難以維持效能 # Multi-Agent 的 Context 分離效益 ![image](https://hackmd.io/_uploads/SyUq70N1Wg.png) * 領導 agent 僅記錄任務結果(如「餐廳訂好了」),不保留細節 * 各執行 agent(如訂餐廳、訂旅館)各自擁有獨立 context,互不干擾 * 有效縮短每個 agent 的上下文長度,減少混亂,提高任務執行效率 * 即使 agent 沒有不同專長,分開任務仍能降低 context 複雜度 # 實例:撰寫 Overview Paper 的分工 ![image](https://hackmd.io/_uploads/BkQimCV1Zx.png) ![image](https://hackmd.io/_uploads/BJy27CN1-l.png) ![image](https://hackmd.io/_uploads/ryu3Q0Ekbe.png) * Overview paper 涉及上百篇論文,單一 agent 無法一次處理 * Multi-agent 可讓每個 agent 讀一篇論文、生成摘要,再交由總整 agent 整合撰寫 * 各 agent context 彼此獨立,避免超出視窗限制 * 類似人類社會的團隊合作與分工模式 # LangChain 實驗結果 * 比較 single-agent 與 multi-agent 在不同任務難度下的表現 * 任務簡單時,single-agent 可能較佳(因資訊集中) * 任務複雜時,multi-agent 優勢明顯(分散負擔、context 獨立) * 缺點:多 agent 間可能缺乏全局資訊(如餐廳與旅館距離太遠) * 結論:multi-agent 在高複雜任務中表現更佳,context 管理更有效 --- # Terminology * 情境工程(Context Engineering):以自動化與結構化方式管理模型輸入以提升輸出品質。 * 提示工程(Prompt Engineering):設計與改寫提示以誘導模型產出期望結果的實務。 * 上下文(Context):模型在生成時可見的所有訊息集合(指令、例子、記憶、檔案等)。 * 系統提示(System Prompt):平台預置的高優先序規範,用於設定身份、能力與限制。 * 使用者提示(User Prompt):由使用者提供的任務描述、需求與條件。 * 助手訊息(Assistant Message):模型先前的回覆,用於維持多輪語境。 * 對話樣板(Chat Template):以角色/分隔符格式化對話以提高可預測性的模板。 * 角色標記(Role Tag):標示system/user/assistant等說話者的標籤。 * 標頭標記(Header Tokens/IDs):在樣板中界定段落與角色的特殊符號。 * 上下文視窗(Context Window):一次可供模型處理的最大token長度。 * 記憶(Memory):跨輪或跨會話保存資訊以供後續對話使用的機制。 * 長期記憶(Long-term Memory):可在多個會話間持久化並被隱式注入的資料。 * 工作記憶(Working Memory):當前回合可見的短期對話與中間結果。 * 會話歷程(Conversation History):先前輪次訊息的序列,用於維持連貫性。 * 內嵌資料(Inline Context):直接放入提示中的背景、規則與範例。 * 工具呼叫(Tool/Function Calling):以結構化輸出觸發外部函式與API的能力。 * 代理人(AI Agent):具目標、能規劃並迭代調用工具與記憶的自主系統。 * 任務規劃(Task Planning):將高層目標分解為步驟並決定執行順序。 * 目標分解(Goal Decomposition):把複雜任務拆成可執行子任務的過程。 * 狀態機(State Machine):以狀態與轉移規則管理代理人流程的結構。 * 規則引擎(Rules Engine):以可維護規則集約束與引導模型行為。 * 提示路由(Prompt Routing):依任務自動選擇合適模型/模板/工具的策略。 * 提示組合(Prompt Composition):將多段指令、資料與範例組裝成完整上下文。 * 提示鏈(Prompt Chaining):把多步提示串接,逐步逼近最終答案。 * 思維鏈(Chain-of-Thought):要求顯式中間推理步驟以提升複雜任務表現。 * 自我反思(Self-Reflection):模型對自身輸出進行評估與修正的迭代機制。 * 自我一致性(Self-Consistency):以多條推理路徑投票提高穩定性的技巧。 * 檢索增強生成(Retrieval-Augmented Generation, RAG):先檢索外部知識再引導生成以降幻覺。 * 向量檢索(Vector Search):以嵌入相似度從知識庫取回相關片段。 * 文件分塊(Document Chunking):將長文切塊以便索引與精準注入上下文。 * 嵌入向量(Embedding):將文本/多模態資料映射為連續向量的表示。 * 程式化提示(Programmatic Prompting):以程式自動生成與維護提示內容。 * 少樣本提示(Few-shot Prompting):提供少量示例引導模型學習任務格式。 * 零樣本提示(Zero-shot Prompting):僅以說明與約束完成任務而不給示例。 * 內文學習(In-Context Learning, ICL):僅藉由上下文示例調整輸出而不改參數。 * 示範樣例(Demonstrations):放入上下文的輸入—輸出範例對。 * 場景設定(Situation Framing):提供地點/時間/身分等前提以消歧義。 * 不變要求(Non-negotiable Constraints):必須嚴格遵循的規則與限制。 * 輸出格式規範(Output Schema):要求輸出遵循的結構(如JSON/Markdown欄位)。 * 驗證步驟(Verification Step):以規則/工具對中間或最終輸出做校驗。 * 事實性檢查(Fact-checking):用檢索或外部資料核對模型敘述真偽。 * 幻覺抑制(Hallucination Mitigation):降低無根據生成內容的技術與流程。 * 安全護欄(Safety Guardrails):預防違規、有害或敏感輸出的策略集合。 * 停止條件(Stopping Criteria):控制生成在特定符號或長度達標時結束。 * 指令層級(Instruction Hierarchy):系統/開發者/使用者指令的優先序。 * 代理記憶體(Agent Memory Store):代理人用於讀寫長短期記憶的資料層。 * 會話開場白(Conversation Primer):啟動對話時預置的風格與任務設定段。 * 系統地雷詞(Banned/Sensitive Terms):在系統層明確禁止的詞彙或主題。 * 提示評測(Prompt Evaluation):以離線/線上指標衡量提示方案效果。 * 提示版本控制(Prompt Versioning):對提示變更做版本化與回溯管理。 * 自動化管線(Orchestration Pipeline):協調檢索、工具與生成步驟的工作流。 * 上下文預算(Context Budget):在視窗限制下分配各類資訊的token配額。 * 觀察(Observation):代理從環境或使用者取得的當前資訊快照。 * 行動(Action):代理根據觀察產生並執行的操作(輸出、工具調用、程式等)。 * 環境(Environment):代理之外的世界,含人類、工具、檔案與服務等。 * 目標(Goal):代理需達成的任務描述或成功條件。 * 感知-行動循環(Perception-Action Loop):觀察→決策→行動→新觀察的反覆流程。 * 代理迴圈(Agent Loop):在目標未達成前持續規劃、執行與更新狀態的主流程。 * 工具調用(Tool Invocation):以結構化參數呼叫外部函式或API取得結果。 * 程式合成(Program Synthesis):代理自動產生並執行程式碼以完成子任務。 * 回饋(Feedback):來自人類或系統的評語、分數或糾正,用於調整後續行為。 * 任務規劃(Task Planning):將目標拆為可執行步驟並排序。 * 計畫執行監控(Plan Execution Monitoring):在執行中追蹤進度與偏差並觸發修正。 * 動態重規劃(Dynamic Replanning):根據新觀察或失敗即時更新計畫。 * 人在迴圈(Human-in-the-Loop, HITL):關鍵步驟引入人類審核/決策以提升可靠性。 * 代理自治性(Agent Autonomy):代理在有限規則下獨立決策與行動的能力。 * 代理政策(Agent Policy):從狀態映射到行動的決策函式或策略。 * 狀態表示(State Representation):抽取對決策最有用的結構化內部狀態。 * 世界模型(World Model):代理對環境動態與因果的內隱近似。 * 報酬函數(Reward Function):用於評價行動品質與任務達成度的標準。 * 任務分解(Task Decomposition):把複雜目標拆成可管理的子目標與里程碑。 * 子目標生成(Subgoal Generation):自動提出中介目標以縮短規劃跨度。 * 工具選擇(Tool Selection):基於查詢與上下文挑選最適合的工具。 * 函式呼叫(Function Calling):以結構化schema觸發特定函式並接收返回。 * 電腦操作(Computer Use):代理以滑鼠/鍵盤控制沙箱電腦完成多步任務。 * 命令執行安全(Command Execution Safety):限制可執行操作以避免破壞性行為。 * 權限升級防護(Privilege Escalation Guarding):防止代理取得超出授權的系統權限。 * 會話記憶(Conversation Memory):對話歷史與關鍵事實的短期存取。 * 長上下文視窗(Long Context Window):模型一次可處理的Token上限。 * 上下文飽和(Context Saturation):輸入超載導致理解與推理品質下降。 * 中段遺失效應(Lost in the Middle):長輸入中部資訊被忽視、召回率偏低的現象。 * 上下文路由(Context Routing):根據查詢動態挑選應注入的來源與片段。 * 片段擷取(Snippet Extraction):從文件中切取最相關的短片段注入提示。 * 檢索增強生成(Retrieval-Augmented Generation, RAG):先檢索再生成以降低幻覺。 * 文檔重排序(Re-ranking):以較強模型對初檢結果重新打分排序。 * 來源對齊(Source Grounding):回答中對齊可驗證的引用與出處。 * 幻覺偵測(Hallucination Detection):檢測無依據或捏造內容的機制。 * 可信度評分(Confidence Scoring):對答案或步驟產生置信指標供決策。 * 代理可靠性(Agent Reliability):在多回合長任務中維持穩定正確的能力。 * 能力度量(Capability Metrics):以任務完成度、正確率、覆蓋率等衡量表現。 * 失效模式(Failure Modes):常見錯誤型態如卡死、循環、策略漂移。 * 回退策略(Fallback Strategy):失敗時切換模型/工具/流程的預案。 * 連貫性維持(Coherence Maintenance):跨回合保持語氣、一致性與計畫對齊。 * 會話狀態同步(Session State Sync):在多工具/多執行緒間共享與更新狀態。 * 互動成本(Interaction Cost):人機回合、API次數與人工審核帶來的資源開銷。 * 延遲預算(Latency Budget):任務可容忍的端到端時間上限與分配。 * 代幣成本控制(Token Cost Control):在視窗與費用限制下分配上下文配額。 * 執行追蹤日誌(Execution Trace Logging):詳細記錄每次檢索、呼叫與決策以便除錯。 * 可重現性(Reproducibility):在相同輸入與設定下穩定重現行為。 * 評測基準(Benchmarking):用標準資料集與協議系統化比較方法。 * Gemini CLI(Gemini CLI):可本機執行、具檔案/系統操作能力的命令列代理介面。 * 安全確認對話(Safety Confirmation Prompting):對高風險操作先徵求明確人類同意。 * 上下文腐爛(Context Rot):長輸入下模型對中段資訊急遽失真與遺漏的現象。 * 長上下文退化(Long-Context Degradation):輸入變長時複述與推理正確率下降。 * 複製測試(Copying Task):要求模型逐字複述長字串以量測長程保真度。 * 代幣預算(Token Budget):在視窗與成本限制下可用的上下文配額。 * 上下文視窗(Context Window):模型一次可處理的最大Token長度。 * 注意力稀釋(Attention Dilution):序列過長導致關鍵訊號被平均沖淡。 * 首尾偏置(Primacy/Recency Bias):模型更易記住開頭與結尾、忽略中段。 * 中段遺失效應(Lost in the Middle):長輸入中央資訊被忽視的普遍現象。 * 上下文管理(Context Management):選擇、組織與裁剪輸入以維持可用性。 * 上下文工程(Context Engineering):用系統化策略打造高效可控的提示。 * 選擇策略(Selection):只挑最相關片段注入,避免塞爆上下文。 * 壓縮策略(Compression):以摘要/改寫降低歷史與文件的字元長度。 * 多代理架構(Multi-Agent Architecture):以多個協作代理分攤任務與上下文。 * 檢索增強生成(Retrieval-Augmented Generation, RAG):先檢索再生成以對齊事實。 * 查詢生成(Query Generation):把任務轉為可檢索的關鍵字與查詢式。 * 關鍵字抽取(Keyword Extraction):自動萃取高訊息量詞以驅動搜尋。 * 重排序(Re-ranking):以更強模型對初檢結果重新打分排序。 * 句級選擇(Sentence-Level Selection):在文內逐句判斷與任務之相關性。 * 工具檢索(Tool Retrieval):對工具說明做索引,按需求只注入必要工具。 * 工具過載(Tool Overload):同時暴露太多工具導致決策與閱讀失效。 * 記憶檢索(Memory RAG):將長期記憶外部化,按需搜尋回填上下文。 * 情節記憶(Episodic Memory):時間序列的互動與事件片段存取。 * 語義記憶(Semantic Memory):跨情境可泛化的事實與概念庫。 * 近因加權(Recency Weighting):對較新的記憶與觀察給更高權重。 * 重要度評分(Importance Scoring):以代理自評衡量記憶存留優先度。 * 相關度評分(Relevance Scoring):與當前任務的語義匹配分數。 * 記憶鞏固(Memory Consolidation):將多回合歷史壓縮為長期摘要。 * 摘要壓縮(Summarization Compression):以抽取/生成方式濃縮內容。 * 遞迴式摘要(Recursive Summarization):多層級連續壓縮長期歷史。 * 滑動窗摘要(Sliding-Window Summaries):按視窗滾動產生分段摘要。 * 檢查點摘要(Checkpointed Summaries):在關鍵里程碑保存精煉狀態。 * 電腦操作(Computer Use):以滑鼠/鍵盤在沙箱環境多步完成任務。 * 互動日誌(Interaction Logging):完整記錄檢索、調用、決策與結果。 * 幻覺過濾(Hallucination Filtering):檢測與抑制無依據或錯誤生成。 * 事實對齊(Grounding):回答需引用可驗證來源與依據。 * 來源標註(Source Attribution):精確標記引用片段與出處。 * 安全閘控(Safety Gating):高風險操作前的人機確認與限制。 * 權限模型(Permission Model):針對檔案/系統/工具的最小必要授權。 * 沙箱執行(Sandbox Execution):在隔離環境運行程式與工具。 * 觀察(Observation):代理感知到的最新環境狀態或輸入。 * 行動(Action):代理基於觀察做出的工具調用或文字輸出。 * 環境迴圈(Environment Loop):行動影響環境→產生新觀察的循環。 * 動態重規劃(Dynamic Replanning):根據新訊息即時更新計畫。 * 計畫-執行-評估(Plan-Execute-Evaluate):長任務的標準代理流程。 * 負例干擾(Negative Example Interference):加入錯誤示例反而傷表現。 * 文件分片(Document Sharding):把大語料分割給不同代理各自處理。 * 代理協調(Agent Orchestration):調度多代理的任務、資源與訊息流。 * 領導-工人模式(Leader-Worker Pattern):總召規劃,子代理執行細節。 * 上下文路由(Context Routing):依查詢動態挑選來源與代理接手。 * 上下文修剪(Context Pruning):剔除冗餘/低價值內容以維持清爽。 * 代幣成本控制(Token Cost Control):在品質與費用間做動態配給。