TechSummary 2025-08-22
🚀 建立你的第一個 MCP 伺服器:如何用自訂功能擴展 AI 工具
- Model Context Protocol (MCP) 是一個標準化的方法,用於擴展 AI 工具(如 GitHub Copilot)的自訂功能,解決 AI 無法原生存取私有資料、即時資訊或執行特定操作的限制。
- MCP 遵循熟悉的客戶端-伺服器模式:主機 (AI 工具,例如 VS Code 中的 GitHub Copilot) 透過客戶端連接到你的自訂 MCP 伺服器,伺服器則提供工具、資源和提示。
- 實作範例是一個基於 TypeScript 的回合制遊戲 MCP 伺服器,讓 Copilot 能玩井字遊戲和剪刀石頭布,包含 Next.js Web App/API、MCP Server 和共用程式庫。
- 設定 MCP 伺服器需在 VS Code 中透過
.vscode/mcp.json
檔案進行配置,例如:{
"servers": {
"playwright": { /* ... */ },
"turn-based-games": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "./mcp-server"
}
}
} - MCP 的三個核心組成部分:
- 工具 (Tools):定義 AI 可以執行的動作,包含名稱、描述和輸入 schema。例如,
play_tic_tac_toe
工具的定義:實際的遊戲邏輯由 MCP 伺服器執行,而非大型語言模型 (LLM)。{
name: 'play_tic_tac_toe',
description: 'Make an AI move in Tic-Tac-Toe game. IMPORTANT: After calling this tool when the game is still playing, you MUST call wait_for_player_move to continue the game flow.',
inputSchema: {
type: 'object',
properties: {
gameId: {
type: 'string',
description: 'The ID of the Tic-Tac-Toe game to play',
},
},
required: ['gameId'],
},
} - 資源 (Resources):提供 AI 獲取上下文的方式,通常帶有 URI 識別符(例如
game://tic-tac-toe/{Game-ID}
)。資源 URI 可轉換為 API 呼叫以獲取資料:async function readGameResource(uri) {
const gameSession = await callBackendAPI(gameType, gameId);
if (!gameSession) {
throw new Error("Game not found");
}
return gameSession;
} - 提示 (Prompts):為使用者提供可重複使用的指導,例如遊戲策略指南、規則或故障排除建議,可透過 VS Code 中的斜線命令存取(例如
/strategy
)。
- 工具 (Tools):定義 AI 可以執行的動作,包含名稱、描述和輸入 schema。例如,
- MCP 應用不僅限於遊戲,還包括 GitHub MCP 伺服器(處理 Issues、PRs)、Playwright MCP 伺服器(UI 測試)和自訂 API 伺服器(連接內部服務)。
- 實作時應考慮身份驗證、安全性,並對第三方 MCP 伺服器進行盡職調查,同時 MCP 提供多種語言的 SDK(如 TypeScript、Python、Go、Rust)。
✨ Kotlin 後端發展新動向 — KotlinConf 2025 精華
Source: https://blog.jetbrains.com/kotlin/2025/08/kotlin-on-the-backend-what-s-new-from-kotlinconf-2025/
- KotlinConf 2025 強調 Kotlin 在伺服器端開發的顯著地位,半數 Kotlin 用戶將其用於後端開發。
- 與 Spring 建立戰略夥伴關係:JetBrains 與 Spring 團隊宣布合作,旨在為 Kotlin 和 Spring 應用提供完整的 null-safety 保證、官方 Kotlin 相關教學和文件、提升
kotlinx.reflect
性能以及演進配置 DSLs。 - Ktor 發展:Ktor 持續演進為強大且現代的框架,更新內容包括內建的依賴注入(支援 Coroutine 生命週期管理)、新的 HTMX 模組(用於流暢的伺服器驅動 UI 開發) 、支援 suspendable 應用模組、CIO 引擎的 Unix domain sockets,以及 Gradle version catalog。
- Kotlin 與 AI 工具:JetBrains 推出三款 AI 工具,支援伺服器端任務:
- Koog:基於 Kotlin 的框架,用於在 Kotlin 中構建和運行 AI 代理。
- Mellum:JetBrains 自家的 LLM,已開源並針對程式碼生成和智能協助進行優化。
- Junie:JetBrains AI 編碼代理,整合於 IDE 中,現已在 GitHub 的 Early Access Program (EAP) 中開放試用。
- Exposed 1.0 里程碑:經過重構,Exposed 1.0 (Beta 版) 實現了型別安全、富有表現力且符合 Kotlin 慣用語的 SQL 函式庫,並新增對 R2DBC 的完整支援(透過 suspending functions 和 flows 實現非阻塞資料庫操作)、新的 SQL 功能和 IDE 插件。
- 其他亮點包括 Kotlin Notebook 在數據分析中的應用、http4k 實現純 Kotlin、與協議無關的伺服器端開發(基於 Coroutine,避免 Servlet),以及關於 IoT、Coroutine 調試、多平台擴展和無伺服器架構等相關講座。
📊 Datalore 2025.4 更新:Google Drive 整合、Conda 環境支援 Python 3.11 及安全性改進
- Datalore 2025.4 新增了 Google Drive 整合,允許使用者將 Google Drive 資料夾作為資料連接,使筆記本能直接指向 CSV、JSON、Parquet 等檔案的最新版本。
- Conda 環境現在預設支援 Python 3.11,提供更優異的性能、安全性和程式庫相容性。Datalore On-Premises 用戶可建立自訂映像,Datalore Cloud 用戶則可在建立筆記本時選擇 Python 版本。
- 安全性提升:此版本解決了多個 CSRF 和 XSS 相關漏洞,增強了 Datalore 實例的保護。同時修復了互動式表格顯示異常及 Plotly 圖表渲染問題。
🔐 憑證授權機構:數位信任的基石
Source: https://dzone.com/articles/certificate-authorities-trust-transparency
- 憑證授權機構 (CA) 是線上信任的最終仲介,負責發行數位憑證,確保安全的網路瀏覽、電子商務和機密通訊。
- 文章探討了公共與私人信任的差異、瀏覽器和全球論壇在強制法規遵循中的角色,以及近期安全事件如何凸顯 CA 的關鍵責任。
- 內容涵蓋了憑證透明度 (CT)、領先的 CA 和 CT 日誌提供商、高知名度失敗案例,以及 CA 技術的未來發展方向。
🤝 從歷史到未來:AI 通訊 — IPC 到 MCP 和 A2A
Source: https://dzone.com/articles/a2a-mcp-agent-ai-communication-evolution
- Google 的 A2A (Agent-to-Agent) 協議 被定位為 Anthropic MCP (Model Context Protocol) 的補充,兩者在構建複雜的代理系統中解決不同但相關的互動層面。
- MCP 專注於單一 AI 代理與其外部資源(工具和資料)之間的連接。
- A2A 專注於不同 AI 代理之間的通訊和協作。
- 在架構上,MCP 負責代理到資源的介面,而 A2A 負責代理到代理的介面。在多代理工作流程中,一個代理可能使用 A2A 請求另一個專門代理的協助,該伺服器代理隨後可能使用 MCP 與工具或資料源互動以完成任務。
🧐 基於 SHAP 的可解釋 AI (XAI) 與 .Net 應用整合
Source: https://dzone.com/articles/explainable-ai-shap-xai-methods-dotnet-integration
- 可解釋 AI (XAI) 旨在揭示複雜機器學習模型的決策過程,幫助人類理解其判斷依據,從而建立信任並便於發現和修正錯誤。
- XAI 能夠用直白的語言解釋模型做出特定決策的原因。例如:「我從 0% 開始——尚未知道預測。發現那隻狗的鼻子讓我的信心增加了 45%,看到它豎起的耳朵又增加了 30%,蓬鬆的毛髮增加了 10%,項圈增加了 7%。一絲草地稍微降低了 5%。這是一隻狗,我 87% 確定。」
- 文章重點探討了將基於 SHAP (SHapley Additive exPlanations) 的 XAI 方法整合到 .NET 應用中的策略。
⚡ 結合 Apache Kafka 和 Flink 實現即時模型推論,賦能預測性 AI 和生成式 AI
Source: https://dzone.com/articles/model-inference-kafka-flink-predictive-genai
- 模型推論 (Model Inference) 是指利用訓練好的機器學習模型,根據新的、未見過的資料進行預測或生成輸出,是預測性 AI 和生成式 AI 的核心組件。
- 本文介紹了模型推論的基本概念,並比較了遠端推論和嵌入式推論等不同方法。
- 強調了透過 Apache Kafka 和 Flink 進行資料串流如何顯著提升即時預測的性能和可靠性。
- 這對於即時詐欺檢測、智慧客戶服務應用和預測性維護等場景至 關重要。
🏛️ 資料湖、資料倉儲還是資料湖倉?重新思考資料架構的未來
Source: https://dzone.com/articles/data-lake-warehouse-or-lakehouse
- 在 AI 和數據無處不在的時代,傳統的資料架構(資料湖、資料倉儲和資料湖倉)之間的界線日益模糊。
- 這些策略正日益融合,形成統一的、智能的平台,以滿足對即時洞察、敏捷性和單一事實來源的新需求。
- 本文探討了現代資料架構如何演變以應對這些挑戰,並展望了資料架構的未來發展。
🤝 深入探討行為驅動開發 (BDD)
Source: https://dzone.com/articles/behavior-driven-development-deep-dive
- 行為驅動開發 (BDD) 促進了開發人員、測試人員、產品負責人和業務分析師之間的整合,確保所有參與者透過情境參與對系統功能有共同的理解。
- 本文專注於 BDD 的定義、重要性以 及在當前專案中實施的策略。
- BDD 對於在軟體工程中同時滿足產品的技術要求和業務目標至關重要。
🐍 Python 非同步/同步:進階阻塞偵測與最佳實踐 (第二部分)
Source: https://dzone.com/articles/python-asyncsync-advanced-blocking-detection-and-b
- 本文為系列文章的第二部分,深入探討了在混合使用非同步 (async) 和同步 (sync) Python 程式碼時,識別和緩解性能陷阱的進階技術。
- 對於維護高效能
asyncio
應用程式而言,主動識別隱藏的阻塞程式碼至關重要。 - 內容涵蓋了用於偵測非同步上下文中阻塞同步程式碼的實戰方法。
💾 資料儲存:可擴展分析的基礎
Source: https://dzone.com/articles/data-storage-scalable-analytics
- 儘管雲端儲存(如 S3、Glacier)成本已非常低廉,但隨著各企業轉型為資料公司,資料量呈爆炸式增長,資料儲存的重要性不容忽視。
- 將儲存視為次要考量是危險的,因為它作為可擴展分析的基礎,其作用至關重要。
- 文章強調,廉價儲存不代表不重要,它是處理巨量資料增長的關鍵。
⚙️ 如何建立 Ansible 用戶並新增密碼
Source: https://dzone.com/articles/create-ansible-users-add-passwords
- 高效地管理用戶是透過 Ansible 自動化系統管理的核心環節。
- 本指南涵蓋了如何使用 Ansible 的強大工具來建立用戶、設定密碼、將用戶新增到群組以及配置遠端存取。
- Ansible
user
模組 用於在目標系統上管理 Linux 和 UNIX-like 作業系統的用戶帳戶,可設定用戶屬性,例如 UID、家目錄、登入 Shell 和密碼雜湊。 - Ansible 任務是冪等的,因此重複運行任務不會建立重複的用戶。
💡 走向可解釋 AI (第一部分):彌合理論與實踐 — 為何 AI 需要可解釋性
Source: https://dzone.com/articles/explainable-ai-part-1-why-it-matters
- 本系列文章的第一部分,為可解釋 AI (XAI) 奠定基礎,探討其含義、重要性以及當 AI 系統保持不透明時所帶來的風險。
- AI 的可解釋性對於建立信任、確保問責制以及使 AI 系統與現實世界需求保持一致至關重要。