展能力路線:用戶級提示詞、MCP 工具源與 Skills 三層架構(gòu)實(shí)踐)
數(shù)據(jù)庫客戶端桌面應(yīng)用MCP 服務(wù)【免費(fèi)下載鏈接】GoNaviHigh-performance multi-data-source database client — ~30MB, AI MCP ready, zero Electron bloat. | 高性能多數(shù)據(jù)源數(shù)據(jù)庫客戶端約 30MBAI 與 MCP 就緒告別 Electron 膨脹。項(xiàng)目地址https://gitcode.com/gh_mirrors/go/GoNavi點(diǎn)擊查看免費(fèi)下載本文基于 GoNavi 倉庫中的 AI_EXTENSIONS_ROADMAP.md 展開解析 GoNavi 當(dāng)前 AI 鏈路的組成與職責(zé)邊界并沿著“提示詞 / 工具 / 技能”三層拆分的路線梳理用戶級自定義提示詞、MCP 能力開放與 Skills 設(shè)計的落地方式、數(shù)據(jù)模型與源碼佐證。讀完本文你將掌握 GoNavi 的 AI 配置結(jié)構(gòu)ai_config.json、四個提示詞作用域、MCP 工具注冊與橋接的架構(gòu)分層以及 Skill 從 manifest 到運(yùn)行時注入 system message 的完整實(shí)現(xiàn)路徑。1. 現(xiàn)狀GoNavi 當(dāng)前的 AI 鏈路路線文檔首先明確了當(dāng)前 GoNavi 的 AI 調(diào)用鏈共三個環(huán)節(jié)前端AIChatPanel組裝 system messages前端聲明本地固定工具LOCAL_TOOLS后端aiservice.Service只負(fù)責(zé) Provider 配置、安全級別與模型轉(zhuǎn)發(fā)。從源碼可以印證這條鏈路的真實(shí)存在前端的會話組裝邏輯集中在 frontend/src/components/AIChatPanel.tsx 及其子模塊 frontend/src/components/ai/AIChatPanelModeContent.tsx而系統(tǒng)消息的構(gòu)造在 frontend/src/components/ai/aiSystemContextMessages.ts 中實(shí)現(xiàn)——該文件定義了AISystemContextMessagerole: systemcontent結(jié)構(gòu)并把用戶提示詞、Skills 逐條追加進(jìn) system 消息數(shù)組。后端方面internal/ai/service/service.go 中的Service持有 provider 配置、安全級別與模型轉(zhuǎn)發(fā)能力具體配置讀寫由 internal/ai/service/config_store.go 承擔(dān)。這套結(jié)構(gòu)已經(jīng)足夠承接“用戶級提示詞”但要繼續(xù)承接 MCP 和 Skills需要先把“提示詞 / 工具 / 技能”三層職責(zé)拆開——這正是路線文檔的核心論點(diǎn)。2. 第一層用戶級自定義提示詞已落地2.1 配置存儲與編輯入口用戶級提示詞是三層中唯一已落地的方向三個關(guān)鍵事實(shí)如下配置存儲存放在ai_config.json的userPromptSettings字段。對應(yīng)后端結(jié)構(gòu)見 internal/ai/service/config_store.go 中的aiConfig其中UserPromptSettings ai.UserPromptSettings以json:userPromptSettings,omitempty持久化該文件頂部還定義了配置文件的 schema 版本常量aiConfigSchemaVersion 6加載時若版本不一致會觸發(fā)自動重寫shouldRewrite。編輯入口由AISettingsModal提供前端實(shí)現(xiàn)見 frontend/src/components/AISettingsModal.tsx提示詞編輯子面板位于 frontend/src/components/ai/AISettingsPromptsSection.tsx。運(yùn)行時注入由AIChatPanel在運(yùn)行時把用戶提示詞追加為 system message。前端組裝邏輯見 frontend/src/components/ai/aiSystemContextMessages.ts其中appendCustomPromptGroup按作用域把userPromptSettings.global / database / jvm / jvmDiagnostic分別注入到對應(yīng)場景的 system 消息中。2.2 四個提示詞層級路線文檔建議長期保持 4 個層級前端與后端的實(shí)現(xiàn)已經(jīng)完全對齊層級適用場景說明global所有 AI 會話統(tǒng)一追加承載“個人習(xí)慣”類定制database數(shù)據(jù)庫 / SQL 場景面向查詢編輯與 SQL 分析會話jvmJVM 資源瀏覽與分析場景面向 JVM 內(nèi)存、線程等瀏覽分析jvmDiagnosticJVM 診斷命令規(guī)劃場景面向診斷命令規(guī)劃類會話后端數(shù)據(jù)結(jié)構(gòu)與這四個層級一一對應(yīng)見 internal/ai/types.go// UserPromptSettings 表示用戶級自定義提示詞配置 type UserPromptSettings struct { Global string json:global Database string json:database JVM string json:jvm JVMDiagnostic string json:jvmDiagnostic }保存與讀取通過兩個后端方法暴露給前端見 internal/ai/service/service.goAIGetUserPromptSettings()返回當(dāng)前用戶級提示詞配置AISaveUserPromptSettings(settings)先經(jīng)過normalizeUserPromptSettings歸一化再寫入配置。對應(yīng)的持久化行為在 internal/ai/service/config_store_test.go 的TestProviderConfigStoreSaveAndLoadUserPromptSettings中覆蓋了“保存后再加載應(yīng)完全一致”的往返校驗(yàn)。前端 system 消息注入的對應(yīng)實(shí)現(xiàn)與測試位于 frontend/src/components/ai/aiSystemContextMessages.ts 與 frontend/src/components/ai/aiSystemContextMessages.test.ts。保持 4 層而不是“一條超長總提示詞”的好處既滿足個人習(xí)慣定制又不會把所有場景揉成一條過長提示詞避免上下文預(yù)算被無關(guān)指令占用。3. 第二層MCP 能力開放路線文檔明確了一個關(guān)鍵定位目標(biāo)不是把 MCP 做成新的聊天面板而是把它變成“外部工具源”。圍繞這個定位建議拆成三層3.1 三層架構(gòu)建議tool registry工具注冊表統(tǒng)一收口內(nèi)置工具、本地擴(kuò)展工具、MCP 工具對模型只暴露統(tǒng)一的tools[]屏蔽工具來源差異。mcp server config服務(wù)配置保存 server 名稱、transport、啟動命令或 URL、超時、啟用狀態(tài)由后端維護(hù)生命周期與連通性。mcp runtime bridge運(yùn)行時橋接負(fù)責(zé)list tools / call tool / errors / timeout / auth等運(yùn)行時交互。3.2 倉庫中已具備的實(shí)現(xiàn)基礎(chǔ)雖然路線文檔屬于“后續(xù)規(guī)劃”但當(dāng)前倉庫已經(jīng)落地了一部分基礎(chǔ)設(shè)施可以作為規(guī)劃的現(xiàn)實(shí)錨點(diǎn)配置層ai_config.json的aiConfig已包含MCPServers []ai.MCPServerConfig與MCPHTTPServer ai.MCPHTTPServerConfig兩個字段internal/ai/service/config_store.go。MCPServerConfig的結(jié)構(gòu)與路線文檔建議的配置項(xiàng)高度吻合見 internal/ai/types.go// MCPServerConfig 表示一個可配置的 MCP 服務(wù) type MCPServerConfig struct { ID string json:id Name string json:name Transport MCPTransport json:transport Command string json:command Args []string json:args,omitempty Env map[string]string json:env,omitempty Enabled bool json:enabled TimeoutSeconds int json:timeoutSeconds }注意其中Transport的類型MCPTransport目前只定義了stdio一種常量見 internal/ai/types.go這與路線文檔“后端先支持最小 transportstdio、http/sse如果后續(xù)確認(rèn)需要”的規(guī)劃順序一致——stdio已就緒HTTP 類 transport 屬于待確認(rèn)項(xiàng)。運(yùn)行時層internal/mcpserver包已經(jīng)實(shí)現(xiàn)了工具目錄與執(zhí)行橋接例如 internal/mcpserver/agent_catalog.go 中的AgentToolCatalog.List / Resolve / Execute以及 internal/mcpserver/composite_catalog.go 用于組合多個工具來源internal/mcpserver/dynamic_mcp_source.go 承載動態(tài) MCP 工具源。這可以推斷為“tool registry”與“mcp runtime bridge”的雛形。HTTP 方向MCPHTTPServerConfiginternal/ai/types.go保存內(nèi)置 HTTP MCP 服務(wù)的偏好enabled / addr / path / schemaOnly其中 Token 明確“僅保存在 secret store不會序列化到 ai_config.json”。服務(wù)端形態(tài)見 cmd/gonavi-mcp-server/README.md本機(jī)客戶端默認(rèn)走stdio云端 Agent 可通過顯式開啟的 Streamable HTTP 模式接入。工具面cmd/gonavi-mcp-server當(dāng)前提供的 MCP tools 包括get_connections、get_databases、get_tables、get_views、get_objects、get_columns、get_table_ddl、execute_sql其中execute_sql與內(nèi)置 AI 助手共用“安全控制”分級只讀僅查詢 / 讀寫可 DML / 完全可 DDL且可用--schema-only啟動純元數(shù)據(jù)模式不注冊execute_sql。這直接體現(xiàn)了“把數(shù)據(jù)庫能力通過 MCP 暴露給外部客戶端”的產(chǎn)品方向。3.3 MCP 是否需要單獨(dú) GitHub 倉庫路線文檔給出的結(jié)論非常明確不需要把“GoNavi 對 MCP 的支持”單獨(dú)拆倉庫。更合理的邊界是GoNavi 主倉庫維護(hù) MCP client、配置、UI、工具注冊和運(yùn)行時橋接單獨(dú)倉庫可選只有當(dāng)你需要發(fā)布一個可復(fù)用的獨(dú)立 MCP Server時才值得例如gonavi-mcp-sql-tools、gonavi-mcp-jvm-agent這類獨(dú)立 server。一句話總結(jié)“客戶端支持 MCP”不需要新倉庫“某個獨(dú)立 MCP Server”是否拆倉庫取決于它要不要單獨(dú)發(fā)布、復(fù)用或部署。4. 第三層Skills 設(shè)計4.1 Skills 不等于“另一種提示詞”路線文檔反復(fù)強(qiáng)調(diào)Skills 不建議直接等同于“另一種提示詞”其本質(zhì)是“提示詞 工具依賴 使用入口”的組合而不是單獨(dú)一段文案。建議的四要素如下skill manifest技能清單名稱、說明、適用場景、是否默認(rèn)啟用skill prompt技能提示詞該技能追加的 system prompt / few-shot / 輸出約束skill tool requirements工具依賴該技能依賴哪些內(nèi)置工具或 MCP 工具skill shortcuts快捷入口可選給歡迎卡片、斜杠命令或快速動作提供入口。4.2 倉庫中的 Skill 數(shù)據(jù)模型SkillConfig已經(jīng)按 manifest 思路落地見 internal/ai/types.go// SkillConfig 表示一個可配置的 Skill type SkillConfig struct { ID string json:id Name string json:name Description string json:description,omitempty SystemPrompt string json:systemPrompt Enabled bool json:enabled Scopes []string json:scopes,omitempty RequiredTools []string json:requiredTools,omitempty }與路線文檔“Skill 以 manifest 形式聲明id / name / description / systemPrompt / requiredTools / scopes”的清單完全一致。同時 Skill 的作用域枚舉也復(fù)用了提示詞的四個層級見 internal/ai/types.goconst ( SkillScopeGlobal SkillScope global SkillScopeDatabase SkillScope database SkillScopeJVM SkillScope jvm SkillScopeJVMDiagnostic SkillScope jvmDiagnostic )配置持久化方面aiConfig與ProviderConfigStoreSnapshot均包含Skills []ai.SkillConfiginternal/ai/service/config_store.go對應(yīng)測試見 internal/ai/service/config_store_test.go構(gòu)造了Scopes: []string{string(ai.SkillScopeDatabase)}的 Skill 場景。4.3 Skill 的運(yùn)行時注入邏輯前端在組裝 system messages 時會按作用域與工具依賴過濾并注入 Skill核心實(shí)現(xiàn)在 frontend/src/components/ai/aiSystemContextMessages.ts 的appendSkillPromptGroup啟用過濾skill?.enabled為 false 直接跳過作用域匹配skill.scopes必須與當(dāng)前會話場景global / database / jvm / jvmDiagnostic有交集才注入工具依賴校驗(yàn)若聲明了requiredTools要求每個工具名都出現(xiàn)在當(dāng)前可用工具集合availableToolNameSet中否則不注入注入格式以 “The active Skill {{skillName}} applies to this response. Follow its constraints and workflow” 的形式把description、requiredTools與systemPrompt拼入 system message。這一實(shí)現(xiàn)把路線文檔的“skill prompt”與“skill tool requirements”落到了運(yùn)行時Skill 只有在場景匹配且工具齊全時才會真正生效避免給模型掛上無工具支撐的約束。編輯側(cè) UI 見 frontend/src/components/ai/AISettingsSkillsSection.tsx測試見 frontend/src/components/ai/AISettingsSkillsSection.test.tsx其中明確校驗(yàn)了“Skill 不是另一條大提示詞”“選擇這個 Skill 要作用到哪些場景”“可選聲明這個 Skill 依賴哪些工具”等表單語義。4.4 Skills 是否需要單獨(dú) GitHub 倉庫路線文檔給出的建議順序第一階段不需要獨(dú)立倉庫——先在 GoNavi 主倉庫內(nèi)把 Skills manifest/runtime 跑通等格式穩(wěn)定后再考慮增加“本地目錄導(dǎo)入”或“Git 倉庫導(dǎo)入”只有當(dāng)你明確要做下面兩件事時獨(dú)立倉庫才值得把 Skills 當(dāng)作社區(qū)共享資產(chǎn)分發(fā)讓不同團(tuán)隊獨(dú)立維護(hù)自己的 skill pack。5. 建議的下一步實(shí)現(xiàn)順序路線文檔給出的推進(jìn)次序如下可作為后續(xù)開發(fā)與擴(kuò)展的參考路線抽出統(tǒng)一ToolRegistry讓LOCAL_TOOLS不再硬編碼在聊天面板內(nèi)部——對應(yīng)“tool registry”收口內(nèi)置工具、本地擴(kuò)展工具與 MCP 工具的目標(biāo)對模型只暴露統(tǒng)一的tools[]在 AI 設(shè)置中新增MCP Servers配置頁——對應(yīng)mcp server config層保存 server 名稱、transport、啟動命令或 URL、超時、啟用狀態(tài)后端先支持最小 transportstdiohttp/sse如果后續(xù)確認(rèn)需要注當(dāng)前倉庫MCPTransport枚舉已含stdiointernal/ai/types.goHTTP 側(cè)已存在內(nèi)置 Streamable HTTP server 的配置結(jié)構(gòu)MCPHTTPServerConfig可以作為擴(kuò)展基礎(chǔ)在 AI 設(shè)置中新增Skills配置頁——SkillConfig數(shù)據(jù)模型與前端AISettingsSkillsSection已具備雛形讓 Skill 以 manifest 形式聲明id、name、description、systemPrompt、requiredTools、scopes——與當(dāng)前SkillConfig字段一一對應(yīng)再決定是否增加“從 Git 倉庫同步 MCP/Skills 包”的分發(fā)能力——只有明確要做社區(qū)共享資產(chǎn)分發(fā)或多團(tuán)隊獨(dú)立維護(hù) skill pack 時才值得引入獨(dú)立倉庫。6. 小結(jié)三層職責(zé)與倉庫邊界的判斷標(biāo)準(zhǔn)GoNavi 的 AI 擴(kuò)展路線可以概括為一張三層職責(zé)表層職責(zé)承載位置現(xiàn)狀/規(guī)劃提示詞Prompt用戶級四場景定制運(yùn)行時追加 system message已落地userPromptSettingsglobal/database/jvm/jvmDiagnostic編輯入口AISettingsModal工具Tools內(nèi)置工具 本地擴(kuò)展工具 MCP 工具統(tǒng)一注冊暴露統(tǒng)一tools[]規(guī)劃統(tǒng)一ToolRegistry現(xiàn)狀internal/mcpserver的 catalog 與動態(tài)工具源技能Skillsmanifest提示詞 工具依賴 使用入口按場景注入數(shù)據(jù)模型已落地SkillConfigid/name/description/systemPrompt/enabled/scopes/requiredTools運(yùn)行時注入已實(shí)現(xiàn)倉庫邊界方面判斷標(biāo)準(zhǔn)始終是“是否要單獨(dú)發(fā)布、復(fù)用或部署”MCP 客戶端支持與 Skills runtime 留在主倉庫只有獨(dú)立的 MCP Server如gonavi-mcp-sql-tools或作為社區(qū)資產(chǎn)分發(fā)的 skill pack 才值得拆出獨(dú)立倉庫。這條路線既保持了客戶端 AI 能力的單一收口又為未來開放生態(tài)保留了清晰的分發(fā)邊界。贊分享數(shù)據(jù)庫客戶端桌面應(yīng)用MCP 服務(wù)【免費(fèi)下載鏈接】GoNaviHigh-performance multi-data-source database client — ~30MB, AI MCP ready, zero Electron bloat. | 高性能多數(shù)據(jù)源數(shù)據(jù)庫客戶端約 30MBAI 與 MCP 就緒告別 Electron 膨脹。項(xiàng)目地址https://gitcode.com/gh_mirrors/go/GoNavi點(diǎn)擊查看免費(fèi)下載相關(guān)推薦ai-guide 項(xiàng)目 Vibe Coding 資源大全一站式 AI 工具、提示詞、MCP/Skills 與學(xué)習(xí)資源導(dǎo)航指南ai guide 項(xiàng)目 Vibe Coding 資源大全一站式 AI 工具、提示詞、MCP/Skills 與學(xué)習(xí)資源導(dǎo)航指南 本指南以 ai guide 倉庫文檔教程知識庫人工智能深入 Gemini CLI 的 MCP Server 擴(kuò)展模板從 mcp-server 示例讀懂?dāng)U展如何向 CLI 暴露工具與提示詞深入 Gemini CLI 的 MCP Server 擴(kuò)展模板從 mcp server 示例讀懂?dāng)U展如何向 CLI 暴露工具與提示詞 本文以 Gemini C人工智能AI Agent交互助手CLIMCP ClientsSSD-1B-openmind與AUTOMATIC1111兼容性詳解無縫AI繪圖體驗(yàn)指南SSD 1B openmind與AUTOMATIC1111兼容性詳解無縫AI繪圖體驗(yàn)指南 SSD 1B openmind是一款高效的AI繪圖模型而AUTOM上一篇如何用開源工具實(shí)現(xiàn)40平臺直播自動錄制告別錯過直播的終極指南下一篇免費(fèi)開源的AMD Ryzen調(diào)試工具SMUDebugTool終極指南創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考