00第一步:接上 AI 模型#
Lexa Vireon 本身不帶模型權重,也不帶任何金鑰。沒接模型,她什麼都不會想,所以打開視窗後第一件事就是接一個模型。整個流程都在 設定 › 模型與思考 這一頁完成。
步驟 1:打開模型設定#
- 打開 Lexa(雙擊
E:\AI_Agent\Lexa_Vireon.exe,或用瀏覽器開http://127.0.0.1:8787)。 - 左側導覽最下面按 ⚙ 設定(快捷鍵:先按
g再按s)。 - 左側分頁選 模型與思考(網址會變成
#/settings/models)。
你會看到幾張卡片,最重要的是 「一鍵接入與模型候選」(MODEL CONNECTIONS)。
步驟 2:選一個供應者,去拿金鑰#
在 服務供應者 下拉選單選一個。程式內建的清單(來自 GET /api/models/providers):
| 供應者 | 預設位址 | 協議 |
|---|---|---|
| OpenAI | https://api.openai.com/v1 | OpenAI 相容 |
| Anthropic | https://api.anthropic.com/v1 | Anthropic Messages(原生) |
| Google Gemini | https://generativelanguage.googleapis.com/v1beta/openai | OpenAI 相容 |
| OpenRouter | https://openrouter.ai/api/v1 | OpenAI 相容(另外驗證 /key) |
| xAI | https://api.x.ai/v1 | OpenAI 相容 |
| Mistral | https://api.mistral.ai/v1 | OpenAI 相容 |
| Groq | https://api.groq.com/openai/v1 | OpenAI 相容 |
| DeepSeek | https://api.deepseek.com | OpenAI 相容 |
| Together | https://api.together.xyz/v1 | OpenAI 相容 |
| Cloudflare | 留白(自動找帳號) | Workers AI / AI Gateway |
| 任何 OpenAI 相容 API | 自己填 HTTPS 位址 | OpenAI 相容 |
| 本機 OpenAI 相容 | 本機位址 | OpenAI 相容 |
金鑰要到各家自己的後台申請(OpenAI、Anthropic、Google AI Studio、OpenRouter、Cloudflare 儀表板等)。
步驟 3:把金鑰貼進去,連線#
在「一鍵接入與模型候選」卡片:
- 服務供應者:剛剛選的那家。
- 其他服務名稱(可留白)/自訂名稱:想取個好認的名字就填,不填會用供應者名稱。
- API 位址:內建供應者不用填(程式用固定位址)。自訂服務一定要
https://(本機127.0.0.1例外)。 - API Key:貼上金鑰。
- 按 連線並選擇模型 ↗。
這一步會呼叫 POST /api/models/connect。程式會真的去問供應者的模型清單(/models),問得到才存。失敗的話,連線和金鑰都不會留下。
步驟 4:勾選要保留的模型#
連線成功會跳出 「選擇要保留的模型」 視窗。勾選你要的(可多選,名稱之後還能改),按 加入所選模型 ↗(POST /api/models/select)。
接著在模型候選清單裡,對想用的那一個按 使用(POST /api/models/activate),提示「推論模型已切換」,該列會標「使用中」。一次只會用一個啟用中的模型;多選只是候選,不是自動備援,也不是多模型合議。
步驟 5:測試連線#
回到 「三步連接模型」 卡片按 測試連線 ↗(POST /api/model/test)。對於用登錄表啟用的模型,它會用你存的金鑰再問一次模型清單。
步驟 6:完成#
右上角的模型膠囊(model-chip)和右欄「她此刻 · 目前模型」會顯示你剛啟用的模型。到這裡就可以開始用了。
步驟 2b:接本機模型(不用金鑰)#
同一張卡片下方有:
- 尋找本機開源模型:呼叫
GET /api/models/local,探測這些本機位址: 找到的會列出來,旁邊按連接(POST /api/models/local/connect)。http://127.0.0.1:11450/v1(Vireon 自己的模型橋)http://127.0.0.1:11434/v1(Ollama)http://127.0.0.1:1234/v1(LM Studio)http://127.0.0.1:8000/v1(vLLM)http://127.0.0.1:8080/v1(llama.cpp 等相容伺服器)
- 啟動並接上本機模型:
POST /api/models/local/start(kind: auto)。只會啟動已知的兩種:Vireon 模型橋,或「已安裝且有模型」的 Ollama;啟動後一樣要通過模型清單握手才算接上。它不會幫你安裝執行環境,也不會執行任意 GGUF。
本機位址只接受 loopback(127.0.0.1/localhost/::1)。
步驟 2c:Cloudflare(Workers AI 與 AI Gateway)#
- Workers AI:Token 以
cfut_開頭,貼在 API Key,位址留白。程式會用這把 Token 列出你的 Cloudflare 帳號,找第一個有可對話模型(Text Generation)的帳號,位址自動變成https://api.cloudflare.com/client/v4/accounts/<32 碼帳號ID>/ai/v1。模型名稱用 Cloudflare 自己的(例如@cf/...)。 - 也可以自己填
https://api.cloudflare.com/client/v4/accounts/<32 碼帳號ID>/...,程式會正規化成/ai/v1。 - AI Gateway:位址填主機為
gateway.ai.cloudflare.com的 HTTPS 位址,程式會原樣使用,並同時帶Authorization: Bearer與cf-aig-authorization: Bearer兩個標頭;模型清單用<位址>/models取得。 - 小保險:
cfut_Token 不小心貼到別的欄位,程式也會認出來改走 Cloudflare,不會拿去問 OpenAI。
舊式單一端點(「三步連接模型」)#
「三步連接模型」卡片是舊版的單一端點快速連線:常用服務(Lexa 本機橋接/Ollama 本機/LM Studio 本機/其他 OpenAI 相容 API)、API 基礎位址、API Key(使用時才填) → 儲存 Key(POST /api/model/key,存成 model-key.dpapi)→ 測試連線 ↗。它還在,可以用;新的多連線登錄表(上面步驟 2~4)比較推薦。
01簡介#
Lexa Vireon(介面上叫「她」)是一個跑在你自己電腦上的 AI 代理控制台。
- 服務只聽
127.0.0.1(預設埠8787),不綁區網。 - 任務、記憶、設定都存在
E:\AI_Agent\data\lexa_vireon\。 - 模型自己接:任何 OpenAI 相容 API、Anthropic、Cloudflare,或本機的 Ollama/LM Studio。
- 能用工具、MCP、Skills;有流程工作室(Scratch 積木)、排程工作流、長期記憶、Git 變更歷史、資安工作台(要先解鎖)。
- 有風險的動作會先停在 設定 › 審核與稽核 等你點頭;每個動作都有稽核紀錄(雜湊鏈)。
02系統需求#
| 項目 | 需求 | 依據 |
|---|---|---|
| 作業系統 | Windows 10/11 | 金鑰用 Windows DPAPI(pywin32)、Wi-Fi 用 netsh、啟動腳本寫死 E:\AI_Agent |
| Python | 3.11(現場 .venv 是 3.11.9) | README 與現場環境 |
| 虛擬環境 | E:\AI_Agent\.venv | 啟動腳本與 exe 都找這個 |
| 套件 | lexa_vireon\requirements-standalone.txt(requests、pypdf、Pillow、pywin32、google-api-python-client、google-auth-oauthlib、huggingface_hub) | 檔案內容 |
| 桌面視窗 | pywebview(Edge WebView2 / edgechromium) | tools\vireon_desktop.py |
| 備援視窗 | Microsoft Edge(--app 模式) | tools\start_vireon_edge_app.bat |
| 自我修改驗證 | node(會跑 node --check app.js) | selfdev.py |
| GitHub 登入 | 已安裝的 GitHub CLI(gh) | 設定頁說明 |
| 選用 | Ollama/LM Studio、WSL(Kali/Ubuntu)、PyTorch(MCP 碰撞路由,沒有就退回 cosine) | 各模組 |
03安裝與第一次啟動#
1. 準備 Python 虛擬環境#
cd E:\AI_Agent
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r lexa_vireon\requirements-standalone.txt
.\.venv\Scripts\python.exe -m pip install pywebview
2. 啟動服務(最基本的方式)#
cd E:\AI_Agent
.\.venv\Scripts\python.exe -m lexa_vireon serve --port 8787
看到 Lexa Vireon ready: http://127.0.0.1:8787 就好了,用瀏覽器打開那個網址。
其他參數:
--root <路徑>:資料根目錄,預設是lexa_vireon的上一層(也就是E:\AI_Agent)。資料在<root>\data\lexa_vireon\。python -m lexa_vireon check:不開服務,只印出模型、MCP 和工作區狀態(JSON)。
可用的環境變數(__main__.py):
| 變數 | 預設 | 用途 |
|---|---|---|
LEXA_VIREON_WORKSPACE | <root>\workspace\oss_agent_projects | 工具可操作的工作區 |
LEXA_VIREON_MCP_CONFIG | <root>\data\mcp\coding.json | MCP 設定檔 |
LEXA_VIREON_MODEL_URL | http://127.0.0.1:11450 | 舊式單一端點 |
LEXA_VIREON_MODEL | 27B 越獄Coder | 舊式預設模型名稱 |
3. 桌面視窗 Lexa_Vireon.exe#
雙擊 E:\AI_Agent\Lexa_Vireon.exe(約 18 MB 的視窗殼)。它的行為(tools\vireon_desktop.py):
- 先問
http://127.0.0.1:8787/api/health,若回service = lexa-vireon且version = 2.0.0,就沿用現有服務。 - 不健康才用
E:\AI_Agent\.venv\Scripts\python.exe -m lexa_vireon serve --root E:\AI_Agent --port 8787在背景(無視窗)把服務叫起來,最多等約 22 秒。 - 開一個標題 Lexa 的視窗(1440×900,最小 1024×700),瀏覽器資料存在
data\lexa_vireon\lexa-browser。 - 關掉視窗時,只會關掉它自己啟動的那個服務;本來就在跑的不會動。它也不會重啟模型橋。
- Google 登入頁與 Google 裝置活動頁,會另開一個名為 Lexa 的小視窗(只限
accounts.google.com/o/oauth2/...與myaccount.google.com/device-activity)。
腳本版(效果相同):
E:\AI_Agent\tools\start_vireon_desktop.bat
powershell -ExecutionPolicy Bypass -File E:\AI_Agent\tools\start_vireon_desktop.ps1
4. 建立桌面與開始選單捷徑#
powershell -ExecutionPolicy Bypass -File E:\AI_Agent\tools\create_vireon_desktop_shortcut.ps1
會建立 桌面\Lexa.lnk 和 開始選單\Programs\Lexa.lnk,目標都是 E:\AI_Agent\Lexa_Vireon.exe。這支腳本只有你手動執行才會做事。
5. Edge app 模式(沒有 pywebview 時的備案)#
E:\AI_Agent\tools\start_vireon_edge_app.bat
用 Edge --app=http://127.0.0.1:8787/ 開一個沒有網址列的視窗,設定檔在 data\lexa_vireon\lexa-edge-app。
04介面導覽#
主畫面分成:左側導覽、頂端列、中間內容、右欄「她此刻」、底部狀態列,加上最上面一條選單列。
頂端列#
- Lexa Vireon / 目前頁面:麵包屑。
- 搜尋或下指令(Ctrl+K):指令面板,可前往任何頁面、設定分頁、設定面板,也能執行「新任務」「設計工作流」「重新檢查治理」、切換動態強度。
- 狀態核心圖示:點開「她現在的樣子,從哪裡來」,說明每個燈號的資料來源(
/api/health、/api/tasks、/api/governance)。 - 模型膠囊:目前模型狀態。
- GitHub、通知 N:快速入口。
左側導覽#
| 區塊 | 項目 | 快捷鍵 | 做什麼 |
|---|---|---|---|
| 一起做事 | 今天 | g o | 首頁:問候、快速開始、能力軌道、待辦卡片、最近任務、健康狀態 |
| 任務對話 | g c | 下任務、看進度、任務桌(檢查點/轉交) | |
| 自動化工作流 | g w | 排程星曆、積木式工作流、流程工作室入口 | |
| 通知 | g n | 升級、漫遊、打包等結果 | |
| 變更歷史 | g e | Git 時間線、Diff、還原、手動修改、演化與好奇 | |
| 她的能力 | 工具中心 | g t | 工具目錄與參數 |
| MCP 連線 | g m | MCP 伺服器、憑證、MCP Factory | |
| Skills 技能 | g k | 技能庫、匯入 | |
| 長期記憶 | g r | 記憶、配額、封存、對談/語料/線路 | |
| 她的身體 | 算力與虛擬機 | g y | 硬體盤點、算力來源、WSL/SSH 虛擬環境 |
| 衛星城市 | g b | 公開衛星影像 | |
| 資安工作台 | g x | 解鎖後才出現 | |
| 底部 | 設定 | g s | 8 個設定分頁 |
「今天」頁#
- 問候(會用你在「她怎麼稱呼你」填的稱呼)與狀態句。
- 快速開始四張卡(只在「簡潔淡色」外觀顯示):研究 → 任務對話、建置 → 工具中心、分析 → 長期記憶、自動化 → 工作流。
- 交給她的任務 輸入框:交給她 ↗(直接建立任務)、打開對話、變更歷史 ↗、設計工作流程 ↗(開流程工作室)。
- 她的工具箱:工具/MCP/Skills 數量(即時讀本機)。
- 四張卡:等你一句話(等你回覆或核准的事)、她手上的事(執行中任務)、下一個排程、她留給你的話(通知)。
- 最近任務(最近 30 筆)、她的身體狀態(控制台服務、模型橋接、GitHub、資料工作區)。
右欄「她此刻」#
狀態、目前模型、能力來源(工具/MCP/Skills 數量)、資料新鮮度、最近任務活動。
最上方選單列與底部狀態列#
- 選單列:變更歷史、檔案/編輯/視窗/代理/說明。真正有作用的只有:變更歷史、說明 › 開啟活體說明書/LaTeX 虛擬鍵盤/繪圖計算機/奈米對接設定、編輯 › A.A.E.A 進化引擎(只改選單文字,程式提示「沒有重啟服務」)、視窗 › 切換流體 UI 模式、重置工作區排版。
- 其他項目(新增工作區、載入 .vx 腳本、關閉伺服器、強制觸發 S.W.A.R.M. 等)⚠ 在程式裡找不到對應動作,目前只是選單文字。選單上寫的 F1 也沒找到對應的鍵盤處理。
- 底部狀態列:說明書(活體說明書面板)、LaTeX、繪圖、對接、變更歷史、收合(收起來後點「工具列」再叫出來)。
活體說明書面板#
點狀態列「說明書」開啟。裡面的卡片會帶你跳到對應設定:Google(連接與帳號)、自我修改(成長與自我修改)、本地模型(模型與思考;「這個按鈕不會下載權重」)。
鍵盤快捷鍵#
| 按鍵 | 作用 |
|---|---|
Ctrl+K | 開關指令面板 |
g 再按 o c w n t m k r e y b x s | 跳到各頁(見上表) |
/ | 聚焦本頁主要輸入框(沒有就開指令面板) |
i | 溯源鏡(標出每道資料光的來源與年齡) |
? | 快捷鍵說明 |
Shift+M | 切換動態強度 |
Ctrl+S | 在設定頁時儲存設定 |
[ / ] | 在設定頁切換上/下一個分頁 |
Esc | 關閉狀態來源視窗/溯源鏡 |
設定的 8 個分頁#
| 分頁 | 內容 |
|---|---|
| 她的個性 | 人格與情緒表達、她怎麼稱呼你(只存在這台瀏覽器) |
| 外觀與動態 | 整體風格、介面配色、動態強度、溯源鏡、Fluid UI 擴充 |
| 模型與思考 | 三步連接模型、模型與推論、Hugging Face、一鍵接入與模型候選、模型與 MCP 路由 |
| 做事方式與權限 | AI 流程與能力邊界、工具執行閘門、進階能力(資安+100 個字)、手機通知 |
| 審核與稽核 | 待審高風險動作、跨工具稽核紀錄(雜湊鏈) |
| 連接與帳號 | Google、待核准回覆、GitHub、GitHub 開源、Wi-Fi/藍牙、企業系統連接器、Google Workspace 試讀 |
| 成長與自我修改 | 變更歷史捷徑、自我演化、自改程式範圍(13 個範圍) |
| 本機與系統 | 本機環境資訊、macOS SSH 主機、漫遊允許 Tor 來源 |
大部分設定要按左下 儲存設定 ↗ 才會寫進 data\lexa_vireon\settings.json;有未儲存變更會顯示「有未儲存的變更」。例外:整體風格、動態強度、稱呼只存在這台裝置,立即生效。
每個設定面板底下都有 請 AI 引導設定 ↗:會跳到任務對話,幫你填好一段「請協助我設定『…』」的請求(不會索取金鑰明文)。
05對話與任務桌#
下任務#
- 到 任務對話(
g c)。 - 在下方輸入框打目標。Enter 送出,Shift+Enter 換行;中文輸入法選字中的 Enter 不會送出。
- + 圖片/PDF:最多附 5 個檔案(
image/*、.pdf),文字模型會先讀辨識結果。 - 按 送出任務 ↗。
正在看的那則對話裡接著打,會接在同一則(/api/tasks/<id>/follow);那一步還在跑的話會等它結束。要另開請按 + 新任務。
上方會顯示進度、工具呼叫與證據;步數計量表 = 推理步數 ÷ 任務步數上限。有新進度時可按 ↓ 新進度 跳到底。左側 任務清單 可收合;上方另有「自動化工作流」清單和 + 設計工作流 ↗。
斜線指令#
輸入框上方的快捷鈕:/sleep 漫遊、/memory 記憶、/evolve 升級檢查、/help。
| 指令 | 作用 |
|---|---|
/sleep <主題> | 依主題探索(漫遊),不能附檔 |
/memory <查詢> | 查長期記憶 |
/remember <主題> | <內容> | 新增一筆記憶 |
/evolve | 做一次自我檢查/升級檢查 |
/help | 列出可用指令 |
/audit /detect /vulns /triage /posture /rules /secrets /surface /hunt /supply + 路徑 | 資安工具(資安模式開啟後才列出) |
用 @ 呼叫工作流#
輸入 @流程名稱(有空白用 @"流程名稱"),會直接執行那個工作流,不交給模型猜。要填表單的流程會自動開流程工作室。不能同時附檔。
需求澄清模式#
設定 › 做事方式與權限 › AI 流程與能力邊界 › 企業嚴格需求澄清 打開後,任務會先問齊五項:交付物、驗收標準、工作範圍、限制條件、資料來源;你按 確認規格並開始 ↗ 才動工具。預設關閉。
任務桌(對話上方那排按鈕)#
| 控制項 | 作用 | API |
|---|---|---|
| 取消任務 | 要求停止目前任務 | POST /api/tasks/<id>/cancel |
| 檢查點名稱 + 檢查點 | 在目前事件位置記一個檢查點(名稱留白=「手動檢查點」) | POST /api/tasks/<id>/checkpoint |
| 檢查點清單 + 還原檢查點 | 把任務狀態還原到該檢查點當時的狀態 | POST /api/tasks/<id>/restore |
| 重整清單 | 重新讀檢查點/轉交清單 | GET .../checkpoints、.../handoffs |
| 本機帳號名稱 + 登記帳號 | 登記一個本機帳號名稱,用來轉交 | POST /api/accounts |
| 轉交帳號 + 轉交 | 把任務轉給某帳號(未完成的任務才能轉;沒在跑的會變 handed_off) | POST /api/tasks/<id>/handoff |
| 待接手轉交 + 接手 | 接手一筆轉交,任務回到可繼續狀態 | POST /api/tasks/<id>/accept |
| 訂閱事件/收取事件 | 建立事件訂閱、拉取新事件(一次最多 50 筆) | POST /api/events/subscribe、/api/events/subscriptions/<id>/pull |
06模型與金鑰設定#
第一章已經把接模型的流程講完,這裡補齊其他相關設定(全在 設定 › 模型與思考)。
模型與推論#
- 使用模型:輸入或選模型 ID。
- 單次輸出上限:32–8192(預設 1024)。
- 任務步數上限:1–30(預設 8)。
模型候選管理#
在「一鍵接入與模型候選」下方的清單,每個候選右邊有:別名欄 + 命名(/api/models/rename)、使用(/api/models/activate)、刪除(/api/models/delete;API 也支援整條連線刪除)。一般任務也能指定 model_id,讓不同工作流用不同模型而不改全域預設。
開源模型官方載點:隨安裝包附的目錄(GET /api/models/sources,open_model_sources.json)。只有連結,不含權重;下載前請自己核對授權與硬體需求。
Hugging Face#
HF Access Token(hf_…)→ 儲存 Token ↗(DPAPI 加密);填 Repository ID(owner/repository)與 檔案路徑(可留空) → 開始下載 ↗。
模型與 MCP 路由#
MCP 工具推薦方式:「穩定版碰撞 · 複本不變群組」或「Cosine · 回退比較」。下面會寫「實際使用:…」——本機 Python 沒裝 PyTorch 時,就算設成碰撞也會退回 Cosine。這只影響工具推薦,不給執行權限。查看模型實測紀錄 只記延遲、模型識別、供應商回報用量,不存提示詞或金鑰。
金鑰都放哪裡?#
| 東西 | 位置 | 保護 |
|---|---|---|
| 模型登錄表金鑰 | data\lexa_vireon\model-keys\<連線ID>.dpapi | Windows DPAPI |
| 舊式單一端點金鑰 | data\lexa_vireon\model-key.dpapi | Windows DPAPI |
| 連線中繼資料(不含金鑰) | data\lexa_vireon\model-connections.json | — |
| HF Token、手機通知 Token、HTTP 連接器憑證 | 系統加密保存 | DPAPI/加密 |
| GitHub | 由 GitHub CLI 自己管 | 不進 Vireon 設定檔 |
07多模態(生圖/視覺/動畫)#
目的:不管目前選了哪個文字聊天模型,只要你在對話或任務裡要求「畫圖/生成圖片/做動畫/生成 GIF/短片」,Vireon 都會走獨立的多模態橋接(
lexa_vireon/multimodal.py),不要求該聊天模型本身會生圖或看圖,也不需要資安百鑰。
會觸發的說法#
| 類型 | 中文例子 | 英文例子 |
|---|---|---|
| 生圖 | 「畫一隻貓」「生成圖片:海港」「做一張圖」 | draw … / generate image … |
| 動畫 | 「生成動畫」「做一個 GIF」「短片/影片」 | animate / generate video / animated GIF |
| 工具 | 模型也可呼叫 image_generate / animation_generate | (不經資安閘道) |
介面主題切換(例如「調成黑色背景」)仍走 UI intent,不會被誤判成生圖。
圖片後端(依序/設定)#
設定頁 模型與思考 → 多模態橋接:
image_backend:auto(預設)/cloudflare/openai/noneimage_model:預設@cf/black-forest-labs/flux-1-schnell(亦可改 SDXL 等)enhance_image_prompt:是否先用目前聊天模型潤飾英文提示(圖仍由圖片後端產出)
路由:
- Cloudflare Workers AI
POST …/ai/run/<model>(沿用 model registry 已存的帳號/Token/AI Gateway headers) - OpenAI 相容
POST <endpoint>/images/generations(若該連線已設定) - 都沒有 → 回覆請到設定接後端(不會假裝成功)
產物存於 data/lexa_vireon/generated/,以 /api/generated/<id> 預覽、?download=1 下載;聊天事件 generated_media 會內嵌預覽與下載鈕。
視覺理解(附件)#
若你附了圖,而目前模型沒有 vision:
- 橋接呼叫 Workers AI(預設
@cf/meta/llama-3.2-11b-vision-instruct,或@cf/llava-hf/llava-1.5-7b-hf)或本機 llava - 把描述注入文字模型的上下文(
[Vision bridge]) - 若模型原生支援 vision,則不強制改寫附件流程
動畫/影片三條路#
animation_backend:auto(預設)/cloudflare/keyframes/css/none
- 影片 API(若帳號開通):例如 Cloudflare AI 上的
alibaba/wan-3.0等 → MP4 - 關鍵影格:用圖片後端連續出 2–8 張,本機 Pillow 組成 GIF(有
ffmpeg時可再試 MP4) - CSS/SVG 後備:任何環境都能產出可預覽的 SVG/HTML 動畫(純文字模型也能「做動畫」)
能力徽章(設定 › 模型清單):文字/視覺/生圖/動畫;標「·橋」代表由多模態橋接補齊,不是該模型原生。
你需要設定什麼#
- 至少一條 Cloudflare 連線(Workers AI 權限的 API Token)——生圖/視覺最穩。
- (可選)支援
/images/generations的 OpenAI 相容連線。 - (可選)本機 Ollama
llava當視覺後備。 - 影片 API 是否可用視 Cloudflare 帳號/模型開通而定;未開通時
auto會落到關鍵影格 GIF 或 CSS/SVG。
相關 API:GET /api/multimodal、POST /api/multimodal/image、POST /api/multimodal/animation、GET /api/generated/<id>。
08流程工作室(Scratch)完整教學#
流程工作室是獨立頁面:http://127.0.0.1:8787/studio。入口:「自動化工作流」頁的 開啟流程工作室 ↗,或首頁的 設計工作流程 ↗。頁首有 回到對話 ↗、連線與設定、AI 導師 ✧。
版面#
| 區域 | 內容 |
|---|---|
| 左:分類 | 動作、外觀、聲音、事件、控制、偵測、運算、自訂(Scratch 配色) |
| 左:積木盤 | 我的流程 下拉、+ 新流程、試用表單範例、+ 自訂、搜尋積木 |
| 中:腳本 | 流程名稱、流程設定、保存、▶ 測試運行;↶/↷、接成一疊、全圖、縮放 |
| 右:舞台 | 流程名稱與積木數、▶ 測試運行、分頁 ✧ 流程導師/積木屬性 |
積木一覽(分類 → 積木)#
| 分類 | 積木 | 用途 |
|---|---|---|
| 偵測 | ▤ 收集表單 | 一次填齊問題,再交給後續步驟 |
| 偵測 | ▦ 資料彙整 | 把多個來源組成一份結構化資料 |
| 運算 | ∑ 計算公式 | 確定性算式,結果可追溯 |
| 外觀 | ✧ AI 處理 | 整理、分析與撰寫,可綁定前步資料 |
| 外觀 | ◉ 切換模型 | 為不同步驟選擇已連接的模型 |
| 控制 | ◇ 條件分支 | 依實際輸入或輸出分走是/否 |
| 控制 | ✓ 檢查閘 | 未達明確條件就停止 |
| 動作 | ⌘ 連接系統 | 使用已配置的 API、資料庫或 MCP |
| 動作 | ↗ 工具呼叫 | 呼叫範圍內工具,保留執行紀錄 |
| 事件 | ≡ 需求備註 | 加入執行時須遵守的條件 |
| 事件 | ◎ 縮小範圍 | 縮小可用工具與路徑,不擴權 |
| 事件 | ⊣ 預算限制 | 限制後續工具呼叫次數 |
| 聲音 | ☾ 探索任務 | 依主題探索,須先允許睡眠功能 |
| 自訂 | ⊞ 組合積木 | 封裝最多 8 個宣告式步驟 |
基本操作#
- 點積木 → 放進腳本。拖到上一塊正下方鬆開就接成一疊(由上往下執行)。
- 條件分支的「成立/不成立」分成兩條線,可以拉線。
- 點積木或連線 → 右側 積木屬性 調細節。
Ctrl+Z復原、Ctrl+Shift+Z重做、Ctrl/⌘+S保存。- 底部顯示「N 個積木 · N 條連線」。
流程設定(對話框)#
- 這個流程要完成什麼?、起點、允許手動執行
- 流程顏色、回饋迴圈每個積木最多執行幾次?(1–16,預設 1;達上限會停止並標示失敗,不會假裝完成)
- 額外企業說明
- 進階:Scope JSON(可用工具/模型/連接器/路徑)、Limits JSON(預設
max_steps 64、timeout_seconds 300、max_runs_per_day 24、max_parallel 1)。編輯不會擴大全域權限。 - 按 套用設定。
第一個流程:一步一步做(用內建範例)#
- 開
http://127.0.0.1:8787/studio。 - 左側按 試用表單範例。畫面出現「實驗記錄 · 批次表單」三塊積木:
- 填寫實驗資料(收集表單):溶質質量(mg)、溶液體積(mL)、這次實驗要觀察什麼?
- 計算濃度(計算公式):
mass / volume,單位mg/mL,變數綁到表單答案。 - 整理本次紀錄(資料彙整):把答案和濃度組成一份資料。
- 點「計算濃度」,在右側 積木屬性 看它怎麼引用
outputs.form.values.mass。 - 按 保存(狀態從「有未保存的變更」變成已保存)。
- 按 ▶ 測試運行,跳出「開始前,一次填好。」表單,例如質量
50、體積10、觀察「顏色變化」。 - 按 提交答案並運行。下方 執行紀錄 會顯示:已排入執行 → 正在執行 → 執行完成,並逐塊列出結果預覽(濃度應為 5 mg/mL)。
- 執行完成且沒有未保存變更時,按 加入自動化,輸入間隔分鐘(5–1440,預設 60)。它沿用既有排程器與權限審核。
自己從零做一個#
- + 新流程 → 改流程名稱。
- 「偵測」拿 收集表單,在屬性加問題(回答類型:文字/數字/是否/單選…,欄位代號供計算引用)。
- 「外觀」拿 AI 處理,拖到表單正下方接起來,寫提示詞並綁定前步資料。
- 想擋錯就加 檢查閘;要分流就用 條件分支。
- 流程設定 → 確認起點、Scope。
- 保存 → ▶ 測試運行。
流程導師(AI)#
右側 ✧ 流程導師:選 設計用模型(可用目前模型),展開 企業背景與驗收資料 填企業名稱、知識與驗收條件,在下面描述想法 → 一起規劃 ↗。導師會看可用能力、追問,並標出「待補能力」。滿意後按 根據討論產生流程草稿;草稿先過結構檢查,由你確認再保存。可加一份企業 PDF(先移除個資)。
自訂積木#
積木盤 + 自訂 → 「打造專用積木」:名稱、需求 → 請導師先幫我釐清 → 填 使用者驗收案例(JSON)(一個正確輸出+一個應失敗的案例)→ AI 生成積木草稿 → 編輯 積木定義 → 執行範例測試並加入積木庫。這版能生成表單、受限算式、資料彙整與檢查積木;任意程式碼或外部插件不在這裡執行。
主題同步#
工作室讀同一個 localStorage:vx-theme(light/scifi)和 vireon.ui.theme(配色)。主畫面切換時,另一個分頁的工作室會跟著變(storage 事件)。
09記憶#
長期記憶(g r)頁面。記憶帶來源與可信度,跨任務、跨工作資料夾延續——它是脈絡,不是未經查證的指令。
基本操作#
- 左側搜尋記憶主題,點一筆看內容。
- 記下一件事:填主題、內容 → 保存記憶 ↗。
- 選一筆後改內容 → 修訂選取(
/api/memory/revise)。
範圍、開關、配額、封存#
| 控制項 | 作用 | 限制 |
|---|---|---|
| 領域/專案 + 套用領域 | 設定目前工作領域與專案覆寫(可留白) | 最多 40 字,字母數字空白 ._- |
| 記憶開關 | 整個記憶功能開/關 | — |
| 筆數上限 + 容量上限 KB + 套用配額 | 設定配額 | 筆數 1–5000(預設 2000);容量 1–8000 KB(預設約 4000 KB) |
| 封存較舊的記憶 | 保留最新 20 筆,其餘壓縮(gzip)封存並記 SHA-256 | — |
| 封存編號 + 讀取封存 | 讀回一包封存的內容並驗雜湊 | — |
超過配額時新增會失敗(Memory quota exceeded),先封存或調高配額。下方狀態列會顯示筆數、容量、封存數與雜湊檢查。
同頁的「對談、語料與線路」#
- 對談(Roundtable):寫對談主題、填模型 ID(逗號分隔,1–4 個、不可重複)→ 開始對談(每次 4 輪,round 模式)→ 停止 → 匯出研究提案(產生
research-proposal.md內容:主題、各模型發言、摘要)。 - 語料索引:填公開網址、選 Common Crawl 或 Internet Archive → 查索引。只查公開 CDX 索引,不下載本文。
- 看線路:見 網路與無線。
- 程式續寫:貼程式前文 → 請已連上的模型續寫。
10變更歷史/自我修改與還原#
變更歷史(g e,網址 #/evolution;頂端選單、狀態列、設定 › 成長與自我修改都有入口)。
Git 時間線#
Vireon 有一條獨立的 Git 時間線,放在 data\lexa_vireon\self-history。每次自我修改、MCP 建立都會記一筆:時間、摘要、檔案。
- 重新整理 ↗ 讀清單(
GET /api/history)。 - 點一筆看主要 Diff(
GET /api/history/<commit>)。 - 還原為此版本(
POST /api/history/<commit>/restore):把那筆修改動到的檔案換回它的上一版,再新增一筆「Restore …」紀錄。不會 force-push,也不會刪歷史。
手動提出一筆修改#
「手動提出一筆修改」卡片:相對路徑(例如 lexa_vireon/README.md)、原文字(必須恰好匹配一處)、新文字、變更摘要 → 驗證並寫入 Git ↗(POST /api/self-edit)。
寫入流程(selfdev.py):先把目前檔案當基準記一筆 → 寫入 → 跑 compileall、unittest 測試、node --check app.js → 全過才 commit;任何一步失敗就把原檔寫回去。成功後回 restart_required: true,Python 端的修改要重啟服務才生效。
自我演化與範圍(設定 › 成長與自我修改)#
- 持續檢查與提出升級:服務運行時定時檢查;修改先進待審區,核准後才測試並寫入 Git。
- 允許自改程式。
- 檢查間隔(分鐘):30–1440(預設 180)。
- 自改程式範圍:13 個可獨立開關的範圍——提示詞與人格、介面與主題、流程工作室與工作流、MCP 與連接器、工具與技能、長期記憶、模型橋接、權重配置與算力、證據與防幻覺、漫遊與自動升級、Google/GitHub/HF、虛擬機、共用執行核心。AI 自改不能新增頂層模組,只能放在
extensions/<範圍>/。
演化與好奇#
同頁「接觸、驗證、下一則問題」:填主題 → 只做接觸(查唯讀 MCP 與長期記憶,只比對)或 演化一輪(請目前模型寫一則好奇提示,用前向預測誤差當內在好奇;只有保留案例誤差下降才留下)。
審核#
設定 › 審核與稽核:待審高風險動作 逐項核准/拒絕(/api/governance/<id>/approve|reject);跨工具稽核紀錄 用雜湊鏈檢測本機紀錄是否被改(不是遠端不可竄改保存)。
11工具中心/MCP/Skills/自動化#
工具中心(g t)#
保留舊 Lexa 的完整工具目錄(現場 30 個,例如 web_search、web_fetch、read_file、write_file、run_command、memory_search、github_search、vm_run…)。搜尋 → 點一個看參數與能力。可用狀態和變更閘門分開顯示。
工具執行閘門(設定 › 做事方式與權限):
- Legacy 工具變更操作:開了才可執行寫檔、命令等變更型工具(預設關)。
- MCP 變更操作:預設只允許唯讀類 MCP 工具,開了才放行其他呼叫(預設關)。
AI 流程與能力邊界:強制 AI 流程(預設「確認需求 → 規劃步驟 → 調用可用工具 → 驗證結果 → 回報依據與限制。」)、底層用法、AI 權限等級(低 · 唯讀優先/中 · 使用已開啟能力/高 · 提出更廣泛動作,仍受審核)、功能範圍、同時執行工作流上限(1–8,預設 2)。這些只會再收緊,不會繞過閘門、資安模式或人工審核。
MCP 連線(g m)#
- 選一個伺服器 → 即時握手、列工具;可為每個 MCP 設定獨立憑證(只顯示已設定的名稱)。
- 詳細頁有 向量碰撞推薦:描述想找的工具 → 碰撞並推薦工具(只推薦,不執行)。
- 現場內建唯讀 MCP:
git、project、filesystem、fetch、workflow-advisor、studio-blocks。 - 建立自己的 MCP(MCP Factory):伺服器名稱、用途描述 → 建立、測試並掛載 ↗。產生可編輯的 stdio 伺服器,做 schema 檢查、真實握手與工具呼叫,再加入專屬 MCP 設定;程式碼寫入 Git 時間線。
Skills 技能(g k)#
現場 38 個(lang-python、pdf、playwright、cloudflare-deploy…)。搜尋、閱讀完整指引;Agent 會在任務中調用。匯入開源 Skill:選 Markdown 或含 SKILL.md 的 ZIP,安裝後立刻進目錄。
自動化工作流(g w)#
- 排程星曆 · 未來 24 小時:接下來要跑的排程。
- 積木式自動化工作流:選 起始模板(現場:Workspace review、Custom workflow,或「自訂 · 空白流程」)→ + 建立工作流。
- 讓 AI 和你一起設計工作流:企業名稱、建議模型、詳細需求、相關知識、企業任務規格(交付物、驗收標準、工作範圍、限制條件、資料來源)、最多 5 份 PDF(每份 20 MB)→ 先看模式建議與落地差距 ↗ / AI 產生可編輯草稿 ↗。
- 編輯工作流:名稱、標籤顏色、啟動方式(手動/定時間隔)、間隔(分鐘)(5–1440)、啟用工作流、背景自動運作(須同時啟用並設定定時間隔)、範圍(路徑/工具/舊版工具/模型 ID/連接器 ID,每行一個)、允許 /sleep 積木、最大步數(1–128)、逾時、每日最多執行、併行上限。
- 按鈕:嚴格驗證、審查設計與證據 ↗、驗證並保存 ↗、乾跑、執行、刪除;執行紀錄 · 刷新狀態 ↗。
- 查看設計模式與目前支援狀態 ↗:六種設計模式(例如「分類後執行」原生可執行;「平行分析後合成」需要擴充)。
企業系統連接器(設定 › 連接與帳號)#
類型:HTTP API(GET)、SQLite 唯讀資料庫(工作區內)、既有 MCP 伺服器、Google Workspace(Drive 檔案列表/Gmail 收件匣/Docs 文件,唯讀)。測試連線 → 保存連接器 ↗。HTTP Bearer Token 加密保管不回顯。Google Workspace 試讀 可先看讀到什麼。
Google 帳號與待核准回覆#
- Google Cloud 建專案 → 啟用 Gmail/Calendar/Drive/Docs API → 設定同意畫面 → Clients 建立「Desktop app」→ 下載 OAuth JSON。(是 OAuth Client ID,不是 API Key。)
- 匯入 OAuth JSON → 選 權限等級:低 · 基本身分/中 · 唯讀信件、行事曆、Drive 檔案清單、文件/高 · 另可寄信、編輯行事曆與 Drive 檔案。
- 以 Google 登入 ↗(在名為 Lexa 的內建視窗開)、用 Lexa 看 Google 裝置、檢查連線、測試帳戶、讀取收件匣。
- 待核准回覆:自動草擬的 Gmail 回覆要你核准才寄出。每筆顯示寄件者、主旨、草稿摘要,按 核准寄出(會再確認一次)或 拒絕(不寄)。
手機通知、GitHub#
- 進階權限 · 手機通知:ntfy HTTPS 服務、私人主題(12–100 字元)、Access Token → 儲存手機通知設定 → 傳送固定測試通知。只送固定狀態提醒,不送內容。預設關閉。
- GitHub 帳號:登入/切換 GitHub 帳號 ↗(用 GitHub CLI)。GitHub 開源:只開倉庫頁面,不下載程式。
算力與虛擬機、衛星城市、通知#
- 算力與虛擬機:本機規格(一次性盤點,不是即時負載)、不對稱算力來源、算力演化(只在下一輪實測更快才保留,不改模型檔)、可用系統(WSL 發行版)、建立虛擬環境(Kali/Ubuntu 用 WSL;macOS 用設定裡的 SSH 主機;或其他 WSL 發行版)→ 建立/驗證並掛載 MCP ↗。
- 衛星城市:連上衛星影像/中斷影像,選城市(台北、東京、紐約…共 20 個)、放大縮小(3–16)、往北東南西移動、真實背景/科幻配色。影像來自 Esri、Maxar、Earthstar Geographics;只接收公開影像,不控制衛星。同頁另有 線路/出口:列出本機 Tailscale 同伴,標示誰有開放 Exit Node;選一個區域出口後 連上出口(
tailscale set --exit-node=… --exit-node-allow-lan-access=true)或 清除出口(--exit-node=)。可 查公開 IP 確認出口是否生效。這會改 Tailscale 出口路由,不是完整 kill switch(出口斷線時流量可能回到本機線路);也不會把本機變成開放代理。 - 通知:升級、漫遊、打包結果;頂端「通知 N」顯示未讀數。
12網路與無線#
Tailscale 線路/出口(衛星城市)#
- 需要本機已安裝並登入 Tailscale;其他地區的裝置須在 Tailscale 設定中 Advertise as exit node,且帳號允許使用該出口。
- 在 衛星城市 頁的 線路/出口 面板:重新整理 同伴列表 → 選區域/出口 → 連上出口;不用時按 清除出口。查公開 IP 可對照出口前後的外網位址。
- 面板會提示:這不是完整 kill switch;出口節點只延伸可達範圍,不取代帳號或 API 金鑰。
Wi-Fi/藍牙(設定 › 連接與帳號 › 連線 · Wi-Fi/藍牙)#
- 顯示目前 Wi-Fi 狀態、附近 Wi-Fi、已儲存設定檔、藍牙裝置(讀
netsh wlan與Get-PnpDevice -Class Bluetooth)。 - 填 SSID、密碼(選填) → 連線。已存過的網路可不填密碼;新網路要填。密碼只傳給 Windows 建立連線設定檔(暫存檔用完即刪),不寫進 Vireon、不進 toast/歷史。
- 中斷 Wi-Fi、重新整理、開啟系統 Wi-Fi 設定、開啟藍牙設定(配對要在 Windows 設定裡確認)。
線路(network fabric)#
長期記憶 › 看線路(GET /api/network/fabric)列出光纖、Wi-Fi、5G、Starlink、Iridium Certus、Private VPN、Tailscale、企業 LAN 等路徑是否啟用與分數,並做一次「15 GB 傳輸該走哪條」的建議(POST /api/network/fabric/choose)。
- 這份結果只做建議,不會改系統路由。
- Tailscale 與虛擬介面視為 overlay,不會被選成主路徑。
- 衛星或備援線路只延伸可達範圍,不會取代帳號、VPN 或 API 金鑰。
13資安模式與百鑰#
資安工具組預設整組關閉,要過兩道門:
- 百鑰(100 個字):一整段 100 個字元的字串,一次輸入(不是 100 組)。
- 設定開關:設定 › 做事方式與權限 › 進階能力 › 啟用資安工具組,再按 儲存設定。
解鎖步驟#
- 到 設定 › 做事方式與權限,找到「進階能力」卡片。
- 勾 啟用資安工具組。還沒解鎖的話,勾選會被退回,並顯示 100 個字輸入框。
- 在 100 個字 欄位貼上你自己保存的那段字串 → 送出這 100 個字(
POST /api/security/gate)。 - 看到「100 個字對了。現在可以開啟資安功能。」後,再勾 啟用資安工具組 → 儲存設定。
- 左側「她的身體」出現 資安工作台(
g x)。
運作原理(照程式碼)#
- 介面提示是「桌面文字檔裡的 100 個字」。程式實際比對的字串來自
data\lexa_vireon\security-gate-keys.json的phrase欄位(必須剛好 100 字元)。 - 狀態 API(
GET /api/security/gate)永遠不回傳字串,只回unlocked、total等。 - 對了以後寫入
data\lexa_vireon\security-gate.json({"unlocked": true}),並從記憶體丟掉字串。這不是設定開關,改設定檔不能跳過。 - 若沒解鎖就用 API 把
security_mode_enabled設成 true,會被拒絕(403「資安功能要先輸入 100 個字」)。
資安工作台內容#
以本機檔案快照做唯讀分析,每項結果保留來源與證據:01 事件關聯、02 弱點管理、03 事件分診、04 配置姿態、05 偵測規則回放、06 憑證外露候選(只顯示規則、行號、雜湊)、07 網路暴露面(解析已有的 Nmap XML,不發掃描封包)、08 跨來源威脅狩獵、09 依賴與供應鏈。
網路漫遊(ROAM):解鎖且資安工具組啟用後,填公開網域(一行一個)與要 AI 做的事 → 到這些網域並請 AI 做事。不登入對方帳號、不改無線網路、不讀內網位址。
14外觀主題#
設定 › 外觀與動態:
| 面板 | 選項 | 存在哪 |
|---|---|---|
| 整體風格 | 簡潔淡色(預設)/科幻深色 | 瀏覽器 localStorage 的 vx-theme(light/scifi),立即生效,不用按儲存 |
| 介面配色 | Sombra 夜紫(旗艦)、森綠、曜黑、深海、星紫(薰衣草)、熔金、晨霧 | 點色塊即時預覽;按 儲存設定 寫入設定檔;localStorage 的 vireon.ui.theme |
| 動態強度 | 關閉/柔和/完整,或 跟隨系統設定 | 只存這台裝置(Shift+M 也能切) |
| 溯源鏡 | 標出資料來源與年齡(i) | — |
| Fluid UI 擴充 | 啟用 Fluid UI 預覽工作台(預設關),開 /fluid/ | 設定檔 |
15備份與還原#
Vireon 沒有內建的一鍵備份按鈕。內建的「回頭機制」有三種:變更歷史(程式檔)、任務檢查點(任務狀態)、記憶封存(記憶)。完整備份請自己複製資料夾。
要備份什麼#
| 路徑 | 內容 |
|---|---|
E:\AI_Agent\data\lexa_vireon\settings.json | 設定 |
...\events.sqlite3 | 任務與事件、檢查點、轉交、帳號 |
...\memory.sqlite3 | 長期記憶與封存 |
...\workflows.sqlite3、studio.sqlite3 | 工作流、流程工作室 |
...\roundtable.sqlite3、activity.sqlite3、model-metrics.sqlite3 | 對談、活動、模型實測 |
...\model-connections.json、model-roles.json | 模型連線(不含金鑰) |
...\model-keys\、model-key.dpapi | 金鑰(DPAPI,只有同一台電腦同一個 Windows 帳號解得開) |
...\governance\ | 審核與稽核 |
...\self-history\ | 自我修改 Git 時間線 |
E:\AI_Agent\lexa_vireon\ | 程式本體 |
建議做法#
# 1. 先停服務(確定沒有執行中的任務)
$p = (Get-NetTCPConnection -LocalPort 8787 -State Listen).OwningProcess
Stop-Process -Id $p
# 2. 複製
$ts = Get-Date -Format yyyyMMdd_HHmmss
robocopy E:\AI_Agent\data\lexa_vireon "E:\AI_Agent\backups\vireon_data_$ts" /E
# 3. 再啟動
E:\AI_Agent\.venv\Scripts\python.exe -m lexa_vireon serve --port 8787
還原:停服務 → 把備份資料夾內容複製回 data\lexa_vireon\ → 啟動。
16常見問題排解#
打不開 http://127.0.0.1:8787(埠沒在聽)#
netstat -ano | findstr ":8787 "
curl.exe -s http://127.0.0.1:8787/api/health
- 沒有
LISTENING:服務沒起來,手動執行E:\AI_Agent\.venv\Scripts\python.exe -m lexa_vireon serve --port 8787,看終端機錯誤訊息。 - 有在聽但 health 不是
lexa-vireon:埠被別的程式佔了。 - exe 跳出「Vireon 在連接埠 8787 還沒有就緒。」或「Vireon 程式沒有留在執行中。」:用上面的指令手動啟動看錯誤。
- 「找不到 Vireon 的 Python」:
E:\AI_Agent\.venv\Scripts\python.exe不存在,回到 安裝 建 venv。 - 一定要用
127.0.0.1或localhost,用區網 IP 會被擋(403 Loopback host required)。
關不掉舊的服務:Access denied#
若服務是用系統管理員身分啟動的,一般 PowerShell 的 Stop-Process 會回「Access is denied」。用「以系統管理員身分執行」開 PowerShell 再停:
$p = (Get-NetTCPConnection -LocalPort 8787 -State Listen).OwningProcess
Stop-Process -Id $p -Force
桌面 exe 只會停它自己啟動的服務;本來就在跑的(例如管理員啟動的)它會沿用、不會動。
改了介面卻沒變#
- 瀏覽器:
Ctrl+F5或Ctrl+Shift+R強制重新整理。 - 程式對所有頁面回
Cache-Control: no-store,正常不會卡快取;若是改了 Python 檔,要重啟服務。 - 整體風格看起來不對:檢查
localStorage的vx-theme(設定 › 外觀與動態 › 整體風格重選一次即可)。
POST 被拒(403 Origin / Cross-site / Referer)#
API 只接受同源請求。請從 http://127.0.0.1:8787 的頁面操作,不要從別的網站或檔案頁面呼叫。
模型連不上#
- 「Remote model endpoints require HTTPS」:遠端位址要
https://。 - 「Cloudflare 拒絕了這把金鑰」/「這把金鑰讀不到 Cloudflare 帳號」:Token 權限不足或貼錯。
- 「Model endpoint returned no usable models」:那個位址的
/models沒回模型。 - 測試連線成功但聊天失敗:清單拿得到不代表模型能聊天或額度夠,換一個模型試。
跑測試#
cd E:\AI_Agent
$env:PYTEST_DISABLE_PLUGIN_AUTOLOAD = "1"
.\.venv\Scripts\python.exe -m pytest lexa_vireon\tests -q -p no:cacheprovider --import-mode=importlib
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 可避免環境裡其他 pytest 外掛干擾。只想測介面靜態檔:test_ui21_static.py、test_v20_ui.py、test_ui_polish.py、test_studio_quality.py、test_studio_upgrade.py。
自己改頁面時:CSP 不准 inline#
所有頁面都帶 Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:。所以:
- 不能寫
<script>…</script>、onclick="…"、<style>…</style>、style="…"(會被瀏覽器擋)。 - 一律放外部
.js/.css,並在web.py的ASSETS登記路由。 - 測試
test_ui21_static.py會檢查index.html沒有 inline<script>。
資安工作台不見了#
要同時滿足:百鑰已核對(security-gate.json 存在)+ 設定裡「啟用資安工具組」已勾且儲存。見 資安模式與百鑰。
17快速參考#
指令#
| 用途 | 指令 |
|---|---|
| 啟動服務 | E:\AI_Agent\.venv\Scripts\python.exe -m lexa_vireon serve --port 8787 |
| 檢查狀態(不開服務) | E:\AI_Agent\.venv\Scripts\python.exe -m lexa_vireon check |
| 桌面視窗 | E:\AI_Agent\Lexa_Vireon.exe 或 tools\start_vireon_desktop.bat |
| 建捷徑 | powershell -ExecutionPolicy Bypass -File E:\AI_Agent\tools\create_vireon_desktop_shortcut.ps1 |
| Edge app 視窗 | E:\AI_Agent\tools\start_vireon_edge_app.bat |
| 看埠 | netstat -ano | findstr ":8787 " |
| 健康檢查 | curl.exe -s http://127.0.0.1:8787/api/health |
| 測試 | $env:PYTEST_DISABLE_PLUGIN_AUTOLOAD="1"; .\.venv\Scripts\python.exe -m pytest lexa_vireon\tests -q |
網址#
| 網址 | 內容 |
|---|---|
http://127.0.0.1:8787/ | 主控台 |
http://127.0.0.1:8787/#/<頁面> | 直接開某頁,例如 #/chat、#/evolution、#/memory |
http://127.0.0.1:8787/#/settings/<分頁> | persona、appearance、models、agent、trust、connections、evolution、local |
http://127.0.0.1:8787/studio | 流程工作室(/studio?id=<流程ID> 開指定流程) |
http://127.0.0.1:8787/fluid/ | Fluid UI(設定開啟後) |
API(全部只接受 127.0.0.1/localhost)#
| 方法 | 路徑 | 用途 |
|---|---|---|
| GET | /api/health | 服務、版本、模型、MCP、工作區、Skills 數 |
| GET/POST | /api/settings | 讀/改設定 |
| GET | /api/models/providers | 供應者清單 |
| GET | /api/models/registry | 已存連線與模型(不含金鑰) |
| POST | /api/models/connect | 連線並列模型(provider、api_key、endpoint、name) |
| POST | /api/models/select | 選要保留的模型 |
| POST | /api/models/activate / rename / delete | 啟用/改名/刪除 |
| GET/POST | /api/models/local、/api/models/local/connect、/api/models/local/start | 本機模型 |
| GET | /api/models/sources | 開源模型官方載點 |
| POST | /api/model/key、/api/model/test | 舊式金鑰、測試連線 |
| GET/POST | /api/tasks | 任務清單/建立任務 |
| GET | /api/tasks/<id> | 任務詳情 |
| POST | /api/tasks/<id>/follow、clarify、confirm、resume | 接續、澄清、確認、恢復 |
| POST | /api/tasks/<id>/cancel、checkpoint、restore、handoff、accept | 任務桌 |
| GET | /api/tasks/<id>/checkpoints、/handoffs | 檢查點、轉交清單 |
| GET/POST | /api/accounts | 本機帳號 |
| POST | /api/events/subscribe、/api/events/subscriptions/<id>/pull | 事件訂閱 |
| GET/POST | /api/memory | 查/新增記憶 |
| GET | /api/memory/status、/api/memory/fragments、/api/memory/archive?id= | 狀態、片段、讀封存 |
| POST | /api/memory/revise、remove、scope、switch、quota、archive | 記憶管理 |
| POST/GET | /api/roundtable、/api/roundtable/<id>、/stop、/export | 對談 |
| GET | /api/corpora/search | 語料索引 |
| GET/POST | /api/network/fabric、/api/network/fabric/choose | 線路 |
| GET/POST | /api/copilot、/api/copilot/suggest | 程式續寫 |
| GET/POST | /api/curiosity、/contact、/step | 演化與好奇 |
| GET | /api/history、/api/history/<commit> | 變更歷史 |
| POST | /api/history/<commit>/restore、/api/self-edit | 還原、手動修改 |
| GET/POST | /api/governance、/api/governance/<id>/approve/reject | 審核 |
| GET/POST | /api/security/gate | 百鑰狀態/提交 |
| POST | /api/security/correlate … /api/security/supply-chain、/api/roam | 資安工具、漫遊 |
| GET | /api/tools、/api/skills、/api/skills/<name>、/api/mcp | 能力目錄 |
| POST | /api/tools/call、/api/mcp/call、/api/mcp/factory/create、/verify | 呼叫、MCP Factory |
| POST | /api/mcp/credentials、/api/mcp/credentials/delete | MCP 憑證 |
| POST | /api/skills/import、/api/uploads | 匯入(需 X-Vireon-Upload: 1) |
| GET/POST | /api/workflows、/templates、/patterns、/catalog、/block-help、/runs/<id>、/save、/validate、/advice、/review、/suggest | 工作流 |
| GET/POST | /api/studio/blocks、/save、/test、/automate、/mentor、/mention、/mcp/search、/routing、/metrics、/phone | 流程工作室 |
| GET/POST | /api/connectors、/catalog、/test、/save、/delete、/call | 企業連接器 |
| GET/POST | /api/google、/login、/devices、/disconnect、/profile、/inbox、/replies、/replies/<id>/approve/reject | |
| GET/POST | /api/radios、/api/radios/wifi/connect、/disconnect、/settings、/api/radios/bluetooth/settings | 無線 |
| GET/POST | /api/satellite、/tile、/connect、/disconnect、/view;/api/satellite/exit、/connect、/disconnect、/ip | 衛星城市(影像+Tailscale 出口) |
| GET/POST | /api/compute、/api/compute/evolve、/api/compute/optimize、/api/vms、/api/vms/run、/api/vms/setup | 算力與虛擬機 |
| GET/POST | /api/hf、/api/hf/token、/api/hf/download | Hugging Face |
| GET/POST | /api/github、/api/github/opensource、/api/github/login | GitHub |
| GET/POST | /api/notifications、/api/notifications/<id>/seen | 通知 |
18版本紀錄#
| 日期(台北) | 內容 | 依據 |
|---|---|---|
| 2026-09-23 | Vireon 1.0/2.0:自我修改基準與驗收、第一個 MCP(vireon-demo-mcp) | self-history Git 時間線 |
| 2026-09-24 | 2.1 過渡包:UI 2.1(vireon-ui.css、vireon-motion.js)、13 個自改範圍歸屬、MCP 路由誠實化、流程工作室更新 | docs/RELEASE_2.1.md、docs/STUDIO_UPGRADE.md |
| 2026-10-05 晚 | 頂端選單與狀態列、變更歷史介面、Wi-Fi/藍牙介面、Google 權限與待核准回覆、對談與線路 | E:\AI_Agent\backups 資料夾名稱 |
| 2026-10-06 凌晨 | 任務桌(檢查點/轉交)、記憶配額與封存、簡潔淡色外觀(預設)、說明書面板 | 同上 |
| 2026-10-06 清晨 | 流程工作室改 Scratch 介面並與主畫面主題同步;目前 release 2.1.6 | __init__.py、備份資料夾 |
| 2026-10-06 | 本說明書第一版 | — |