一文搞懂 AI Agent 核心支柱:從 Tools 到 MCP,從 Skills 到 Loop
一文搞懂 AI Agent 核心支柱從 Tools 到 MCP從 Skills 到 Loop摘要2025 年是 AI Agent 的爆發(fā)年但很多開(kāi)發(fā)者分不清 Function Call、MCP、Skills 和 Loop 的區(qū)別。本文將從“手”、“接口”、“手藝”和“大腦運(yùn)行”四個(gè)維度結(jié)合 Python 代碼與實(shí)踐架構(gòu)徹底拆解這四大核心概念并手把手教你如何將它們串聯(lián)成一個(gè)可用的 Agent 系統(tǒng)。前言為什么你的 AI 總在“一本正經(jīng)地胡說(shuō)八道”傳統(tǒng)的 LLM大語(yǔ)言模型像是一個(gè)博學(xué)的“植物人”——腦子里有無(wú)窮知識(shí)但無(wú)法觸碰現(xiàn)實(shí)世界。它不會(huì)查實(shí)時(shí)天氣不會(huì)操作數(shù)據(jù)庫(kù)更不會(huì)自己寫(xiě)代碼并運(yùn)行。為了讓 AI “活” 過(guò)來(lái)業(yè)界在短短兩年內(nèi)構(gòu)建了一套完整的技術(shù)棧。這套技術(shù)棧的四個(gè)基石就是Tools工具、MCP協(xié)議、Skills技能和Loop循環(huán)。很多新手容易把它們混為一談其實(shí)它們的職責(zé)邊界非常清晰Tools解決“能干啥”原子能力MCP解決“怎么接進(jìn)來(lái)”統(tǒng)一接口Skills解決“怎么干好”流程編排Loop解決“怎么干完”自主迭代下面我們逐一深入。一、Tools工具LLM 的“手腳”——最底層的原子能力1.1 什么是 Tools在 OpenAI 提出 Function Calling 之前想讓 LLM 調(diào)用外部函數(shù)你得用繁瑣的提示詞工程如 ReAct 風(fēng)格的文本解析?,F(xiàn)在Tools通過(guò)標(biāo)準(zhǔn)的 JSON Schema 描述函數(shù)簽名讓 LLM 能夠“感知”外部世界。說(shuō)白了Tools 就是一個(gè)個(gè)封裝好的函數(shù)Function比如get_weather(city)、search_web(query)、execute_python(code)。1.2 代碼實(shí)戰(zhàn)標(biāo)準(zhǔn) Tools 定義Python在最新的 OpenAI SDK 或 LangChain 中Tool 的定義長(zhǎng)這樣fromtypingimportLiteralfrompydanticimportBaseModel# 1. 定義輸入?yún)?shù)的 SchemaclassWeatherInput(BaseModel):city:strunit:Literal[celsius,fahrenheit]celsius# 2. 定義工具的具體執(zhí)行邏輯defget_weather(params:WeatherInput)-str:# 模擬真實(shí) API 調(diào)用returnf{params.city}當(dāng)前氣溫 22°天氣晴朗。# 3. 生成 Tool 描述傳給 LLM 的 JSONtool_definition{type:function,function:{name:get_weather,description:獲取指定城市的實(shí)時(shí)天氣信息,parameters:WeatherInput.model_json_schema(),}}關(guān)鍵點(diǎn)Tools 必須是**無(wú)狀態(tài)Stateless且原子性Atomic**的一個(gè) Tool 只專(zhuān)注做一件事。二、MCP模型上下文協(xié)議AI 界的“USB-C 萬(wàn)能接口”2.1 Tools 的痛點(diǎn)碎片化嚴(yán)重假設(shè)你給 ChatGPT 寫(xiě)了一套基于openai格式的 Tools想遷移到 Claude 或本地開(kāi)源的 Llama 上發(fā)現(xiàn)它們的 Tool Calling 格式完全不同有的要求 XML有的要求特定 JSON。每接一個(gè)新模型就要重寫(xiě)所有工具適配層——極其痛苦。2.2 MCP 的誕生MCPModel Context Protocol由 Anthropic 在 2024 年底開(kāi)源。它定義了一套標(biāo)準(zhǔn)化的 Client-Server 架構(gòu)MCP Server暴露工具、資源Resource和提示詞Prompt比如一個(gè)“本地文件系統(tǒng) Server”或“GitHub Server”。MCP ClientAI 應(yīng)用如 Claude Desktop、Cursor、VS Code 插件。只要 Client 和 Server 都遵循 MCP 協(xié)議基于 JSON-RPC 2.0AI 就能動(dòng)態(tài)發(fā)現(xiàn)并即插即用所有工具。2.3 MCP 通信流程精簡(jiǎn)版// Client 發(fā)送初始化請(qǐng)求發(fā)現(xiàn)可用工具{jsonrpc:2.0,id:1,method:tools/list,params:{}}// Server 返回可用工具列表{jsonrpc:2.0,id:1,result:{tools:[{name:read_file,description:讀取本地文件,inputSchema:{type:object,properties:{path:{type:string}}}}]}}CSDN 劃重點(diǎn)MCP 讓 AI 應(yīng)用從“單機(jī)寫(xiě)死工具”進(jìn)化到了“動(dòng)態(tài)插拔生態(tài)”。未來(lái)MCP Server 會(huì)像 npm 包一樣豐富開(kāi)發(fā)者只需要維護(hù)一個(gè) MCP Client就能調(diào)用全世界的工具生態(tài)。三、Skills技能把“工具”變成“手藝”有了 Tools錘子、釘子和 MCP能夠到任何工具箱AI 就能干好活了嗎不能。因?yàn)楦珊靡豁?xiàng)復(fù)雜任務(wù)需要的是流程而不是孤立的 API。3.1 Tools vs SkillsTools“打開(kāi)文件”、“寫(xiě)入代碼”、“執(zhí)行終端命令”。Skills“創(chuàng)建一個(gè) Spring Boot 博客系統(tǒng)” —— 它內(nèi)部封裝了檢查環(huán)境 - 創(chuàng)建項(xiàng)目結(jié)構(gòu) - 寫(xiě)入依賴(lài)文件 - 生成 Entity/Controller - 編譯運(yùn)行 - 若報(bào)錯(cuò)則修復(fù)這一整套工作流。3.2 Skills 的核心特征漸進(jìn)式披露Progressive DisclosureSkills 和 Tools 最大的工程區(qū)別在于上下文占用。Tools 的定義必須始終塞進(jìn) System Prompt占滿上下文窗口Context Window。Skills 采用按需加載。系統(tǒng)先給 LLM 一個(gè)極簡(jiǎn)的 Skill 列表只包含名稱(chēng)和一句話描述。當(dāng) LLM 決定調(diào)用某個(gè) Skill 時(shí)系統(tǒng)才把該 Skill 的詳細(xì)指令Prompt和依賴(lài)的子工具注入上下文。Skills 文件結(jié)構(gòu)示例參考開(kāi)源項(xiàng)目 anthropic/skillsmy-blog-generator/ ├── SKILL.md # 主指令定義角色、流程、約束條件 ├── scripts/ # 關(guān)聯(lián)的 Python/Shell 腳本 ├── references/ # 參考文檔如 API 文檔、架構(gòu)圖 └── assets/ # 模板文件如 HTML 模板四、Loop反饋循環(huán)Agent 的“永動(dòng)機(jī)”LLM 是一次性推理InferenceAgent 是循環(huán)推理Iterative Reasoning。Loop 就是 Agent 的靈魂。它模擬了人類(lèi)的思考模式思考Think→ 行動(dòng)Act→ 觀察Observe→ 再思考Re-think。這就是著名的ReActReason Act范式。4.1 一個(gè)極簡(jiǎn)的 Agent Loop 核心代碼importjsonfromtypingimportList,DictclassSimpleAgent:def__init__(self,llm,tools:List[Dict]):self.llmllm self.toolstools self.messages[]self.max_iterations10defrun(self,user_goal:str):self.messages.append({role:user,content:user_goal})forstepinrange(self.max_iterations):# 1. 思考調(diào)用 LLM 獲取下一步動(dòng)作responseself.llm.chat(messagesself.messages,toolsself.tools,# 傳入可用工具tool_choiceauto)# 2. 判斷LLM 是否想調(diào)用工具ifresponse.tool_calls:fortool_callinresponse.tool_calls:# 3. 行動(dòng)執(zhí)行工具tool_nametool_call.function.name tool_argsjson.loads(tool_call.function.arguments)resultself._execute_tool(tool_name,tool_args)# 4. 觀察將結(jié)果喂回給 LLMself.messages.append({role:tool,tool_call_id:tool_call.id,content:result})print(f[Step{step}] 調(diào)用{tool_name}返回:{result[:50]}...)else:# 如果沒(méi)有工具調(diào)用說(shuō)明任務(wù)完成返回最終答案returnresponse.contentreturn達(dá)到最大迭代次數(shù)任務(wù)終止。4.2 工業(yè)級(jí) Loop 的“六塊積木”一個(gè)能上生產(chǎn)環(huán)境的 Loop遠(yuǎn)不止上面幾行代碼。它需要Automations觸發(fā)器支持定時(shí)或 Webhook 自動(dòng)喚醒 Loop。Worktrees隔離環(huán)境每一次新任務(wù)運(yùn)行在獨(dú)立的 Git Worktree 或 Docker 容器中互不污染。Sub-agents多智能體協(xié)作分解任務(wù)比如“代碼編寫(xiě)員”負(fù)責(zé)寫(xiě)代碼“代碼審查員”負(fù)責(zé)挑錯(cuò)由主 Loop 協(xié)調(diào)。Memory記憶系統(tǒng)使用向量數(shù)據(jù)庫(kù)如 Milvus或 Redis將長(zhǎng)期記憶存儲(chǔ)在模型外部支持跨會(huì)話回憶。五、一圖流四大概念的協(xié)作關(guān)系CSDN 讀者最?lèi)?ài)為了方便大家記憶我將它們整理為一張邏輯拓?fù)鋱D文字版用戶輸入“幫我部署一個(gè)個(gè)人網(wǎng)站” │ ▼ ┌───────────────────────────────────────┐ │ Agent Core (大腦運(yùn)行機(jī)制 - Loop) │ ← 在這里進(jìn)行 Plan→Execute→Observe └───────────────────────────────────────┘ │ 拆解任務(wù) ▼ ┌───────────────────────────────────────┐ │ 技能層 (Skills - 流程封裝) │ │ “部署網(wǎng)站 Skill” │ ← 漸進(jìn)式加載節(jié)省 Token └───────────────────────────────────────┘ │ 調(diào)用底層基礎(chǔ)能力 ▼ ┌───────────────────────────────────────┐ │ 協(xié)議層 (MCP - 統(tǒng)一接口) │ ← USB-C 接口連接萬(wàn)物的橋梁 └───────────────────────────────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ 文件工具 │ │ 終端工具 │ │ 云端API │ ← 原子能力 (Tools) └──────────┘ └──────────┘ └──────────┘六、總結(jié)與最佳實(shí)踐建議干貨如果你是初學(xué)者請(qǐng)按以下順序?qū)W習(xí)先死磕Tools熟練使用 OpenAI / DashScope 的 Function Calling這是地基。再理解MCP試著跑通 Claude Desktop 的本地 MCP Server比如 Filesystem感受“即插即用”的魅力。接著模仿Loop自己用 Python 寫(xiě)一個(gè) 50 行的while循環(huán) ReAct Agent你會(huì)有茅塞頓開(kāi)的感覺(jué)。最后封裝Skills把你經(jīng)常做的一套流程比如“周報(bào)生成器”、“代碼單元測(cè)試生成器”封裝成 Skill 目錄結(jié)構(gòu)沉淀為自己的數(shù)字資產(chǎn)。最后一句忠告不要把所有的邏輯都塞進(jìn) System Prompt善用 Tools 抽離計(jì)算邏輯善用 MCP 解耦外部依賴(lài)善用 Skills 管理復(fù)雜流程善用 Loop 處理不確定性。這四者配合才是未來(lái) AI 應(yīng)用開(kāi)發(fā)的正確范式。 歡迎在評(píng)論區(qū)留言討論你在接入 MCP 或封裝 Skills 時(shí)遇到的坑如果本文對(duì)你有幫助請(qǐng)點(diǎn)贊收藏后續(xù)我會(huì)出一期《手寫(xiě)一個(gè)支持 MCP 協(xié)議的輕量級(jí) Agent 框架》

相關(guān)新聞

ESP32-S3觸摸屏開(kāi)發(fā)實(shí)戰(zhàn):從硬件解析到LVGL界面設(shè)計(jì)

ESP32-S3觸摸屏開(kāi)發(fā)實(shí)戰(zhàn):從硬件解析到LVGL界面設(shè)計(jì)

1. 項(xiàng)目概述:當(dāng)ESP32-S3遇上觸摸屏 如果你玩過(guò)ESP32,可能會(huì)覺(jué)得它已經(jīng)很強(qiáng)大了,集成了Wi-Fi和藍(lán)牙,能做不少物聯(lián)網(wǎng)項(xiàng)目。但當(dāng)你拿到一塊帶觸摸屏的ESP32-S3開(kāi)發(fā)板,比如我手頭這塊“ESP32-S3-Touch-LCD-5”,…

2026/8/1 20:02:21 閱讀更多
程序員客棧接單全攻略:避開(kāi)5大坑,高效拿下項(xiàng)目

程序員客棧接單全攻略:避開(kāi)5大坑,高效拿下項(xiàng)目

很多想做兼職的程序員都在問(wèn):怎么在程序員客棧接單?我先說(shuō)一個(gè)容易誤解的地方:注冊(cè)成功不等于進(jìn)入接單狀態(tài),資料填得多詳細(xì)也不等于馬上會(huì)有項(xiàng)目。按照平臺(tái)流程,開(kāi)發(fā)者需要先完成資料填寫(xiě)和簽約審核,再進(jìn)入…

2026/8/1 20:02:21 閱讀更多
CP2102 USB轉(zhuǎn)串口模塊:嵌入式開(kāi)發(fā)的穩(wěn)定橋梁與實(shí)戰(zhàn)指南

CP2102 USB轉(zhuǎn)串口模塊:嵌入式開(kāi)發(fā)的穩(wěn)定橋梁與實(shí)戰(zhàn)指南

1. 項(xiàng)目概述:CP2102 USB UART Board是什么?如果你玩過(guò)單片機(jī)、樹(shù)莓派或者ESP32這類(lèi)嵌入式開(kāi)發(fā)板,肯定對(duì)“串口調(diào)試”這個(gè)詞不陌生。在開(kāi)發(fā)初期,我們常常需要把電腦和開(kāi)發(fā)板連接起來(lái),讓電腦上的程序能和板子“對(duì)話”&am…

2026/8/1 20:52:51 閱讀更多
TTL轉(zhuǎn)RS485隔離模塊設(shè)計(jì):從原理到工業(yè)應(yīng)用實(shí)戰(zhàn)

TTL轉(zhuǎn)RS485隔離模塊設(shè)計(jì):從原理到工業(yè)應(yīng)用實(shí)戰(zhàn)

1. 項(xiàng)目概述:從TTL到RS485的橋梁在嵌入式開(kāi)發(fā)、工業(yè)控制和物聯(lián)網(wǎng)設(shè)備調(diào)試的現(xiàn)場(chǎng),我們經(jīng)常會(huì)遇到一個(gè)經(jīng)典問(wèn)題:手頭的單片機(jī)、樹(shù)莓派或者調(diào)試用的電腦,其串口輸出的是常見(jiàn)的TTL電平信號(hào)(通常是0V和3.3V/5V)&…

2026/8/1 20:52:51 閱讀更多
【單片機(jī)課程設(shè)計(jì)/畢業(yè)設(shè)計(jì)】基于 STC89C52 的大棚溫光火焰智能聯(lián)動(dòng)控制系統(tǒng)設(shè)計(jì) 51 單片機(jī)驅(qū)動(dòng)的多設(shè)備環(huán)境自動(dòng)調(diào)控監(jiān)測(cè)系統(tǒng)設(shè)計(jì)(017501)

【單片機(jī)課程設(shè)計(jì)/畢業(yè)設(shè)計(jì)】基于 STC89C52 的大棚溫光火焰智能聯(lián)動(dòng)控制系統(tǒng)設(shè)計(jì) 51 單片機(jī)驅(qū)動(dòng)的多設(shè)備環(huán)境自動(dòng)調(diào)控監(jiān)測(cè)系統(tǒng)設(shè)計(jì)(017501)

博主介紹:??碼農(nóng)一枚 ,專(zhuān)注于大學(xué)生項(xiàng)目實(shí)戰(zhàn)開(kāi)發(fā)、講解和畢業(yè)🚢文撰寫(xiě)修改等。全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專(zhuān)注于嵌入式單片機(jī),Java、小程序技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn) ??…

2026/8/1 20:52:51 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專(zhuān)用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/1 0:09:33 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/1 0:09:33 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專(zhuān)用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/1 0:09:33 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/1 0:09:33 閱讀更多