大模型,如何通過Prompt工程讓Claude掌握新框架?)
1. 項(xiàng)目概述當(dāng)大模型遇上“新框架”最近在折騰Claude API的時(shí)候我遇到了一個(gè)挺有意思的挑戰(zhàn)需要讓Claude去理解和生成一個(gè)它訓(xùn)練數(shù)據(jù)里大概率沒有的、非常小眾的Web框架的代碼。這個(gè)框架可能剛發(fā)布幾個(gè)月文檔都還不全更別提被收錄進(jìn)大模型的訓(xùn)練集了。按照常規(guī)思路要么得等模型更新要么就得自己動(dòng)手做微調(diào)Fine-tuning但這兩種方案要么太被動(dòng)要么成本太高。于是我開始琢磨有沒有一種方法不碰模型本身只通過“對(duì)話”和“引導(dǎo)”就能讓Claude這類大語言模型LLM快速掌握一個(gè)它從未見過的知識(shí)體系這聽起來有點(diǎn)像教一個(gè)博學(xué)但沒學(xué)過某門具體手藝的老師傅通過給他看圖紙、講原理讓他能立刻上手做出成品。最終我摸索出了一套行之有效的“Skill編寫”方法論。這里的“Skill”不是指某個(gè)具體的插件或工具而是一套精心設(shè)計(jì)的提示詞Prompt工程組合拳核心目標(biāo)就是通過外部信息注入和結(jié)構(gòu)化引導(dǎo)在推理時(shí)動(dòng)態(tài)擴(kuò)展模型的能力邊界。這個(gè)方法的價(jià)值在于它把“模型能力”和“領(lǐng)域知識(shí)”做了解耦。我們不再依賴模型“記住”一切而是專注于如何高效、準(zhǔn)確地把新知識(shí)“喂”給它并教會(huì)它如何運(yùn)用。無論是應(yīng)對(duì)一個(gè)全新的開源庫、一套內(nèi)部私有的API規(guī)范還是一門小眾的編程語言這套思路都能派上用場(chǎng)。接下來我就把這幾個(gè)月踩坑總結(jié)出來的核心心法、實(shí)操步驟和避坑指南毫無保留地分享給你。2. 核心理念為什么“不微調(diào)”反而更靈活在深入具體操作前我們得先統(tǒng)一思想為什么費(fèi)這么大勁去寫“Skill”而不是直接微調(diào)模型這背后是對(duì)大模型應(yīng)用范式的一種理解轉(zhuǎn)變。2.1 微調(diào)的局限性與成本考量模型微調(diào)聽起來很強(qiáng)大它通過在新的數(shù)據(jù)集上繼續(xù)訓(xùn)練讓模型權(quán)重發(fā)生改變從而“學(xué)會(huì)”新知識(shí)或新風(fēng)格。但對(duì)于“讓模型學(xué)會(huì)一個(gè)新框架”這種場(chǎng)景微調(diào)有幾個(gè)顯著的短板數(shù)據(jù)與成本黑洞要有效微調(diào)一個(gè)像Claude這樣的大模型你需要準(zhǔn)備高質(zhì)量、大規(guī)模的配對(duì)數(shù)據(jù)比如“框架描述 - 正確代碼”。對(duì)于一個(gè)新框架收集成千上萬條這樣的數(shù)據(jù)幾乎不可能。即使有數(shù)據(jù)微調(diào)的計(jì)算成本時(shí)間、金錢也相當(dāng)高昂。知識(shí)固化與更新遲滯微調(diào)后的模型其新知識(shí)是“固化”在權(quán)重里的。一旦框架更新比如某個(gè)API簽名變了你的微調(diào)模型就過時(shí)了需要重新收集數(shù)據(jù)、重新訓(xùn)練敏捷性很差。災(zāi)難性遺忘風(fēng)險(xiǎn)在微調(diào)過程中如果處理不當(dāng)模型可能會(huì)“忘記”之前學(xué)得很好的一些通用能力比如基礎(chǔ)的Python語法、常見的算法邏輯這被稱為災(zāi)難性遺忘。我們只想讓它多學(xué)一門“手藝”而不是讓它“改行”。單一任務(wù)傾向一次微調(diào)通常針對(duì)特定任務(wù)優(yōu)化。今天為了讓模型寫A框架代碼微調(diào)一次明天為了寫B(tài)框架又得微調(diào)一次最終你會(huì)擁有一堆 specialized 的模型副本管理起來非常麻煩。2.2 “Skill”的動(dòng)態(tài)擴(kuò)展優(yōu)勢(shì)相比之下“Skill”思路的核心是上下文學(xué)習(xí)和思維鏈引導(dǎo)。我們不改變模型的“大腦”權(quán)重而是改變與它“對(duì)話”的方式和提供給它的“參考資料”。即時(shí)性框架一發(fā)布你立刻就能基于官方文檔為它編寫Skill馬上投入使用。低成本與零風(fēng)險(xiǎn)無需訓(xùn)練只消耗API調(diào)用費(fèi)用。完全不會(huì)影響模型原有的強(qiáng)大能力。可組合與模塊化你可以為不同的框架、不同的代碼風(fēng)格如公司內(nèi)部規(guī)范編寫?yīng)毩⒌腟kill模塊。在實(shí)際使用時(shí)可以根據(jù)需要靈活組合調(diào)用。易于維護(hù)與迭代當(dāng)框架更新時(shí)你只需要更新Skill中的文檔片段和示例下次調(diào)用立即生效。透明與可解釋模型生成代碼的依據(jù)你提供的文檔和示例是清晰可見的方便檢查和調(diào)試。如果生成結(jié)果不對(duì)你可以精準(zhǔn)地調(diào)整“教材”Skill內(nèi)容而不是去猜“學(xué)生”模型哪里沒學(xué)好。簡單來說微調(diào)是“重塑大腦”而編寫Skill是“提供一本完美的說明書和一套高效的使用指南”。對(duì)于快速適配瞬息萬變的技術(shù)棧后者顯然是更優(yōu)解。3. 構(gòu)建高效Skill的四大核心組件一個(gè)能讓Claude真正“學(xué)會(huì)”新框架的Skill絕不是簡單地把文檔扔給它。它需要精心設(shè)計(jì)通常包含以下四個(gè)相互關(guān)聯(lián)的組件我將其稱為“Skill金字塔”。3.1 組件一框架定義與約束奠定基礎(chǔ)這是Skill的基石用于在模型心中快速建立起關(guān)于這個(gè)新框架的“元認(rèn)知”。它需要清晰、無歧義地告訴模型三件事這是什么用一兩句話定義框架的核心用途、領(lǐng)域如“這是一個(gè)用于構(gòu)建高性能后端API的Node.js框架”和它與模型已知概念的關(guān)聯(lián)如“其路由設(shè)計(jì)思想類似于Express但采用異步中間件管道”。邊界在哪里明確框架的上下文范圍。例如“在本對(duì)話中當(dāng)提及‘響應(yīng)處理’時(shí)均指該框架的Response對(duì)象及其方法而非標(biāo)準(zhǔn)HTTP模塊或Express的響應(yīng)對(duì)象。”必須遵守什么列出關(guān)鍵約束和編碼規(guī)范。例如“所有路由處理函數(shù)必須是async函數(shù)。”、“必須使用框架內(nèi)置的Validator類進(jìn)行輸入校驗(yàn)不得使用第三方庫。”實(shí)操示例假設(shè)框架叫NovaJS你是一位精通NovaJS框架的專家。NovaJS是一個(gè)基于Node.js的現(xiàn)代API框架核心特點(diǎn)是基于裝飾器的路由聲明和依賴注入容器。請(qǐng)注意以下絕對(duì)規(guī)則所有控制器類必須用Controller(‘/prefix’)裝飾器修飾。路由處理方法使用Get(‘/path’),Post等裝飾器其參數(shù)應(yīng)使用Body(),Query()等裝飾器自動(dòng)注入。服務(wù)類應(yīng)使用Injectable()裝飾器并在構(gòu)造函數(shù)中聲明依賴。禁止使用require或module.exports統(tǒng)一使用ES Module的import/export語法。這個(gè)組件的作用是設(shè)定“游戲規(guī)則”防止模型用它熟悉的舊模式如Express的回調(diào)函數(shù)來套用新框架。3.2 組件二結(jié)構(gòu)化知識(shí)注入提供彈藥這是“教材”的主體部分。你不能扔給模型一個(gè)完整的官方文檔鏈接模型無法訪問外部鏈接也不能粘貼整本手冊(cè)。需要做的是萃取、轉(zhuǎn)譯和結(jié)構(gòu)化。萃取核心概念從官方文檔中提煉出最核心的5-10個(gè)概念如“應(yīng)用App”、“上下文Context”、“中間件Middleware”、“異常過濾器Exception Filter”等。為每個(gè)概念提供一段精煉的解釋。轉(zhuǎn)譯API簽名將框架關(guān)鍵的類、方法、裝飾器的簽名和簡要說明整理成列表。格式要清晰。### 核心裝飾器 - Controller(prefix: string): 類裝飾器聲明一個(gè)控制器prefix為路由前綴。 - Get(path: string): 方法裝飾器映射GET請(qǐng)求。 - Body(key?: string): 參數(shù)裝飾器從請(qǐng)求體中提取數(shù)據(jù)。提供代碼片段這是最關(guān)鍵的一步。選擇3-5個(gè)最具代表性的、完整的代碼示例。例如一個(gè)完整的“Hello World”應(yīng)用入口文件。一個(gè)包含路由、參數(shù)提取和簡單響應(yīng)的控制器。一個(gè)自定義中間件或服務(wù)的定義與使用。一個(gè)錯(cuò)誤處理的基本流程。注意事項(xiàng)提供的示例必須是自包含、可運(yùn)行的在概念上。避免使用“...”省略號(hào)跳過復(fù)雜部分這會(huì)讓模型困惑。如果部分邏輯復(fù)雜就用注釋說明其意圖。3.3 組件三任務(wù)分解與思維鏈引導(dǎo)教授方法光有知識(shí)不夠還得教模型如何運(yùn)用知識(shí)來解決問題。這就是思維鏈Chain-of-Thought的用武之地。當(dāng)用戶提出一個(gè)需求如“用NovaJS創(chuàng)建一個(gè)用戶登錄接口”時(shí)Skill應(yīng)該引導(dǎo)模型將復(fù)雜任務(wù)分解為符合該框架范式的步驟。在你的Skill提示詞中可以加入這樣的引導(dǎo)當(dāng)需要實(shí)現(xiàn)一個(gè)功能時(shí)請(qǐng)按照以下步驟思考分析需求確定需要?jiǎng)?chuàng)建哪些控制器、服務(wù)、DTO數(shù)據(jù)傳輸對(duì)象。設(shè)計(jì)路由根據(jù)RESTful規(guī)范或業(yè)務(wù)需求設(shè)計(jì)URL路徑和HTTP方法。規(guī)劃裝飾器為控制器和方法選擇合適的裝飾器Controller,Post,Body等。定義數(shù)據(jù)結(jié)構(gòu)創(chuàng)建用于請(qǐng)求驗(yàn)證和響應(yīng)的類或接口。實(shí)現(xiàn)業(yè)務(wù)邏輯在服務(wù)層編寫核心邏輯并在控制器中調(diào)用。考慮異常規(guī)劃可能拋出的異常及如何處理使用異常過濾器。通過這種引導(dǎo)你不僅在要求模型輸出代碼更是在塑造它解決問題的“思維過程”確保其輸出嚴(yán)格遵循新框架的哲學(xué)和最佳實(shí)踐。3.4 組件四輸出格式化與驗(yàn)證規(guī)則確保質(zhì)量最后你需要定義你期望的輸出是什么樣子。這能顯著提升生成代碼的可用性。指定格式明確要求模型以什么樣的形式輸出。例如“請(qǐng)輸出完整的、可復(fù)制的代碼文件。首先給出user.controller.ts的內(nèi)容然后是user.service.ts最后是login.dto.ts。每個(gè)文件用typescript ...代碼塊包裹并附上簡要的文件作用說明。”設(shè)定驗(yàn)證點(diǎn)要求模型在輸出后自行進(jìn)行快速“代碼審查”。例如“在生成代碼后請(qǐng)檢查① 所有裝飾器是否從 ‘nova-js’ 包正確導(dǎo)入② 處理函數(shù)是否為async③ 是否使用了框架提供的HttpException來拋出錯(cuò)誤。”提供反饋機(jī)制在復(fù)雜的交互中可以設(shè)計(jì)多輪對(duì)話。第一輪生成大綱或關(guān)鍵部分你確認(rèn)后第二輪再生成完整代碼。這比一次性生成大量可能出錯(cuò)的代碼更高效。將這四大組件組合起來就形成了一個(gè)強(qiáng)大的Skill提示詞模板。在實(shí)際調(diào)用Claude API時(shí)你可以將這部分內(nèi)容作為system提示詞或者放在用戶消息的開頭。4. 實(shí)戰(zhàn)演練五步編寫一個(gè)Claude Skill下面我以一個(gè)虛構(gòu)的、極簡的Python Web框架PyLight為例帶你完整走一遍Skill編寫和使用的流程。假設(shè)PyLight的核心特點(diǎn)是使用基于類的視圖CBV和通過類型注解自動(dòng)進(jìn)行請(qǐng)求參數(shù)校驗(yàn)。4.1 第一步深度解構(gòu)目標(biāo)框架首先你需要成為這個(gè)新框架的“專家”。哪怕它是全新的你也必須快速吃透其官方文檔、Quickstart和核心示例。你需要提煉出核心理念PyLight強(qiáng)調(diào)聲明式和類型安全。視圖是類路由映射到類方法框架自動(dòng)從請(qǐng)求路徑、查詢字符串、JSON體中根據(jù)函數(shù)簽名提取并轉(zhuǎn)換參數(shù)。關(guān)鍵差異點(diǎn)與Flask函數(shù)視圖和FastAPI依賴注入不同PyLight的每個(gè)路由對(duì)應(yīng)一個(gè)類方法參數(shù)綁定是隱式的。核心抽象App,View(基類),Request,Response。關(guān)鍵語法如何定義視圖類、如何指定路由、參數(shù)如何聲明類型注解、如何返回響應(yīng)。4.2 第二步編寫Skill核心提示詞根據(jù)第3章的組件我們開始組裝給Claude的“教材”。# PyLight 框架專家模式 你是一個(gè) PyLight 框架的專家。PyLight 是一個(gè)新興的Python Web框架采用基于類的視圖Class-Based Views和聲明式參數(shù)綁定。 ## 【框架規(guī)則與約束】 1. 每個(gè)視圖都是一個(gè)繼承自 pylight.View 的類。 2. 路由通過類屬性 route 定義格式為 route [(/path, HTTP_METHOD)]可以包含多個(gè)路由條目。 3. 處理請(qǐng)求的類方法名任意但必須接收一個(gè) request 參數(shù)類型為 pylight.Request。 4. **核心特性**方法的其他參數(shù)將從請(qǐng)求中自動(dòng)綁定。參數(shù)名對(duì)應(yīng)查詢參數(shù)query或JSON字段body其類型注解如 str, int, List[int]用于自動(dòng)校驗(yàn)和轉(zhuǎn)換。 5. 響應(yīng)直接返回Python字典、列表或字符串框架會(huì)自動(dòng)將其轉(zhuǎn)換為JSON響應(yīng)。如需自定義狀態(tài)碼或頭部可返回 pylight.Response 對(duì)象。 6. 必須使用 import pylight。 ## 【核心API速查】 - pylight.App(): 創(chuàng)建應(yīng)用實(shí)例。 - app.add_view(ViewClass): 將視圖類注冊(cè)到應(yīng)用。 - app.run(host0.0.0.0, port8000): 運(yùn)行應(yīng)用。 - class pylight.View: 視圖基類。 - class pylight.Request: 請(qǐng)求對(duì)象包含 query, json, headers 等屬性。 - class pylight.Response(data, status200, headersNone): 響應(yīng)對(duì)象。 ## 【標(biāo)準(zhǔn)示例】 ### 示例1基礎(chǔ)視圖 python import pylight class HelloView(pylight.View): route [(/hello, GET)] def get(self, request: pylight.Request) - dict: return {message: Hello, PyLight!} app pylight.App() app.add_view(HelloView) app.run()示例2帶參數(shù)綁定的視圖class UserView(pylight.View): route [(/user/int:user_id, GET), (/user, POST)] def get_user(self, request: pylight.Request, user_id: int) - dict: # 框架自動(dòng)從路徑中提取 user_id 并轉(zhuǎn)換為int return {id: user_id, name: Alice} def create_user(self, request: pylight.Request, name: str, age: int) - dict: # 框架自動(dòng)從請(qǐng)求JSON體中提取 name (str) 和 age (int) return {id: 1, name: name, age: age}【任務(wù)執(zhí)行指南】當(dāng)需要實(shí)現(xiàn)功能時(shí)請(qǐng)遵循分析需求確定視圖類名和需要的路由。定義繼承自pylight.View的類并設(shè)置route屬性。根據(jù)HTTP方法設(shè)計(jì)類方法合理定義參數(shù)名和類型注解以匹配預(yù)期請(qǐng)求數(shù)據(jù)。實(shí)現(xiàn)方法邏輯返回字典或Response對(duì)象。確保在應(yīng)用實(shí)例中注冊(cè)視圖。【輸出要求】請(qǐng)生成完整、可運(yùn)行的Python代碼文件。優(yōu)先展示視圖類定義然后是應(yīng)用創(chuàng)建和運(yùn)行部分。使用代碼塊包裹。在關(guān)鍵處添加簡短注釋。### 4.3 第三步設(shè)計(jì)測(cè)試用例與交互話術(shù) 有了Skill我們?cè)趺礈y(cè)試它是否有效你需要設(shè)計(jì)一系列從易到難的測(cè)試任務(wù)。 * **任務(wù)A基礎(chǔ)驗(yàn)證**“用PyLight寫一個(gè)簡單的‘/health’端點(diǎn)返回 {“status”: “ok”}。” * **任務(wù)B參數(shù)綁定驗(yàn)證**“創(chuàng)建一個(gè)計(jì)算器視圖有一個(gè)‘/add’路由GET方法接收兩個(gè)查詢參數(shù) a 和 b都是整數(shù)返回它們的和。” * **任務(wù)C綜合應(yīng)用**“實(shí)現(xiàn)一個(gè)簡單的待辦事項(xiàng)API。需要1. GET /todos 返回所有事項(xiàng)列表2. POST /todos 創(chuàng)建新事項(xiàng)接收J(rèn)SON body {“task”: string, “done”: boolean}3. GET /todos/id 獲取單個(gè)事項(xiàng)。” 在向Claude提問時(shí)將Skill提示詞作為 system 消息然后將任務(wù)作為 user 消息發(fā)送。或者在單輪對(duì)話中將Skill提示詞和任務(wù)一次性發(fā)送。 ### 4.4 第四步運(yùn)行、分析與迭代 發(fā)送請(qǐng)求后你會(huì)得到Claude生成的代碼。這時(shí)你需要扮演嚴(yán)格的代碼審查者 1. **功能正確性**生成的代碼是否符合 PyLight 的語法能否直接運(yùn)行或僅需極小調(diào)整 2. **框架契合度**是否嚴(yán)格遵守了Skill中定義的規(guī)則如繼承 View、使用 route 屬性、參數(shù)類型注解 3. **代碼質(zhì)量**結(jié)構(gòu)是否清晰命名是否合理 如果輸出不理想不要直接責(zé)怪模型。反思你的“教材”Skill * **是規(guī)則描述不清嗎** 比如對(duì)于路徑參數(shù) int:user_id 的綁定我的示例和說明是否足夠清晰 * **是示例覆蓋不全嗎** 我的示例里有沒有展示POST請(qǐng)求如何綁定JSON body如果沒有模型就可能出錯(cuò)。 * **是思維鏈引導(dǎo)不夠嗎** 模型是否在“設(shè)計(jì)路由”這一步就偏離了方向 根據(jù)分析結(jié)果回頭修改和完善你的Skill提示詞。這是一個(gè)迭代的過程。通常經(jīng)過2-3輪的調(diào)整你就能得到一個(gè)非常穩(wěn)定、可靠的Skill。 ### 4.5 第五步封裝與復(fù)用 一個(gè)成熟的Skill應(yīng)該被封裝起來方便團(tuán)隊(duì)復(fù)用。你可以 * 將它保存為一個(gè)獨(dú)立的文本文件或Markdown文件。 * 如果使用LangChain、Semantic Kernel等AI應(yīng)用框架可以將其定義為一個(gè)自定義的 PromptTemplate 或 Skill。 * 在內(nèi)部Wiki或文檔中建立“AI助手技能庫”為每個(gè)內(nèi)部框架或復(fù)雜庫維護(hù)一個(gè)這樣的Skill文檔。 ## 5. 高級(jí)技巧與避坑指南 在實(shí)際操作中你會(huì)遇到各種細(xì)節(jié)問題。下面是我總結(jié)的一些進(jìn)階技巧和常見“坑點(diǎn)”。 ### 5.1 技巧一利用“少樣本學(xué)習(xí)”提供高質(zhì)量示例 大模型在上下文中的“少樣本學(xué)習(xí)”能力極強(qiáng)。你提供的每一個(gè)示例都應(yīng)該是**黃金標(biāo)準(zhǔn)**。這意味著 * **完整性**示例應(yīng)該是一個(gè)可以獨(dú)立理解的代碼塊避免碎片化。 * **典型性**示例要覆蓋該框架最常用、最具特色的模式。 * **多樣性**如果框架支持多種風(fēng)格如同步/異步應(yīng)分別提供示例并說明適用場(chǎng)景。 * **注釋清晰**在關(guān)鍵、容易誤解的地方添加注釋解釋“為什么這么做”這能幫助模型理解意圖而不僅僅是模仿語法。 ### 5.2 技巧二處理模糊與邊界情況 框架文檔可能對(duì)一些邊界情況語焉不詳。在你的Skill中要主動(dòng)定義清楚。 * **錯(cuò)誤處理**框架如何拋出HTTP錯(cuò)誤是拋出特定異常還是返回錯(cuò)誤響應(yīng)在Skill中明確給出錯(cuò)誤處理的示例。 * **依賴管理**如果框架有依賴注入DI容器如何在Skill中描述服務(wù)注冊(cè)和獲取提供一個(gè)簡單的DI示例至關(guān)重要。 * **配置與擴(kuò)展**如何讀取配置如何添加自定義中間件這些高級(jí)但常見的操作也應(yīng)該在Skill中有所體現(xiàn)哪怕只是一個(gè)簡單的指引。 ### 5.3 技巧三管理上下文長度與成本 Claude等模型有上下文窗口限制。你的Skill提示詞可能會(huì)很長尤其是包含多個(gè)示例時(shí)。你需要權(quán)衡 * **精煉**用最簡潔的語言描述規(guī)則和概念。刪除文檔中冗余的、介紹性的文字。 * **分層**對(duì)于極其復(fù)雜的框架可以考慮設(shè)計(jì)“基礎(chǔ)Skill”和“高級(jí)Skill”。基礎(chǔ)Skill只包含最核心的規(guī)則和1-2個(gè)示例用于簡單任務(wù)。當(dāng)用戶需要復(fù)雜功能時(shí)再引導(dǎo)其使用或激活包含更多示例的“高級(jí)Skill”提示。 * **外部化**對(duì)于非常長的參考文檔如API列表可以將其存儲(chǔ)在向量數(shù)據(jù)庫中。當(dāng)用戶提問時(shí)先通過檢索RAG找到最相關(guān)的文檔片段再連同Skill基礎(chǔ)提示一起發(fā)送給模型。這屬于更高級(jí)的RAGPrompt工程結(jié)合方案。 ### 5.4 常見問題與排查清單 **問題1模型完全忽略我的Skill用舊框架如Flask的語法生成代碼。** * **排查**檢查Skill中“框架規(guī)則與約束”部分是否足夠強(qiáng)硬和前置。嘗試在開頭使用更強(qiáng)烈的指令如“你必須且只能使用PyLight框架的語法禁止使用Flask、Django或任何其他Web框架的寫法。” * **解決**在提供的示例中確保導(dǎo)入語句import pylight和核心語法如 class ...View(pylight.View)非常醒目。 **問題2模型理解了框架但生成的代碼有細(xì)微語法錯(cuò)誤或使用了不存在的API。** * **排查**檢查你提供的“核心API速查”是否準(zhǔn)確。模型可能會(huì)“幻想”出一些不存在的屬性或方法。確保你列出的每個(gè)API都是真實(shí)存在的并且命名完全正確。 * **解決**在Skill中加入警告如“注意pylight.Request 對(duì)象沒有 .args 屬性查詢參數(shù)應(yīng)通過方法參數(shù)自動(dòng)綁定獲取。” **問題3對(duì)于復(fù)雜任務(wù)模型生成的代碼結(jié)構(gòu)混亂不符合項(xiàng)目規(guī)范。** * **排查**你的“任務(wù)執(zhí)行指南”思維鏈?zhǔn)欠褡銐蚓唧w是否引導(dǎo)了模塊拆分如控制器、服務(wù)、DTO分離 * **解決**強(qiáng)化思維鏈引導(dǎo)并提供一個(gè)更復(fù)雜的、符合最佳實(shí)踐的項(xiàng)目結(jié)構(gòu)示例。例如展示一個(gè)包含 controllers/、services/、models/ 目錄的簡單示例布局用注釋說明。 **問題4上下文太長導(dǎo)致API調(diào)用成本高或超出令牌限制。** * **排查**Skill提示詞是否包含了過多非必要的、重復(fù)的信息 * **解決**應(yīng)用“精煉”和“分層”技巧。將最核心的、每次調(diào)用都必須的規(guī)則放在前面將可選的、詳細(xì)的示例放在后面或者考慮使用更高效的模型如Claude 3 Haiku處理長上下文性價(jià)比較高。 ## 6. 從Skill到智能體構(gòu)建專屬開發(fā)助手 當(dāng)你掌握了為單個(gè)框架編寫Skill的能力后你可以更進(jìn)一步構(gòu)建一個(gè)集成了多個(gè)Skill的智能體Agent成為你或你團(tuán)隊(duì)的專屬全棧開發(fā)助手。 想象一下你有一個(gè)智能體它內(nèi)置了以下Skill * skill_pylight: 用于 PyLight 后端框架。 * skill_react_with_mui: 用于React前端及Material-UI組件庫。 * skill_sqlalchemy: 用于SQLAlchemy ORM操作。 * skill_docker: 用于編寫Dockerfile和docker-compose配置。 * skill_project_init: 用于初始化項(xiàng)目結(jié)構(gòu)、配置文件。 當(dāng)你提出需求“創(chuàng)建一個(gè)用戶管理系統(tǒng)的后端使用PyLight和SQLite并提供Docker化配置。” 智能體可以 1. 調(diào)用 skill_project_init 創(chuàng)建基礎(chǔ)目錄。 2. 調(diào)用 skill_pylight 生成主要的應(yīng)用代碼、用戶控制器和服務(wù)。 3. 調(diào)用 skill_sqlalchemy 生成用戶模型和數(shù)據(jù)庫操作代碼。 4. 調(diào)用 skill_docker 生成Dockerfile和docker-compose.yml。 5. 最后將所有生成的代碼和配置文件按照合理的結(jié)構(gòu)組織起來輸出給你。 實(shí)現(xiàn)這樣的智能體需要借助像LangChain、AutoGen或CrewAI這樣的框架。它們可以幫助你管理不同的工具Skill規(guī)劃任務(wù)流程并協(xié)調(diào)多個(gè)步驟的執(zhí)行。此時(shí)你之前為每個(gè)技術(shù)棧編寫的、高質(zhì)量的Skill提示詞就成了這個(gè)智能體最寶貴的“知識(shí)模塊”。 ## 7. 總結(jié)與個(gè)人體會(huì) 不微調(diào)模型只通過精心設(shè)計(jì)的Skill來擴(kuò)展Claude這類大模型的能力這套方法論的核心思想是 **“授人以漁”而非“授人以魚”**。我們不再追求讓模型內(nèi)化所有知識(shí)而是專注于打造一套高效、精準(zhǔn)的“即時(shí)知識(shí)注入和推理引導(dǎo)系統(tǒng)”。 從我個(gè)人的實(shí)踐來看要寫好一個(gè)Skill其難度和價(jià)值不亞于為人類新手編寫一份優(yōu)秀的入門教程。你需要深刻理解目標(biāo)框架的“哲學(xué)”預(yù)判使用者的“困惑點(diǎn)”并將知識(shí)拆解為模型能高效消化的“信息塊”。這個(gè)過程本身也會(huì)倒逼你更深入地理解你要使用的工具。 最大的收獲是自由度和敏捷性。技術(shù)棧日新月異今天火的框架明天可能就變了。有了這套方法你不再受制于模型訓(xùn)練數(shù)據(jù)的滯后性。任何新的、小眾的、甚至公司內(nèi)部私有的技術(shù)你都能在幾小時(shí)內(nèi)為它打造一個(gè)專屬的AI“技能包”讓Claude瞬間變成該領(lǐng)域的專家。這無疑極大地解放了生產(chǎn)力讓我們能更專注于架構(gòu)設(shè)計(jì)和業(yè)務(wù)邏輯而不是在重復(fù)的樣板代碼和API查閱中耗費(fèi)精力。 最后一個(gè)小建議開始動(dòng)手為你當(dāng)前項(xiàng)目中最復(fù)雜、最獨(dú)特的那個(gè)內(nèi)部庫或框架編寫第一個(gè)Skill吧。從最簡單的“Hello World”示例開始逐步增加復(fù)雜度。你會(huì)驚訝地發(fā)現(xiàn)在教AI的過程中你自己對(duì)這套技術(shù)的理解也會(huì)達(dá)到一個(gè)新的高度。