Dec 08 2025
花酒鋤作田 -
Flask集成MCP的AI Agent
前言
近年來,大量新興的 AI 相關第三方庫都提供了異步接口,有些甚至出於性能考慮僅支持異步調用,例如 MCP SDK。伴隨着 Python 異步編程的發展,FastAPI 等框架迅速流行,許多新項目傾向於採用 FastAPI。但實際上,Flask 自 2.0 版本起也開始支持異步方法,因此我們也能借助 Flask 參與到 MCP 的 AI Agent 浪潮中。
PS:需要注意的是,Flask
AI
Nov 29 2025
花酒鋤作田 -
[python]FastAPI-Tracking ID 的設計
前言
在實際業務中,根據 tracking_id 追查日誌中一條請求的完整處理路徑是一個比較常見的需求。不過 FastAPI 官方並沒有提供相對應的功能,因此需要開發者自行實現。本文介紹如何基於 contextvars,為每次請求的完整流程都添加一個 tracking_id,並在日誌中記錄。
什麼是 contextvars
Python 在 3.7 版本的標準庫中加入了一個模塊 contextva
後端
Nov 07 2025
花酒鋤作田 -
[linux]記賬工具-監控用户活動
前言
記賬工具可以提供諸如 Linux 系統中的連接、已執行的程序以及系統資源的使用等有底系統使用信息。這些記賬工具可以通過psacct或acct軟件包安裝。
psacct和acct實際上是相同的。在基於 RPM 的系統中,它以psacct的形式存在;而在基於 DEB 的系統中,它作為acct提供。
安裝
大多流行的Linux發行版中都有 psacct或acct,例如debian中安裝:
sudo
操作系統
Nov 07 2025
花酒鋤作田 -
[MCP][01]簡介與概念
簡介
MCP(全稱為Model Context Protocol,模型上下文協議)是一種面向大模型交互過程的通用上下文協議標準。其核心目標在於為模型構建一個結構化、可控、可擴展的語義執行環境,使語言模型能夠在統一的上下文管理體系下進行任務調度、工具調用、資源協作與狀態保持,從而突破傳統Prompt Engineering在多輪交互、指令組合與行為穩定性方面的瓶頸。
在傳統的大模型應用中,模型本身只
AI
,
mcp
Nov 07 2025
花酒鋤作田 -
[MCP][02]快速入門MCP開發
前言
很多文檔和博客都只介紹如何開發MCP Server,然後集成到VS Code或者Cursor等程序,很少涉及如何開發MCP Host和MCP Client。如果你想要在自己的服務中集成完整的MCP功能,光看這些是遠遠不夠的。所以本文及後續的MCP系列文章都會帶你深入瞭解如何開發MCP Client,讓你真正掌握這項技術。
準備開發環境
MCP官方SDK主要支持Python和TypeScrip
AI
,
mcp
Nov 07 2025
花酒鋤作田 -
[MCP][03]使用FastMCP開發MCP應用
前言
之前的示例用的都是MCP的官方SDK(版本 1.14.0),簡單使用還是沒問題的,但對於Sampling、Elicitation這些相對高級的功能,官方沒有提供Demo,而且因為比較新,網上也沒搜到能用的案例。以我自己的水平折騰了一天也沒搗鼓出來。在翻mcp源碼時意外發現了其內置的FastMCP,順藤摸瓜找到了FastMCP的官網,在官方文檔中找到了相關用法。這裏我們就用FastMCP來實現
AI
,
mcp
Nov 07 2025
花酒鋤作田 -
[MCP][04]Sampling示例
前言
在第一篇MCP文章中我們簡單介紹了Sampling:
採樣是工具與LLM交互以生成文本的機制。通過採樣,工具可以請求LLM生成文本內容,例如生成詩歌、文章或其他文本內容。採樣允許工具利用LLM的能力來創建內容,而不僅限於執行預定義的操作。
為什麼我們要在MCP Server通過Sampling方式調用Client的LLM,而不是MCP Server直接調用LLM呢?這背後其實有一套巧妙
AI
,
mcp
Nov 07 2025
花酒鋤作田 -
[MCP][05]Elicitation示例
前言
如果你之前接觸過LangGraph的"Human in the loop"概念,那麼理解MCP的Elicitation機制就會容易很多。這兩個功能非常相似,都是讓AI在需要時停下來,禮貌地向人類尋求幫助或確認。
想象一下,當你正在和朋友聊天,突然他問你:"嘿,我該穿哪件襯衫去參加明天的聚會?"這時候你就會停下來思考,然後給出建議。Elicitation就是讓AI具備這種"求助"的能力。它允許
AI
,
mcp
Nov 07 2025
花酒鋤作田 -
[MCP][06]持久化記憶
前言
在之前的案例中,會話歷史都保存在內存中,一旦程序重啓,會話歷史就會丟失,導致AI沒法根據會話歷史推測用户當前意圖。這就像一個人記性特別差,每次見面都忘了之前聊過什麼,讓人感覺很不專業。
如果你之前使用過LangGraph,那應該知道LangGraph提供了checkpointer功能來管理歷史會話,可以把歷史會話保存到關係型數據庫或內存中。雖然LangGraph有這個功能,但是MCP官方文檔
AI
,
mcp
Nov 07 2025
花酒鋤作田 -
[MCP][07]logging和progress等功能説明
前言
截至目前(2025年9月19日),除了基礎的Prompt、Resource和Tool概念,FastMCP還提供了以下功能:Sampling、Elicitation、Roots、Logging、Progress、Proxy、Middleware、Composition和Authentication等功能
Sampling,採樣,在server端調用client的llm,實現功能解耦
El
AI
,
mcp
Nov 06 2025
花酒鋤作田 -
[設計模式]行為型-命令模式
簡介
命令模式(Command Pattern)是一種行為型設計模式,它將請求或操作封裝為獨立的對象,允許用户參數化客户端、隊列請求、記錄日誌,並支持撤銷操作。該模式的核心思想是將“請求的發起者”與“請求的執行者”解耦,使兩者通過命令對象進行交互。
角色組成:
調用者(Invoker),負責發起請求的類
命令(Command),一個接口,通常僅聲明一個執行命令的方法
具體命令(Concre
設計模式
Nov 06 2025
花酒鋤作田 -
[設計模式]行為型-備忘錄模式
簡介
備忘錄模式(Memento Pattern)是一種行為型設計模式,它允許生成對象狀態的快照並在以後將其還原。備忘錄模式不會影響它所處理對象的內部結構,也不會影響快照中存儲的數據。簡單來説,它就像遊戲中的“保存”和“加載”功能。
組成角色:
Originator(發起人): 主要用於生成自身狀態的快照,在需要時可以通過快照恢復自身狀態。
Memento(備忘錄): 一個對象,用於存儲Or
設計模式