kevinclaw 智能對話系統 — 完整技術文件
版本:8.0 / 最後更新:2026-06-19
目錄
版本開發歷史
起源(2025-07-25 ~ 2025-07-30):Flask 基礎版
| 日期 | 里程碑 |
|---|---|
| 2025-07-25 | 基礎 Web 介面與對話功能上線(Flask) |
| 2025-07-26 | 完成聊天、網頁搜尋、清除對話核心功能 |
| 2025-07-27 | 文件上傳與 AI 解析、MSSQL 首次整合 |
| 2025-07-28 | Ollama 本地模型支援,MSSQL 多輪對話穩定 |
| 2025-07-29 | AI 角色(Role ID)帶入 SQL 分析功能 |
| 2025-07-30 | 前端版面整理,檔案上傳排版修復 |
V9 風格重整(2025-07-31 ~ 2025-08-02):前端現代化
| 日期 | 里程碑 |
|---|---|
| 2025-07-31 | 全新 VER9 介面風格,手機 RWD 支援,側邊欄選單修復 |
| 2025-08-02 | 集中式 Render 架構(message_renderer.py),Markdown 串流緩衝優化,模型串流/非串流可維護切換機制 |
AutoSQL 與自然語言查詢(2025-08-04 ~ 2025-08-09)
| 日期 | 里程碑 |
|---|---|
| 2025-08-04 | 自然語言包裝 SQL 送 AI 分析,max_results 由 config.ini 控制 |
| 2025-08-05 | AutoSQL 多輪對話記憶機制完成,OLLAMA 支援 |
| 2025-08-06 | AutoSQL 嚴格觸發條件、網頁搜尋結果自動超連結 |
| 2025-08-07 | AutoSQL 三大模組(IT/SO/MO)全通過測試,多輪對話穩定 |
| 2025-08-08 | 製造工單(WO)查詢加入,全後端 LOG 機制 |
| 2025-08-09 | MES AutoSQL 欄位精確化,IT 本週/上週/今日報告修復 |
知識庫(KB RAG)建置(2025-08-20 ~ 2025-09-05)
| 日期 | 里程碑 |
|---|---|
| 2025-08-20 | KB 後端上線,RAG 前端整合,/kb 獨立分頁 |
| 2025-08-22 | KB 基本功能:上傳、索引、搜尋確認 OK |
| 2025-08-24 | 遷移至 ChromaDB,上傳+搜尋流程穩定 |
| 2025-08-25 | 推理模型思考過程過濾機制,KB 混合語義+BM25 檢索 |
| 2025-08-26 | KB 串流回應整合,AI 思考框顯示截圖修復 |
| 2025-08-27 | KB 分區管理(7 個分區:IT/HR/Finance/Legal/Marketing 等),文件拖曳上傳 |
認證授權系統(2025-09-06):企業多用戶管理
| 日期 | 里程碑 |
|---|---|
| 2025-09-06 | auth_plugin 上線:本地用戶認證、群組/角色管理、管理後台 |
| 2025-09-06 | 權限分層:BASIC / PRIVILEGED / ADMIN 群組,KB 納入群組管控 |
| 2025-09-06 | 審計日誌時區修正,管理後台登出功能 |
推理模型與語音(2025-09-07 ~ 2025-10-06)
| 日期 | 里程碑 |
|---|---|
| 2025-09-07 | DeepSeek R1T/V3.1 多模型 API KEY 整合 |
| 2025-10-02 | 段落排版多次迭代優化,DeepSeek V3.1 加入 |
| 2025-10-04 | 語音輸入(ASR)上線(Web Speech API,需 HTTPS) |
| 2025-10-05 | TTS 語音朗讀功能穩定(Web Speech TTS) |
| 2025-10-06 | 推理模型思考輸出控制可配置化,語音選單折疊設計 |
多模型 Fallback 與對話串(2025-12 ~ 2026-02)
| 日期 | 里程碑 |
|---|---|
| 2025-12-15 | 網頁搜尋引擎 V6(Bing 優先) |
| 2026-02-12 | Z.AI 新模型整合,思考型/串流型切換 |
| 2026-02-14 | 台灣法律專家角色新增 |
AI Agent 核心架構(2026-06-07 ~ 2026-06-14):最重要里程碑
| 日期 | 里程碑 |
|---|---|
| 2026-06-07 | 串流排版多次修正,換用 OWL-Alpha 模型 |
| 2026-06-08 | 對話串管理(多串、封存、刪除),SSE 串流穩定 |
| 2026-06-09 | 歷史輪詢機制修正,AutoSQL/MCP 路由多輪記憶 |
| 2026-06-11 | 文件上傳多輪對話修正,網頁搜尋摘要存入對話串 |
| 2026-06-12 | 歷史對話記憶恢復,sub-chat 記憶修復 |
| 2026-06-13 | Fallback Model(429 限流自動切換),KaTeX 數學公式渲染 |
| 2026-06-14 | 第一版 AI Agent(Tool Call 架構)上線,主模型: OWL-Alpha |
AI Agent 工具擴充(2026-06-14 ~ 2026-06-16)
| 日期 | 里程碑 |
|---|---|
| 2026-06-14 | Agent 工具管理框架(AgentToolManager 鬆散耦合架構) |
| 2026-06-15 | 多 DB 智能查詢(3個MSSQL別名並行),跨回合會話記憶 |
| 2026-06-15 | Brave Search API 整合進 Agent |
| 2026-06-15 | 新增對話中止按鈕,個別問答刪除按鈕 |
| 2026-06-16 | Puppeteer Headless Browser 工具上線(AI 控制瀏覽器) |
| 2026-06-16 | 多 DB 別名查詢規則衝突修復,記憶架構強化 |
Terminal、Puppeteer Full Mode、MCP(2026-06-17 ~ 2026-06-19)
| 日期 | 里程碑 |
|---|---|
| 2026-06-17 | Terminal 執行工具上線(Sandbox/Full 兩模式) |
| 2026-06-17 | Puppeteer Full Mode(互動式瀏覽器完整控制)上線 |
| 2026-06-17 | OpenRouter 識別名稱改為 kevinclaw(config.ini 控制) |
| 2026-06-18 | MCP Server 插件架構導入(agent_plugins/ 自動掃描) |
| 2026-06-18 | Telegram MCP Server 整合(7個工具:收發訊息、查詢對話等) |
| 2026-06-18 | MCP 權限系統(MCP_ACCESS + TELEGRAM_SEND),審計日誌 |
功能對比表
| 功能 | 一般用戶 | AI Agent 特權用戶 | 備註 |
|---|---|---|---|
| 基本 AI 對話 | ✅ | ✅ | 串流顯示,多輪記憶 |
| 多對話串管理 | ✅ | ✅ | 可封存、刪除、切換 |
| 檔案上傳分析 | ✅ | ✅ | 圖片、PDF、CSV、文字 |
| 網頁搜尋(爬蟲摘要) | ✅ | ✅ | Bing/Google 多引擎 |
| 知識庫(KB)檢索 | ✅(依群組權限) | ✅ | 混合語義+關鍵字 |
| 語音輸入(ASR) | ✅ | ✅ | 需 HTTPS |
| 語音朗讀(TTS) | ✅ | ✅ | Web Speech API |
| 暗色/亮色模式 | ✅ | ✅ | |
| KaTeX 數學公式 | ✅ | ✅ | |
| 對話中止按鈕 | ✅ | ✅ | |
| 問答截圖 | ✅ | ✅ | |
| Fallback 模型自動切換 | ✅(透明) | ✅(透明) | 429/無回應自動切換 |
| 推理模型思考過程 | 可配置顯示/隱藏 | 可配置顯示/隱藏 | |
| AutoSQL(IT/SO/MO/PO/WO) | ✅(依群組) | ✅ | 自然語言 → SQL → AI 分析 |
| Brave Search(直連) | ❌ | ✅ | Agent 智能搜尋 |
| 多資料庫並行查詢 | ❌ | ✅ | 最多 5 個 MSSQL 別名 |
| 跨回合 Agent 記憶 | ❌ | ✅ | session_memory_store |
| Puppeteer 唯讀瀏覽器 | ❌ | ✅(依權限) | 抓頁面內容 |
| Puppeteer 互動瀏覽器 | ❌ | ✅(依權限) | 登入、填表、截圖、上傳 |
| Terminal 指令執行 | ❌ | ✅(依權限,Sandbox/Full) | 沙箱或完全控制 |
| MCP 外部工具 | ❌ | ✅(MCP_ACCESS 權限) | 目前支援 Telegram |
| Telegram 收發訊息 | ❌ | ✅(TELEGRAM_SEND 權限) | 7個工具,有審計日誌 |
| WordPress 自動發文 | ❌ | ✅(透過 Puppeteer) | |
| AI Agent Tool Call | ❌ | ✅ | 自動決策呼叫哪個工具 |
一般用戶使用說明書
登入
- 開啟系統網址(需聯絡管理員取得帳號)
- 輸入帳號密碼,點擊「登入」
- 閒置超過 Session Timeout 會自動登出(預設 3600 秒)
忘記密碼:聯絡系統管理員(uradmin)重置
基本對話
開始新對話
- 在畫面下方輸入框輸入問題,按 Enter 或「發送」按鈕
- AI 回覆採用串流顯示(逐字出現)
- 回覆過程中可按「中止」按鈕停止回覆
對話功能列(每段回覆下方)
- 📋 複製 — 複製此段 AI 回覆文字
- 🔊 朗讀 — 語音播放此段回覆
- 🗑️ 刪除 — 刪除此則問答
截圖
- 按輸入框旁的截圖按鈕,自動截取當前對話畫面
多對話串
畫面左側為對話串列表:
| 操作 | 說明 |
|---|---|
| 點擊「+」 | 開新對話串 |
| 點擊對話串名稱 | 切換至該串 |
| 右鍵 → 封存 | 封存完成的對話(可繼續閱讀) |
| 右鍵 → 刪除 | 永久刪除對話串 |
注意:切換對話串後,AI 不會記得前一個對話串的內容
檔案上傳分析
- 點擊輸入框旁的 「+」 → 上傳檔案
- 支援格式:PDF、Word、CSV、圖片(JPG/PNG)、純文字
- 上傳後直接提問,例如:「幫我摘要這份報告」
- 檔案在當前對話串有效,切換對話串後需重新上傳
檔案大小上限:10 MB(預設)
網頁搜尋
- 點擊輸入框旁的 「+」 → 網頁搜尋
- 輸入搜尋關鍵字
- 系統自動抓取前幾筆搜尋結果摘要,再由 AI 整合回答
- 回覆中會附上來源網址超連結
知識庫(KB)查詢
- 點擊頂部導航列「知識庫」
- 選擇分區(IT/HR/Finance 等,依你的群組權限顯示)
- 直接輸入問題,系統從已上傳的文件中檢索相關內容
- AI 根據檢索結果給出回答,並標示來源文件
AutoSQL 自然語言查詢
適用群組:Privileged 及以上
輸入自然語言問題,系統自動轉換為 SQL 查詢:
| 詢問範例 | 觸發模組 |
|---|---|
| 「請查詢本週 IT 工單報告」 | IT 模組 |
| 「查詢本月銷售訂單金額」 | SO 模組 |
| 「列出今日生產工單狀態」 | MO/WO 模組 |
| 「查本月採購單」 | PO 模組 |
結果以表格顯示,AI 自動附上分析說明。
語音功能
需求:HTTPS 連線(本機 http://localhost 可能無法使用)
語音輸入(ASR)
- 點擊輸入框旁的麥克風圖示
- 對著麥克風說話
- 語音自動轉成文字,按 Enter 發送
語音朗讀(TTS)
- 每段 AI 回覆下方有朗讀按鈕
- 可在語音選單選擇語言/聲音(中文繁體/英文等)
- 「自動朗讀」開關:開啟後每次回覆自動播放
暗色模式
右上角點擊🌙切換暗色/亮色模式,設定自動記憶。
AI Agent 特權用戶使用說明書
本節為有 AI Agent 權限用戶專用(需管理員開啟 AUTOSQL_ELIGIBLE、PUPPETEER_BROWSER、TERMINAL 等相應群組權限)
AI Agent 是什麼
AI Agent 是具有「工具呼叫」能力的 AI 模式。當你提出需要查資料庫、搜尋網路、控制瀏覽器或執行程式的需求時,AI 不只回答文字,還會自動決策呼叫對應工具,取得結果後再整合成完整回答。
啟動方式:在輸入框旁點擊 「+」→「智慧代理模式」
工具一覽
🗄️ 資料庫工具
| 工具 | 功能 | 使用方式 |
|---|---|---|
db_list_tables |
列出可用的資料表清單 | AI 自動呼叫,無需手動觸發 |
db_get_table_schema |
查詢資料表欄位結構 | AI 自動呼叫 |
db_run_query |
執行 SQL 查詢 | AI 根據問題自動生成 SQL |
多資料庫查詢
系統支援多個 MSSQL 別名並行查詢。詢問時說明要查哪個資料庫:
- 「查詢
primary_9526別名中的銷售訂單」 - 「從
spmdb查本月製令數量」 - 「同時查
CHENSOURCE和spm_ns的庫存差異」
安全機制:AI 只能執行 SELECT 查詢,不能修改資料
🔍 網路搜尋工具
web_search — Brave Search 直連 API,高品質搜尋結果
使用範例:
「搜尋最新的 Python 3.13 新功能」
「找找台灣近期關稅政策變化」
AI 自動判斷是否需要搜尋,無需手動指定。
🌐 瀏覽器工具
兩種模式,依管理員設定開放:
唯讀瀏覽器(puppeteer_readonly_browser)
- 開啟網頁、擷取內容、分析頁面文字
- 適合:「幫我分析這個網頁的內容」
互動瀏覽器(puppeteer_browser)
- 可登入網站、填表、點擊、截圖、上傳檔案
- 適合:「登入我的 WordPress,新增一篇文章」
使用範例:
「開啟 https://example.com 並截圖」
「登入 https://blog.urcloud.biz,新增一篇標題為'測試'的文章」
「幫我填寫這個表單並送出」
警告:互動瀏覽器可以在真實網站執行動作,請確認指令正確再下達
💻 Terminal 工具
terminal_execution — 在伺服器端執行系統指令
Sandbox 模式(白名單指令):
whoami / hostname / git status / dir / ipconfig
git diff --stat / python --version
Full 模式(需管理員開啟):可執行所有允許的指令
使用範例:
「查看目前 git 的變更狀態」
「列出 D:VER12SANDBOX 的檔案」
「執行 python --version 確認 Python 版本」
所有指令執行都有審計日誌記錄
🔌 MCP 外部工具
mcp_list_tools — 查詢已安裝的 MCP Server 和工具清單
mcp_tool — 呼叫指定 MCP 工具
目前已安裝:Telegram MCP Server
| 工具名稱 | 功能 |
|---|---|
ListDialogs |
列出所有 Telegram 對話群組 |
ListMessages |
列出指定對話的訊息 |
GetDialogByName |
依名稱搜尋對話群組 |
GetDialogInfo |
取得對話群組詳細資訊 |
SearchMessages |
全域或在指定對話內搜尋訊息 |
GetSelfInfo |
取得當前登入 Telegram 帳號資訊 |
SendMessage |
傳送訊息到指定對話(需 TELEGRAM_SEND 權限) |
使用範例:
「列出我的 Telegram 未讀對話」
「在 Telegram 搜尋包含'報表'的訊息」
「傳送訊息到 Telegram 的'IT通知'群組:系統維護完成」
注意:SendMessage 有獨立的 TELEGRAM_SEND 權限控制,且所有傳送動作都有審計記錄
🧠 跨回合記憶
update_session_memory — AI Agent 工作記憶
當 Agent 完成一個工具動作後,關鍵資訊(如查詢結果、對話群組 ID)會自動存入記憶,供後續工具呼叫使用,無需重複說明。
Agent 使用技巧
最佳實踐
- 明確說明目標,不要說「幫我查一下」,要說「查詢本週 IT 工單的未結件數量」
- 指定資料庫別名(多庫環境),如「從 primary_9526 查詢…」
- 複雜任務可分步驟,Agent 最多執行 20 次工具呼叫
對話策略
✅ 好的問法:
「請查詢 spmdb 中本月製令(MO)的完成率,並以表格顯示,再搜尋業界標準完成率作比較」
❌ 避免的問法:
「查一下工單」(太模糊)
「查所有資料」(範圍太大)
權限等級說明
| 權限 | 功能 |
|---|---|
CHAT |
基本對話 |
FILE_UPLOAD |
上傳分析檔案 |
AUTOSQL_ELIGIBLE |
AutoSQL / AI Agent DB 查詢 |
SPECIAL_ROLES_ELIGIBLE |
特殊 AI 角色(如 ID:3511 ERP 專家) |
MCP_ACCESS |
MCP 外部工具使用 |
TELEGRAM_SEND |
Telegram 傳送訊息 |
PUPPETEER_BROWSER |
互動式瀏覽器控制 |
TERMINAL_* |
Terminal 執行功能 |
請聯絡管理員(uradmin)開啟所需的群組權限
未來發展藍圖
優先順序排列
🔴 高優先(架構影響大)
🟡 中優先(功能擴充)
🟢 低優先(優化類)
🔴 1. Multi-DB Provider(多資料庫類型支援)
現況:目前僅支援 MSSQL(多個別名並行查詢)
計劃:
- 擴充
mssql_routes.py成抽象 DB Layer - 新增 Provider 驅動:Oracle、MySQL、PostgreSQL
- config.ini 新增
[ORACLE.*],[MYSQL.*],[PGSQL.*]設定區段 - Agent 工具自動辨識資料庫類型選用正確驅動
預期影響:db_run_query 工具無需修改,驅動層透明切換
🔴 2. Channel-Core 系統架構
現況:Flask 單體應用,所有功能都在 app.py
計劃:
- 設計「Channel(通道)」抽象層
- 每個通道(Web Chat / Telegram / Line / Email)共用相同 AI Core
- AI Core 負責:工具管理、記憶、模型呼叫
- Channel 負責:訊息格式化、認證、傳送
用戶 → Channel Adapter → AI Core → Tool Manager → 各工具
↓
Memory Store
🟡 3. Conversation-Centric Task Scheduler(對話為中心的任務排程)
概念:讓 AI 可以設定「定時任務」
功能願景:
- 在對話中說「每天早上 8 點幫我查昨日銷售報表發到 Telegram」
- 系統自動建立排程,定時執行 Agent 工具組合
- 任務執行結果推送到指定通道(Telegram/Web)
技術需求:
- 任務佇列(Celery/APScheduler)
- 任務模板(儲存工具呼叫序列)
- 任務執行歷史記錄
🟡 4. DB Alias 細粒度存取控制
現況:有 AUTOSQL_ELIGIBLE 的用戶可查詢所有 MSSQL 別名
計劃:在 user_overrides 表加入:
override_type = "db_alias":限制可存取的資料庫別名override_type = "db_table_filter":限制可查詢的 Table(支援通配符如dbo.Public.*)
Admin UI:在用戶管理頁面,管理員可為個別用戶設定 DB 別名白名單
不影響現有架構,只需擴充 _check_user_override() 的呼叫點
🟢 5. AI 提示詞 / 角色管理界面
現況:System Prompt 和角色(Role)寫死在 app.py 或 config 檔案
計劃:
- Admin 後台新增「提示詞管理」頁面
- 可視化編輯各角色的 System Prompt
- 支援多版本管理(草稿/發布/歷史版本)
- 可為不同群組綁定不同預設角色
- 新增角色時不需改程式碼(資料庫驅動)
架構演進路徑總覽
現在(v8.0)
├── Flask 單體
├── MSSQL 多別名
├── AI Agent Tool Call(10個工具)
└── MCP Adapter(Telegram)
近期目標(v9.0)
├── Multi-DB Provider(MySQL/PostgreSQL)
├── DB Alias 細粒度權限
└── 提示詞管理界面
中期目標(v10.0)
├── Channel-Core 架構重構
└── Task Scheduler
長期目標(v11.0+)
├── Multi-Channel(Line/Email/Slack)
└── Agent Marketplace(社群 MCP 技能市場)
文件由 Antigravity AI 整理自 git history(共 367 commits),最後更新:2026-06-19
