搭建AI Agent實(shí)戰(zhàn):從零到跑通最小閉環(huán))
周末下午本來只想給手頭幾個(gè)零散的腳本加個(gè)統(tǒng)一入口結(jié)果一不留神就花了兩小時(shí)順手搭了個(gè) AI Agent。整個(gè)過程不算復(fù)雜但踩了幾個(gè)坑也把很多一直模糊的概念徹底理清了。這篇文章就把我這兩小時(shí)的完整經(jīng)歷寫下來包括從零動(dòng)手的步驟、選型的思路、關(guān)鍵參數(shù)的設(shè)置以及那些文檔里不太會(huì)寫但特別影響成功率的細(xì)節(jié)。不管你是剛接觸 AI Agent 的新手還是已經(jīng)玩過一陣子但總卡在“跑不通”“不會(huì)調(diào)工具”的開發(fā)者這篇文章應(yīng)該都能幫上忙。先說清楚兩小時(shí)能做什么它不是讓你從零訓(xùn)練一個(gè)模型也不是搞一套生產(chǎn)級(jí)高并發(fā)系統(tǒng)而是把“LLM 當(dāng)作大腦配上記憶、技能和外部工具跑通一個(gè)能自動(dòng)完成指定任務(wù)的智能體”。你可以把它理解成給大模型裝上手腳讓它不再只動(dòng)嘴而是真的去動(dòng)手做事情。1. 動(dòng)手前先想清楚的三件事1.1 AI Agent、LLM、AI 模型到底什么關(guān)系很多人一上來就被這幾個(gè)詞繞暈了。我盡量用最直白的方式拆開講。AI 模型是最大的范疇泛指用數(shù)據(jù)訓(xùn)練出來的程序能完成識(shí)別、生成、預(yù)測等任務(wù)。LLM 是其中專門處理語言的那一類全稱 Large Language Model學(xué)的是文字概率分布核心能力是根據(jù)上文預(yù)測下一個(gè)詞只是規(guī)模大了之后“涌現(xiàn)”出理解、推理、創(chuàng)作等能力。DeepSeek 就是 LLM 的一個(gè)具體產(chǎn)品系列它可以是 Agent 的“大腦”但 DeepSeek 本身不是 Agent。Agent 則是一個(gè)系統(tǒng)級(jí)概念。單個(gè) LLM 只是一個(gè)模型讓它能主動(dòng)調(diào)用工具、記住上下文、拆解任務(wù)并循環(huán)執(zhí)行才算 Agent。用汽車打比方LLM 是發(fā)動(dòng)機(jī)Agent 是整車。發(fā)動(dòng)機(jī)再強(qiáng)沒有變速箱、輪子、方向盤也跑不起來。市面上說的“AI Agent 開發(fā)”做的其實(shí)就是“給發(fā)動(dòng)機(jī)配整車”這件事。這個(gè)區(qū)別特別重要。因?yàn)槟銜?huì)看到很多項(xiàng)目標(biāo)題是“一行代碼接入 DeepSeek”但那只是調(diào)模型接口不是 Agent。真正的 Agent 至少要包含模型調(diào)用層、工具定義層、循環(huán)決策層、記憶管理缺一個(gè)都會(huì)顯得“很笨”。1.2 兩小時(shí)能搭到什么程度先定目標(biāo)再動(dòng)手我不建議任何人抱著“我要做一個(gè)改變世界的 Agent”的心態(tài)開始。兩小時(shí)的合理目標(biāo)是跑通一個(gè)最小閉環(huán)。我的目標(biāo)很簡單——讓 Agent 能理解用戶指令自己判斷是否需要調(diào)用外部工具調(diào)用完拿到結(jié)果最后把答案整理好返回給用戶。這個(gè)目標(biāo)聽起來小但已經(jīng)覆蓋了 Agent 的核心循環(huán)。我給它加了兩個(gè)工具查天氣、算計(jì)算器。測試標(biāo)準(zhǔn)也定得很死用戶說“北京今天多少度”它能主動(dòng)調(diào)天氣接口并返回結(jié)構(gòu)化答案用戶說“幫我算 23 乘 47”它能用計(jì)算器工具而不是自己瞎算。后面你會(huì)發(fā)現(xiàn)這個(gè)標(biāo)準(zhǔn)定得好不好直接決定調(diào)試效率。給新手一個(gè)階梯感今天跑通主流程本周接 2 到 3 個(gè)技能本月把記憶和長期存儲(chǔ)補(bǔ)上。兩小時(shí)不是終點(diǎn)是讓你建立“原來 Agent 是這樣跑起來”的感覺。1.3 選型代碼手搓還是可視化編排這個(gè)我糾結(jié)了一陣最后兩個(gè)方案都試了一輪。簡單對比方式代表工具優(yōu)點(diǎn)缺點(diǎn)代碼手搓P(guān)ython OpenAI SDK原理透明、可定制、方便接入自己的系統(tǒng)需要寫代碼調(diào)試較久可視化編排n8n、Dify、Coze上手快、節(jié)點(diǎn)拖拽就能跑、內(nèi)置大量觸發(fā)器封裝較深出問題不好排查結(jié)論如果你的目標(biāo)只是快速做個(gè)內(nèi)部自動(dòng)化工具不想深究原理用 n8n 或 Dify 完全夠。如果你像我一樣想弄明白 Agent 內(nèi)在是怎么工作的我強(qiáng)烈建議先用代碼手搓一遍。哪怕只是 100 行對手感和后續(xù)排查都有巨大幫助。我這次的做法是先用 Python 手搓主流程再在 n8n 里復(fù)現(xiàn)一遍做對比。這樣兩套都摸過分享出來的內(nèi)容也更有參考價(jià)值。2. Agent 能“干活”的關(guān)鍵五個(gè)組成部分2.1 大腦模型選型與參數(shù)設(shè)置大腦就是 LLM。我用的是 DeepSeek 的 API原因很簡單接口兼容 OpenAI 格式文檔清楚作為示例跑起來省事。你也可以換 GPT、通義、文心等任何支持 function calling 的模型代碼結(jié)構(gòu)基本不變。選型之外參數(shù)設(shè)置更值得花心思。最容易被忽略的是 temperature。這個(gè)參數(shù)控制輸出的隨機(jī)性值越大回答越發(fā)散值越小越穩(wěn)定。對于 Agent 場景我們不是要它寫詩而是要它按流程執(zhí)行所以 temperature 建議調(diào)低我直接設(shè)成 0.2。還有一個(gè)隱藏參數(shù)是 model 本身是否支持 function calling。DeepSeek 的對話模型和 OpenAI 的 gpt-4o 一樣可以通過 tools 參數(shù)聲明函數(shù)模型會(huì)根據(jù)用戶問題主動(dòng)返回“需要調(diào)用哪個(gè)函數(shù)、參數(shù)是什么”。選模型前一定要確認(rèn)這一點(diǎn)不然你后面的工具調(diào)用全部白搭。System prompt 也很關(guān)鍵。它是你在對話開始前給模型設(shè)定的“人設(shè)”和“行為邊界”。我寫的是你是智能助手負(fù)責(zé)通過工具完成用戶請求。調(diào)用工具前先分析用戶意圖一次只調(diào)用一個(gè)工具拿到結(jié)果后整理成自然語言。2.2 記憶短期與長期怎么配記憶是 Agent 和“無狀態(tài) API 調(diào)用”拉開差距的核心能力。它分兩層短期記憶就是當(dāng)前對話的消息歷史模型通過上下文窗口“記住”前面聊了什么長期記憶則把重要信息持久化比如存到向量數(shù)據(jù)庫需要時(shí)再檢索出來。我兩小時(shí)版本只做了短期記憶——用一個(gè) messages 列表把每次交互都追加進(jìn)去。實(shí)際業(yè)務(wù)里你會(huì)發(fā)現(xiàn)這個(gè)列表會(huì)不斷膨脹最后把上下文窗口塞爆。解決辦法一般是做滑動(dòng)窗口只保留最近 N 輪對話或者對舊消息做摘要。這個(gè)后面在問題排查部分細(xì)說。不要急著上向量數(shù)據(jù)庫。對于大多數(shù)個(gè)人項(xiàng)目“記最近幾輪 把關(guān)鍵信息寫進(jìn) system prompt”已經(jīng)能讓 Agent 聰明很多了。長期記憶更像是“讓我能記住你上次說過的話”屬于進(jìn)階優(yōu)化項(xiàng)。2.3 技能讓 Agent 做具體的事技能Skill是 Agent 的行動(dòng)能力。實(shí)現(xiàn)上就是定義一個(gè)函數(shù)然后把這個(gè)函數(shù)的描述、參數(shù)結(jié)構(gòu)告訴模型。關(guān)鍵來了函數(shù)描述寫得清不清楚直接決定模型會(huì)不會(huì)調(diào)用它。我第一版寫的 get_weather 描述是“獲取天氣”結(jié)果模型經(jīng)常不理會(huì)它在應(yīng)該調(diào)用的場景里直接亂答。改成“當(dāng)用戶詢問某個(gè)城市的天氣情況時(shí)調(diào)用此函數(shù)參數(shù) city 是城市名稱例如北京”之后調(diào)用準(zhǔn)確率立刻上來了。原因在于模型是靠描述來決定函數(shù)與用戶意圖的匹配度描述越具體匹配越準(zhǔn)確。一個(gè)函數(shù)的完整定義包括三部分函數(shù)名、自然語言描述、參數(shù) JSON Schema。參數(shù) JSON Schema 要注明每個(gè)字段的類型和含義模型才能正確提取參數(shù)。2.4 連接MCP 和工具生態(tài)如果你覺得一個(gè)個(gè)手寫函數(shù)太累可以了解一下 MCPModel Context Protocol。它的定位是標(biāo)準(zhǔn)化 Agent 與外部工具、數(shù)據(jù)源的連接方式。以前每個(gè)工具都要自己寫適配代碼有了 MCP 之后就好比所有外設(shè)都統(tǒng)一成了 USB-C 接口插上就能用。MCP 的生態(tài)里有大量現(xiàn)成 Server比如連接數(shù)據(jù)庫、讀本地文件、調(diào)用 GitHub API、查天氣等。你只需要跑一個(gè) MCP Server然后在 Agent 端注冊一下工具就自動(dòng)暴露給模型了。對于不想重復(fù)造輪子的場景這一步能省掉大量時(shí)間。不過我的建議是第一遍學(xué)習(xí)不要一上來就接 MCP先把工具函數(shù)是怎么定義與調(diào)用的搞清楚。MCP 只是把“定義函數(shù)”這部分標(biāo)準(zhǔn)化了模型調(diào)用工具的底層邏輯沒變。2.5 編排Agent 怎么決定下一步動(dòng)作最后一個(gè)關(guān)鍵部分就是“循環(huán)”。Agent 不是調(diào)一次 API 就完事它通常要經(jīng)歷多輪“思考-行動(dòng)-觀察”的循環(huán)這就是常說的 ReAct 模式。展開說模型先分析用戶意圖思考再從可用工具里選一個(gè)并生成參數(shù)行動(dòng)拿到工具返回結(jié)果之后決定是繼續(xù)調(diào)下一個(gè)工具還是整理答案觀察。這個(gè)循環(huán)可能執(zhí)行多輪所以你必須設(shè)置最大迭代次數(shù)防止它陷入無限循環(huán)。我在代碼里就把循環(huán)上限設(shè)成 5。這樣既保證它能完成一些需要兩步以上的任務(wù)又防止出 bug 時(shí)的一次性調(diào)用刷爆你的賬單。編排層的質(zhì)量決定了 Agent 是“聰明”還是“死板”耐心調(diào)這里收益最大。3. 兩小時(shí)實(shí)操全記錄3.1 準(zhǔn)備環(huán)境與基礎(chǔ)依賴我這邊的環(huán)境很簡單Python 3.10 一個(gè)虛擬環(huán)境。開始之前確保已經(jīng)裝好 openai、python-dotenv 兩個(gè)庫。pip install openai python-dotenv你還需要一個(gè)模型 API key。我用的是 DeepSeek 的 key在控制臺(tái)申請后直接填到環(huán)境變量里就行。這一步很容易踩坑key 不要硬編碼在代碼里更不要提交到 Git 倉庫。建一個(gè) .env 文件把 key 放進(jìn)去代碼里通過 os.getenv 讀取干凈又安全。3.2 寫一個(gè)最小可用的 Agent先寫一個(gè) Agent 的核心骨架。核心邏輯是把用戶消息發(fā)給模型模型返回兩種結(jié)果之一——要么直接答題要么要求調(diào)用工具。如果是后者執(zhí)行對應(yīng)函數(shù)把結(jié)果回傳給模型讓它繼續(xù)。from openai import OpenAI import json import os from dotenv import load_dotenv load_dotenv() client OpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com ) def get_weather(city: str) - str: 查詢天氣 return f{city}今天晴25℃ def calculator(expr: str) - str: 計(jì)算表達(dá)式 return str(eval(expr)) TOOLS [ { type: function, function: { name: get_weather, description: 當(dāng)用戶詢問某個(gè)城市的天氣情況時(shí)調(diào)用此函數(shù)參數(shù) city 是城市名稱, parameters: { type: object, properties: { city: {type: string, description: 城市名如北京} }, required: [city] } } }, { type: function, function: { name: calculator, description: 當(dāng)用戶需要數(shù)學(xué)計(jì)算時(shí)調(diào)用此函數(shù)參數(shù) expr 是表達(dá)式, parameters: { type: object, properties: { expr: {type: string, description: 數(shù)學(xué)表達(dá)式如 23*47} }, required: [expr] } } } ] def run_agent(user_input: str, max_iterations: int 5): messages [ {role: system, content: 你是智能助手負(fù)責(zé)通過工具完成用戶請求。調(diào)用工具前先分析用戶意圖拿到結(jié)果后整理成自然語言回復(fù)。}, {role: user, content: user_input} ] for _ in range(max_iterations): resp client.chat.completions.create( modeldeepseek-chat, messagesmessages, toolsTOOLS, temperature0.2 ) msg resp.choices[0].message if msg.tool_calls: messages.append(msg) for tc in msg.tool_calls: fn tc.function.name args json.loads(tc.function.arguments) if fn get_weather: result get_weather(**args) elif fn calculator: result calculator(**args) else: result 未知工具 messages.append({ role: tool, tool_call_id: tc.id, content: json.dumps({result: result}, ensure_asciiFalse) }) continue return msg.content return 達(dá)到最大循環(huán)次數(shù)已終止。 if __name__ __main__: print(run_agent(幫我看看北京天氣))這段代碼跑通之后恭喜你你已經(jīng)有了一個(gè)最簡 Agent。它雖然樸素但模型調(diào)度、工具定義、結(jié)果回傳、循環(huán)決策這些要素全都齊了。3.3 測試與調(diào)試把“最小可用”練扎實(shí)測試用例要覆蓋三類場景純問答、單一工具調(diào)用、多步驟任務(wù)。我當(dāng)時(shí)的測試清單是“你好介紹一下你自己”——純問答不調(diào)用工具?!氨本┙裉於嗌俣取薄|發(fā)天氣工具。“幫我算 23 乘 47”——觸發(fā)計(jì)算器工具?!氨本┨鞖庠趺礃尤缓笏阋幌旅魈烊绻禍?5 度是幾度”——這個(gè)需要多輪調(diào)用。第一遍跑的時(shí)候第 4 個(gè)用例直接翻了車。模型在拿到天氣結(jié)果之后忘了繼續(xù)計(jì)算直接給了一句“明天會(huì)降溫請注意保暖”就結(jié)束了。問題出在 system prompt 里沒有強(qiáng)調(diào)“必須按步驟執(zhí)行完所有用戶請求”。我加了一句“所有用戶明確要求都必須完成不要遺漏任何一步”之后它就正常多了。還有一個(gè)細(xì)節(jié)調(diào)試時(shí)別急著追求完美。模型偶爾犯錯(cuò)很正常你是在搭框架不是在做學(xué)術(shù)論文。3.4 用 n8n 復(fù)現(xiàn)一遍可視化編排的體驗(yàn)手搓完代碼我又花十幾分鐘在 n8n 里復(fù)現(xiàn)了一遍。好處是可以直觀看到數(shù)據(jù)是怎么在節(jié)點(diǎn)之間流動(dòng)的。n8n 里的核心節(jié)點(diǎn)是 AI Agent 節(jié)點(diǎn)配置思路如下觸發(fā)器節(jié)點(diǎn)選 Webhook 或 Manual Chat用于接收用戶消息。AI Agent 節(jié)點(diǎn)模型選 OpenAI 兼容接口把 base URL 指向 DeepSeekmodel 填 deepseek-chat。工具節(jié)點(diǎn)加兩個(gè)“HTTP Request”或“Code”節(jié)點(diǎn)一個(gè)是天氣查詢一個(gè)是計(jì)算器。返回節(jié)點(diǎn)把 Agent 的最終結(jié)果返回給用戶。注意 n8n 的 AI Agent 節(jié)點(diǎn)自帶記憶組件和工具注冊機(jī)制門檻確實(shí)低。但正因?yàn)樗庋b好了一旦調(diào)不出結(jié)果你反而不知道內(nèi)部發(fā)生了什么。這也是我把“先用代碼手搓一遍”放在前面的原因——有了底層手感再用 n8n 就是降維理解而不是黑盒猜謎。3.5 驗(yàn)證與收尾日志和數(shù)據(jù)控制跑通之后別急著關(guān)電腦。把這次運(yùn)行過程中最關(guān)鍵的數(shù)據(jù)記錄下來調(diào)用了多少次 API、每輪模型返回了什么、工具調(diào)用是否正確。這些信息在后續(xù)優(yōu)化時(shí)特別重要。我當(dāng)時(shí)的記錄是單次完整對話平均調(diào)用 API 3 次最大迭代輪數(shù) 5單次成本約 0.001 元級(jí)別。用數(shù)據(jù)說話后面不管是被問“這玩意貴不貴”還是“會(huì)不會(huì)失控”你都能直接掏出答案。4. 常見問題與排查技巧實(shí)錄4.1 API 連接失敗或鑒權(quán)失敗癥狀是報(bào) 401 或連接超時(shí)。最常見原因API key 沒填對、環(huán)境變量沒加載、base_url 拼錯(cuò)。排查順序建議先打印 os.getenv 確認(rèn) key 有沒有讀進(jìn)來再到官網(wǎng)測試接口連通性最后檢查 base_url 是否結(jié)尾多了斜杠。4.2 Agent 死活不調(diào)用工具這個(gè)最讓人崩潰。明明定義了工具用戶問“北京天氣”時(shí)它非要自己編一句“北京今天晴”。原因基本集中在三個(gè)地方工具描述太模糊模型判斷不了意圖。system prompt 沒有明確“允許并鼓勵(lì)調(diào)用工具”的指令。模型本身不支持 function calling。我的經(jīng)驗(yàn)是把描述寫成“當(dāng)用戶詢問XX時(shí)調(diào)用此函數(shù)”再把一個(gè)完整示例寫進(jìn) system prompt 里調(diào)用率能提升一大截。另外把 temperature 調(diào)低模型會(huì)更“聽話”不那么發(fā)散。4.3 上下文越來越長成本暴漲這是長期運(yùn)行必踩的坑。messages 列表只加不減幾十輪對話之后一次性傳給模型的 token 數(shù)量可能破萬費(fèi)用和響應(yīng)時(shí)間同時(shí)飆升。解決辦法給 messages 加一個(gè)上限比如超過 20 條就丟棄最早的幾條或者把舊對話用模型生成摘要只保留摘要加最近幾輪。我自己的習(xí)慣是“滑動(dòng)窗口 關(guān)鍵信息摘要”成本能降一半以上。4.4 角色漂移Agent 開始答非所問明明設(shè)置的是“負(fù)責(zé)通過工具完成用戶請求”聊到后面它開始跟你扯閑天甚至輸出一些奇怪的內(nèi)容。這不是模型壞了是 system prompt 的約束力會(huì)在長上下文里衰減。解法有兩層一是對話每滿幾輪就重新注入一遍 system prompt二是把“只能執(zhí)行與工具相關(guān)的任務(wù)超出范圍回復(fù)我無法處理”寫死。你要是發(fā)現(xiàn)角色漂移特別嚴(yán)重優(yōu)先檢查是不是上下文里出現(xiàn)了大量與任務(wù)無關(guān)的內(nèi)容把這些內(nèi)容早點(diǎn)清理掉。4.5 常見問題速查表現(xiàn)象可能原因排查思路401 鑒權(quán)失敗key 錯(cuò)誤或未加載檢查環(huán)境變量與 key 格式模型不調(diào)用工具描述不清/prompt 沒引導(dǎo)優(yōu)化 description寫示例調(diào)用工具后結(jié)果錯(cuò)誤參數(shù)提取錯(cuò)/函數(shù)內(nèi)部 bug先單獨(dú)測試函數(shù)再走 Agent上下文超長messages 無限制增長做滑動(dòng)窗口或摘要響應(yīng)變成亂碼返回 JSON 解析失敗打印原始返回值不要直接轉(zhuǎn)對象成本太高循環(huán)次數(shù)太多限制 max_iterations降低冗余輪次5. 兩小時(shí)之后把 Agent 變成生產(chǎn)力5.1 個(gè)人場景自動(dòng)化辦公與信息收集兩小時(shí)跑通的 Agent 很快就能上手做實(shí)際事。我可以讓它每天定時(shí)匯總幾個(gè)網(wǎng)站的信息調(diào)一個(gè)搜索接口或爬蟲工具把結(jié)果整成簡報(bào)發(fā)到郵箱。你不需要重新訓(xùn)練模型只需要多定義幾個(gè)工具函數(shù)Agent 的能力就擴(kuò)展了。這類場景的核心思路是“把 Agent 當(dāng)調(diào)度中心把各種 API 當(dāng)手”。今天加一個(gè)郵件發(fā)送工具明天加一個(gè)日歷查詢工具它越來越像你的私人助理。5.2 團(tuán)隊(duì)場景自動(dòng)化運(yùn)維與工單處理如果你所在的團(tuán)隊(duì)有大量重復(fù)性操作比如查日志、重啟服務(wù)、批量處理工單Agent 也能直接上手。熱詞里提過的“AI Agent harness 自動(dòng)化運(yùn)維”就是干這個(gè)的把運(yùn)維工具封裝成 APIAgent 根據(jù)告警自動(dòng)排查和修復(fù)常見問題。這個(gè)進(jìn)階方向要做好權(quán)限控制和可觀測性。Agent 能調(diào)用的工具越多潛在風(fēng)險(xiǎn)越大。我的建議是生產(chǎn)環(huán)境里先讓 Agent 做“建議動(dòng)作”由人來確認(rèn)再執(zhí)行跑一段時(shí)間沒有問題再逐步放權(quán)。5.3 進(jìn)階路線從 Demo 到生產(chǎn)兩小時(shí)版本能跑通但離生產(chǎn)級(jí)還有距離。你接下來要補(bǔ)的主要有四塊評估建立一套測試集每次改完 prompt 或工具后自動(dòng)跑一遍防止“修好一個(gè) bug 又弄壞另一個(gè)”??捎^測性記錄每一輪的調(diào)用鏈出了問題能回溯。記憶引入向量數(shù)據(jù)庫做長期記憶讓 Agent 記住用戶偏好和歷史狀態(tài)。多模態(tài)有些工具要處理圖片、音頻那就要對接支持多模態(tài)的模型讓 Agent 不僅能“看文字”還能“看圖說話”。如果你剛好在找方向我建議你先做“評估”這一塊。很多人把精力花在加新功能上結(jié)果舊功能悄悄退化等到用戶抱怨才發(fā)現(xiàn)。提前搭一套回歸測試能省下大量擦屁股時(shí)間。5.4 給新手的建議路線圖最后整理一條適合新手的路線圖按周拆解第一周跑通文中的最小 Agent改掉它的工具讓它根據(jù)你自己的需求做點(diǎn)小事比如查天氣、查快遞、算賬。第二周學(xué) n8n 或者 Dify把一個(gè)日常手動(dòng)流程變成自動(dòng)流程重點(diǎn)體會(huì)可視化編排和代碼方案的差異。第三周給 Agent 加記憶用一個(gè)簡單的向量庫存幾輪對話感受“記住你”和“不記得你”的區(qū)別。第四周開始梳理自己工作里最高頻的 10 個(gè)重復(fù)操作挑 3 個(gè)封裝成工具和 Agent 聯(lián)動(dòng)。這條路線不需要你精通機(jī)器學(xué)習(xí)核心是“會(huì)用工具 會(huì)拆任務(wù)”。等你走完一輪回頭看兩小時(shí)搭的那個(gè) Agent會(huì)發(fā)現(xiàn)它確實(shí)簡陋但正是這個(gè)簡陋的起點(diǎn)讓你把一堆抽象概念變成了肌肉記憶。我個(gè)人的體會(huì)是最值錢的反而不是那個(gè)能跑通的 Agent而是過程中建立的調(diào)試直覺你知道模型什么時(shí)候會(huì)犯錯(cuò)知道描述怎么寫它才會(huì)聽知道上下文什么時(shí)候會(huì)爆。這些經(jīng)驗(yàn)靠看文檔學(xué)不來只能親手搭一遍。所以我特別建議你今晚就動(dòng)手不用等準(zhǔn)備好兩小時(shí)足夠你入門了。