跳到主要內容

上下文工程與長上下文提示:引領大型語言模型的智慧未

大型語言模型(LLMs)的互動方式已從簡單、靜態的提示迅速演變。最初,使用者主要專注於精心設計的指令,以獲得即時回應 。然而,隨著LLMs能力與複雜性的提升,對於更精密的引導方法以確保可靠輸出的需求日益顯著 。這種轉變標誌著從單純的「提示設計」邁向更全面的「上下文管理」典範。

提示工程作為最初與LLMs有效溝通的學科應運而生,它涉及仔細措辭查詢、指定風格,並提供基本上下文或範例 。諸如「思維鏈」(Chain-of-Thought, CoT)和「上下文學習」(In-Context Learning, ICL)等技術被開發出來,旨在增強模型推斷能力,並使其無需額外微調即可適應新任務 。

上下文工程 (Context Engineering)是人工智慧開發中的一門新興學科,專注於設計系統,能動態地為大型語言模型(LLM)提供完成任務所需的精確資訊、工具與指令。

這種方法遠遠超越傳統的提示工程(prompt engineering),後者通常僅是撰寫一個靜態提示詞。而上下文工程則包含對 所有資訊的系統性、動態策劃與管理——包括指令、使用者輸入、記憶、外部知識、工具定義、結構化輸出等——在 LLM 產生回應前給予模型所需的一切。

提示工程:奠基之石

提示工程是與LLM有效溝通的起點。它強調文字措辭、角色扮演以及提供少量範例等技巧,透過技術如:

•   思維鏈(Chain-of-Thought, CoT): 促使模型以中間步驟推理、解題,提升多步驟任務表現。
•   上下文學習(In-Context Learning, ICL): 模型從提示中的少量範例暫時性學習,適應新任務。
•   基於角色的提示: 指定模型模擬特定角色的語氣與專業程度。
•   動態提示: 根據任務狀態與模型輸出調整提示內容與順序。
•   指令與上下文分離: 把指令與背景資料分開,保持清晰結構。

然而,這些提示依舊是靜態、手工製作,當面對長對話、動態場景或巨量資料時,便顯現出適應性不足、可擴展性差與高維度變異性的挑戰。

上下文工程:協調AI的舞台

上下文工程不僅設計一條提示,而是搭建整個互動環境。它結合了多項技術與組件:

•   系統提示/指令: 設定AI的行為與任務目標。
•   短期記憶(聊天歷史): 提供最近對話上下文。
•   長期記憶(知識庫): 維持跨多次互動的知識與使用者偏好。
•   檢索增強生成(RAG): 即時檢索外部資料補充知識。
•   工具調用: 允許模型動態調用API或外部系統,獲取或操作數據。
•   結構化輸出: 指定回應格式,如JSON、XML、表格等。
•   工作流程工程: 為多步驟任務規劃上下文組裝與資訊流。
•   資料策劃與處理: 利用摘要、分塊、排序等方法優化上下文內容。

它的核心在於動態管理與全面覆蓋:即隨對話演進或任務需求,組裝最合適的上下文,並在多步驟流程中共享一致記憶,確保連貫性。

長上下文提示:拓展AI的思維長度

長上下文提示(login context prompt) 的出現為模型提供了更大的「舞台空間」,突破短期記憶限制。例如:

•   早期LLMs僅能處理512~1024個 token,而今日如Gemini 1.5 Pro已達到200萬 context window,甚至Meta Llama 4上限高達1000萬 token。
•   這使模型能一次性理解完整的長篇文檔或多回合對話,顯著提升:
•   對長篇文本的整體理解與事實準確性
•   多樣本上下文學習
•   大型文檔的摘要與關鍵資訊檢索
•   程式碼庫、醫療紀錄、法律合約等龐大數據分析
•   跨多回合客戶對話的記憶保持

然而,挑戰也隨之而來,包括「迷失在中間」、「注意力稀釋」、成本增加、延遲上升等,需要搭配精細的上下文工程克服。

核心對比與協同作用

以下表格清楚展現上下文工程與長上下文提示的不同定位與相互補充:

特徵 上下文工程 (CE) 長上下文提示 (LCP) 協同作用
定義 動態組裝、管理與呈現上下文的系統性學科 模型內可同時處理的上下文視窗容量 CE智能填充LCP的視窗,以最佳資訊支援推理
焦點 資訊的相關性、結構化與即時更新 一次可保留的資訊數量與範圍 結合以實現長對話、一致回答、高度準確性
問題解決 適應性、記憶管理、工作流程協調 克服短期記憶不足、避免文檔碎片化 CE防止LCP被雜訊占用,最大化其效用

而在數據處理應用方面,長上下文LLMs與RAG技術則各有優勢:

特徵 長上下文LLMs 檢索增強生成 (RAG) 混合模型
最佳用途 靜態、大型文檔分析、延遲敏感場景 即時更新、多源資料、動態推理 靜態與動態數據並用
延遲特性 低延遲(資料預載入) 高延遲(即時檢索) 智能平衡
可擴展性 受記憶體限制 可透過外部資料庫擴展 整合兩者

未來展望:智能化、自主化、多模態

未來AI將朝以下方向前進:

•   混合架構: 同時結合長上下文與RAG,並在上下文路由中根據需求動態選擇資料來源。
•   智能上下文管理: 利用壓縮演算法、動態令牌分配與AutoML自我調整,提升上下文利用效率。
•   自主代理: 具備規劃、工具調用、結果解釋、自我優化能力,成為能獨立完成複雜任務的智慧體。
•   多模態上下文: 將圖像、音訊、影片與文字無縫整合到單一上下文環境中,實現對真實世界情境的全方位理解。
•   自動化上下文工程: AI不僅消耗上下文,還能主動建構、更新、優化自身的上下文環境。

後記

每過一段時間,就會有什麼 XXX 已死, XXX 才是未來。

但對於自身的經驗來說,所有的事情都是堆疊和累積,並非完全的黑與白這麼絕對的區分,更深入的來說,整個 Context window,其實還是來自於 prompt engingeer 的掌握,對於如何進行 Prompt 之後, Context 才能有更絕對的掌握。

如何整合上下文工程 (Context Engineering) 流程會是基礎於 prompt ,再加上具備 long context 的項目,整合長上下文提示 (Long context prompting),是AI邁向高度智能、自主化的基礎。

可以預見的未來,AI不再是只能「回答」的工具,而是能真正理解、推理、規劃與協助的智慧夥伴。未來AI應用的競爭力,將不僅取決於模型參數數量,而是取決於能否動態、智慧地策劃上下文,將大量資料轉化為具有商業價值與人性化的服務體驗。

參考連結

工商服務

如果你看完這篇文章,也開始對「怎麼用 AI 幫你加速、放大你的想法」感到興趣,那你絕對不能錯過這場活動👇

🎤 🐻 Coding Bear 台北場|來聊什麼是 Vibe Coding 台北場

我們將深入分享如何結合 AI 與程式、創意、內容製作,

讓你用最自然的方式,讓 AI 成為你的工作室助手。

📅 時間:7/25(五)18:30

👉 報名連結:https://codingbear.kktix.cc/events/ai-vibe-coding-2025-07-taipei

天南地北來亂聊,從設計、內容到自動化,無論你是創作者還是開發者,這場講座也許會有實用又有趣的靈感(吧)。來聊聊 AI 怎麼幫你少做一點雜事、多做一點你真的想做的事吧!

留言

這個網誌中的熱門文章

[CSS] z-index 在不同瀏覽器繼承問題

今天會討論到這個課題,是因為要實做一個Popup dialog,所以我們希望的結果如下圖。 可是在IE7 卻發生了這樣的情況。 Popup不論怎麼設定z-index都無法浮在最上層,我們看一下html架構發生什麼事情。

[教學] 快快樂樂刪除CodeIgniter index.php

預設的CI網址預設都設定為index.php同一層級,因此所有的程式都必須指定index.php導向才能開始,例如 http://localhost/ci/index.php/welcome/test http://localhost/ci/welcome/test 本文將說明如何將惱人的index.php消除,還你一個漂亮的URL。 設定開始: 接下來說明如何使用rewrite方式將惱人的index.php去除。 rewrite不清楚的人,煩請先自行google 首先要先確定Apache的 mod_rewrite 有 開啟 ,如果沒有開啟請設定好之後重新啟動apache。 接著,在根目錄底下建立一個新檔案,檔名為 .htaccess ,裡面程式碼如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> 接著到 application/config/config.php ,開啟檔案修改 $config['index_page'] = ""; 注意: /index.php/$1 要根據你目錄,例如 http://localhost/index.php ,網站根目錄為 /ci/index.php 則要寫成 /ci/index.php/$1 接著至CI目錄下,尋找 config\config.php , 修改一下裡面的檔案,修改如下: $config['index_page'] = ""; 存檔後,如此一來大功告成。 參考資料 官方網站說明

[教學] Mojito 安裝與入門,install mojito for beginner.

mojito ,最近終於從 YDN 對外公開此專案,這個套件主要用於解決前端多重裝置及瀏覽器端的問題,後端服務採取 node.js ,因此使用上必定要先準備以下幾個元素 準備素材 c++ complier git Node.js > 0.4.x NPM > 1.0.x 安裝方式 git clone git://github.com/yahoo/mojito.git cd mojito/source sudo npm install -g . npm install . 以上四個簡單的步驟,就可以把 mojito module 完整安裝到服務器上,接著就可以開始進入 mojito 的世界 使用方式 mojito 提供了完整的 command line 給開發者使用,接著先建立一個基本 hello world 專案,跟著以下步驟完成第一個專案。首先建立一個 mojito application, mojito create app hello cd hello 切換到目錄之後,再接著建立自己的 mojit,這邊的 mojit 就像是一個應用(application)可能會包含許多個獨立網站體,擁有獨立架構的 MVC ,包含內部設定等,詳細資料可以參考官方的 說明 ,建立 mojit mojito create mojit HelloMojit 輸入指令後,會看到顯示結果如下, creating mojit called 'HelloMojit' (using "default" archetype) ✔ mojit: HelloMojit created! ✔ mojito done. 接著修改 application.json 這個 mojit 設定檔案,讓剛才新建立的 hellp application 指定底下有一個 mojit -> HelloMojit ,讓應用可以去執行 mojit controller ,修改如下, [ { "settings": [ "master" ], "appPort": 8666, "specs": { ...