AI代理環境說明
01|研究與預算資料處理環境盤點及說明
查核日期:2026-10-20,Asia/Taipei;對象:本機 Mac mini。 以實機唯讀查詢為主,既有文件與實驗產物只作角色、用途及歷史驗證佐證。機器可識別資訊、帳號、IP/MAC、端點、憑證、對話內容與完整設定均不納入交付。機器可讀證據:同目錄 environment-evidence.json。
一、述職摘要
已建置「本地解析與模型研究環境+OpenClaw 代理協作+SQLite 可追溯資料層」。本機負責 PDF 原文/座標處理、部分本地語言與視覺模型運算、資料驗證及版本化保存;研究員主代理目前以遠端 API 模型進行規劃與協作,因此不是全離線系統。
本次 live 核實:Apple M6、12 核 CPU、32 GiB 記憶體、macOS 27.0.1;OpenClaw 2026.9.8 Gateway 正在運行且可達;有效設定代理為 1 個 main(研究員);Ollama 0.35.1 服務可回應、已安裝 5 個 GGUF 模型,查核時 0 個已載入模型。另外,專案登錄目錄內存在 2 套 MLX 視覺模型基座與已鎖定的欄頭/數值 LoRA adapter。
財政資料必須分庫敘述:來源忠實庫實體 6,351 records/34,834 fields/6 snapshots,preferred 查詢得到 6,074 records/31,375 fields;歷史 canonical 庫為 5,984 records/32,007 fields/180 snapshots。這些是不同用途與版本粒度,不能相加、不能互當替代值,也不代表全量人工確認或業務計畫總數。
二、主機與軟體配置
| 層次 | 實機核實值 | 說明/狀態 |
|---|---|---|
| 主機 | Mac mini;Model Identifier Mac18,5 |
型號由 sysctl 查得,未擷取序號/UUID |
| CPU | Apple M6;12 實體/12 邏輯核心 | 不以核心數推論實際任務速度 |
| RAM | 34,359,738,368 bytes=32 GiB | CPU/GPU 共用記憶體,非獨立顯卡 VRAM |
| GPU | system_profiler 顯示 Apple M6 | 本輪只確認名稱,未量測 Metal 效能或重新核對 GPU 核數 |
| OS/核心 | macOS 27.0.1,build 26A434;Darwin 27.0.0 arm64 | 系統版本與核心版本是不同欄位 |
| 磁碟 | 根磁碟約 460.4 GiB;可用共享空間約 159.8 GiB | APFS 根 snapshot 已用約 12.7 GiB 不是整台已用容量;精確 KiB 見 evidence |
| Node.js | v24.21.0 | OpenClaw 執行環境 |
| OpenClaw | 2026.9.8(fc23bc8) | Gateway LaunchAgent installed/loaded/running;本機模式且可達 |
| 系統 Python | 3.9.6 | 不等於專案實際使用版本 |
| 專案 PDF Python | 3.12.15,既有 .venv |
PyMuPDF 1.28.2、pymupdf4llm 1.28.2 |
| 視覺模型 Python | 3.12.15,專案既有獨立 .venv |
MLX 0.32.3、MLX-Metal 0.32.3、MLX-VLM 0.7.4、Transformers 5.18.0、huggingface-hub 1.33.0 |
| SQLite | CLI/系統 Python 3.54.0;PDF venv Python 連結 3.53.1 | 是不同執行檔連結版本,不是同一 DB 有兩個版本 |
| Ollama | 0.35.1 | App 內 CLI,不在預設 shell PATH;服務正常、僅 loopback listener |
另查得 OpenClaw node service 未安裝;這不等於 Gateway 不可用,也不證明沒有其他已配對設備。本次不做跨設備盤點。memory-core 插件已啟用,但本輪沒有讀取私人記憶或聊天內容。
三、元件角色與資料流
使用者請求 → OpenClaw Gateway → main(研究員,遠端模型規劃/協作)
└→ 臨時 subagent:盤點、研究、程式/審核等任務
官方單一來源 PDF → 本地 Python 原文/字元/座標與圖像處理
├→ 原生文字/表格:確定性解析與來源重播
└→ 困難視覺區域:既有 MLX 基座+鎖定 adapter/本地模型實驗
↓
候選值+來源 refs+原文/狀態+驗證證據
↓
source-faithful-116.sqlite(來源層,歷史+preferred 解決更正版本)
+
fragment/metadata sidecar(來源片段、表頭、父子層級與角色證據)
canonical.sqlite:既有獨立 source-reviewed 歷史/pilot 資料層;不是新來源層的別名。
產品架構依隨附官方文件:Gateway 為長駐控制平面,維持通道、工具及模型連接;agent 是工作區/狀態/模型/session 的身分邊界。工具能讀取本機檔案不表示 agent 本身是另一個常駐 OS 服務。專案程式同時存在解析、模型、source gate、review/promotion 等不同路線;不能將某次輸出品質歸功於所有模型,或將 Python 的確定性取值算成模型自主辨識能力。
四、代理配置與分工
live 使用 openclaw agents list --json,有效列表只有:
| agent ID | 名稱/身分 | 預設模型 | Runtime/角色 |
|---|---|---|---|
main |
main/研究員 | sub2/gpt-6.1-sol |
原生 OpenClaw agent runtime;協調使用者任務、工具及研究工作 |
設定未明示額外 runtime override;本報告本身是在 main 所派生的 runtime=subagent 執行中完成。subagent 是針對任務建立的獨立 run/session,並非另一套已安裝代理。 可用於平行盤點、程式實作、來源核對及交付審核;任務結束後向父代理回報。歷史 session 數、子任務標籤及曾用角色名稱,不可當作已配置 agent 數量或持續在線人力。
本輪工具目錄沒有獨立 agents_list 工具,因此以官方 CLI 有效列表+設定非敏感白名單欄位交叉查證;不是以 agents 目錄數量猜測。
五、模型安裝/設定/載入/驗證狀態
5.1 Ollama 本地權重
五個模型皆由 live /api/tags、ollama list 及本機 manifest 核實,格式 GGUF、量化 Q4_K_M;manifest 所列 layer blob 檔案皆存在。這是存在性驗證,未重算全部大型 blob 雜湊,也未重新推論。
| 模型 | metadata 參數量 | 本機大小(十進位 GB) | 用途與狀態 |
|---|---|---|---|
| qwen3:14b | 14.8B | 9.276 | 本地文字/JSON 預算候選;OpenClaw ollama provider 已設定;既有驗收與比較產物存在;當下未載入 |
| deepseek-r1:14b | 14.8B | 8.988 | 本地推理候選;已安裝;本輪未逐一核實歷史任務品質;當下未載入 |
| gemma4:12b | 11.9B | 8.022 | 既有模型比較/可靠性試驗;已安裝、歷史比較產物存在;不等於正式品質合格;當下未載入 |
| mistral-small3.2:24b | 24.0B | 15.177 | 既有文字/結構化比較對照;已安裝;當下未載入 |
| gemma3:27b | 27.4B | 17.397 | 大模型對照試驗;已安裝;既有實驗記有資源/完成度限制,不能宣稱穩定優於小模型;當下未載入 |
服務 RunAtLoad/KeepAlive 為 true,現有 LaunchAgent 設 OLLAMA_NO_CLOUD=1,live listener 僅 loopback。服務運行不等於模型常駐記憶體;ollama ps 與 /api/ps 均為空。登入自啟動設定存在,但本輪沒有重啟、登出登入或斷電驗收。
5.2 MLX/Hugging Face 專案本地檔
只查專案既有 lock、程式及模型卡已登錄路徑,未掃全機私人快取,也未下載。
| 項目 | 已核實內容 | 用途/界線 |
|---|---|---|
vlm-smoke-20261005/model |
模型卡 mlx-community/Qwen3-VL-2B-Instruct-4bit;model_type=qwen3_vl;4-bit affine、group_size=64;safetensors 1,782,040,921 bytes |
約 2B 視覺語言基座;是本地完整基座權重,不是 API |
vlm-smoke-20261005/gemma-model |
模型卡 mlx-community/gemma-3-4b-it-4bit;model_type=gemma3;4-bit、group_size=64;safetensors 3,400,569,562 bytes |
約 4B 視覺對照基座;Gemma 條款,不是 Apache-2.0 無限制授權 |
vlm-full-path-isolated-20261006/checkpoint-100 |
已登錄 header/meta adapter;LoRA rank=8、scale=2、dropout=0;34,913,168 bytes | 欄頭/metadata 任務;須搭配 Qwen3-VL 基座 |
vlm-full-path-training-20261006/selected |
已登錄 value adapter;同樣 LoRA rank=8、34,913,168 bytes | 數值路線;不是另一個完整模型,也非全任務品質認證 |
路徑前綴均為 data/kaohsiung-budget/。lock 引用、adapter config、權重存在與 adapter SHA256 收錄於 evidence。其他歷史 checkpoint 確實存在,但不是新 agent、不是另一套基座,也未逐個驗收。
歷史 reload_comparison.json 保存 finite=true、greedy_all_equal=true、reload_max_logit_diff=0;這僅證明當時該 smoke adapter 的存載一致性,不等於所有現用 adapter 的獨立品質證明。本輪沒有載入 MLX、訓練或推論;常見程序名稱檢查未見 mlx,但不足以斷言所有 Python 進程均未載入模型,因此 MLX resident/running 狀態記為未全面核實。
5.3 遠端 API 設定
sub2/gpt-6.1-sol:目前 main 預設與本次任務 runtime 模型;遠端 provider 設定,不是本機權重。sub2/gpt-5.5:模型登錄存在;不等於現在執行,也未另發請求驗收。ollama/qwen3:14b:本地 provider 設定存在,與 Ollama manifest 的本地權重交叉相符;本輪未測試完整 OpenClaw→Ollama 推論鏈。- configured context/maxTokens 是供執行層使用的宣告,不當作真實上下文穩定性或品質驗收;精確值保留於 evidence,供排錯而非行銷。
六、資料庫用途、schema 與查詢注意
6.1 主來源庫與 canonical 必須分開
| 資料庫/查詢 | live 數量 | 用途與注意 |
|---|---|---|
data/kaohsiung-budget/db/source-faithful-116.sqlite |
records 6,351;fields 34,834;snapshots 6;historical_values 6,235 | 單一官方116預算案 PDF 的忠實來源歷史;含更正前版本,不能直接 SUM |
| preferred query v1 | records 6,074;fields 31,375;排除實體歷史 277 records | 以實際 resolution 排除 superseded,stable source identity 唯一;不是 DB 內建 preferred view |
data/kaohsiung-budget/db/canonical.sqlite |
pilot_records 5,984;pilot_fields 32,007;pilot_snapshots 180 | 獨立歷史 source-reviewed/pilot 庫;不是來源庫的總數,snapshot 不同粒度 |
| canonical 人工範圍 | pilot_human_only 26 fields;整列 human_verified=1 僅1 record | source_reviewed 不等於 human gold;不可把整庫說成已人工核對 |
兩庫 live PRAGMA quick_check 均為 ok;這是結構快速檢查,不是逐欄語義正確或本輪備份還原驗證。兩庫 user_version=0,不能用此欄推斷「無 schema」;本輪已讀取 sqlite_master,schema 摘要與定義載於 evidence。
來源 schema:snapshots(version,source_hash,manifest_hash);records(identity,version,table_id,row_identity,payload);fields(identity,path,source_state,source_value,source_original,refs,payload);historical_values 保存舊衍生/正規化值;source_only 是 records 與 fields join,仍包含歷史。
canonical schema:pilot_snapshots、pilot_records、pilot_fields、pilot_provenance;pilot_default 限 source_reviewed,pilot_human_only 再限 field_human_verified。既有 trigger 採 append-only/保存歷史,與 source 庫更正 resolution 不是同一機制。
6.2 單文件、空白與加總原則
- 最新來源層以專案登錄的唯一官方116預算案 PDF為依據,不跨 Word、外部年度或歷史數字補值。
- 來源欄空白保留原文空字串及 NULL;本輪查得實體 source_blank 8,400 fields,非 NULL 的異常數 0。原文 literal_zero、dash、空字串、不可讀及衍生值要分開;空白不得自動改0或宣稱不適用。
- 舊程式曾有特定 normal-native-blank→0 路線,不應沿用為新來源層通則;新 source 層與 historical_values 分離正是為保留此差異。
- preferred 查詢要用
source_preferred_query_v1.query()或其官方專案 CLI,不能只讀source_only就稱「最新」。本輪只 import/呼叫讀取函式,未執行寫出結果的 CLI。 - 以 source_role 區分一般預算列、主管/機關/科目 subtotal、金額原文出現、raster machine transcription、局部確認轉錄。不同角色不可混加;主管與所屬、總計與明細、不同年度/單位/stage 不可混合加總。
- preferred 仍含144筆
original_money_occurrence_not_budget_indicator、7筆raster_machine_transcription_not_semantic、1筆raster_locally_confirmed_label_value;因此 6,074 不是6,074個業務計畫,也不是全量語義或人工驗證值。
6.3 Fragment、sidecar 與 OpenClaw 狀態庫
document-116-production-20261007/P1-682-source-roles-close-20261020/source-fragments.sqlite:786 fragments/219 role_resolutions;保存表頭、目錄、共享說明、複合幾何區等來源片段。片段不是獨立預算列;共享說明 owner 未完成業務語義不代表原文未保存。本輪核實計數與 quick_check,未重播786段 PDF 座標。round11-metadata-sidecar/metadata-sidecar.sqlite:731 source_metadata;round12-parent-evidence/metadata-parent-sidecar.sqlite:227 metadata;保存來源類型、父子/層級與 metadata 證據,不擅改 canonical。數量不得加進預算 records。三個 sidecar quick_check 均 ok。- OpenClaw
state/openclaw.sqlite:Gateway 共享狀態用途;agents/main/agent/openclaw-agent.sqlite:代理 session/路由與認證等私有狀態用途;generation/reindex lock 等附屬檔案是執行協調,不是財政資料庫。本輪只確認檔案存在並依官方文件說明角色,不查表、不讀聊天、不讀憑證。
七、本地與雲端邊界
- 本地:PDF、解析產物、SQLite、Ollama GGUF、MLX 基座與 adapter 檔位於本機;Ollama 現有 listener 僅 loopback,且服務設定停用其 cloud 功能。
- 遠端:OpenClaw main 使用 sub2 API 模型;傳入該模型的對話、工具結果或審核封包可能離開本機。Ollama no-cloud 不會把整套 OpenClaw 變成離線。
- 模型基座/套件首次取得可能需要對外下載;本次沒有下載。未以設定存在推論第三方資料保留、訓練使用或合規條款;正式敏感資料仍須先審核 provider 政策與最小揭露範圍。
- 本次交付去除 API key、token、base URL、機器網路識別與私人對話;只保留工作用途必要的版本、模型 ID、專案相對路徑、計數及狀態。
八、現況、限制與維運建議
- 目前具備研究基礎,不宣稱全自動/全量 human/生產品質保證。 安裝、配置、運行、歷史測試與本次實測分開報告;本次只做 metadata 與 DB 唯讀查核。
- 32 GiB 共享記憶體下,大模型與 MLX 多圖運算應序列化並保留 OS headroom;不能把磁碟權重大小當 peak RAM。實驗應記錄 memory pressure、swap、圖像/token 上限及停止條件。
- 磁碟可用空間較早期安裝紀錄下降;後續可先盤點大型模型、歷史 clone/backup,再由使用者決定保留政策。本輪沒有刪除或壓縮任何資料。
- 固定使用專案 interpreter,不混用系統 Python;MLX/PDF venv 分離,保留 requirements、模型 card、revision/hash 與 adapter/base 配對。
- 查詢報表應註明 DB 路徑、preferred 版本、日期、source_role、單位、NULL規則及人工範圍,避免舊 README 歷史數量被誤當現況。
- 維持唯讀查詢與寫入流程分離;批次 promotion/修正前做一致備份與還原試驗、idempotency、來源證據和負例測試。這是建議,本輪未執行備份還原或改變排程。
- Gateway 模型、heartbeat、scheduler、provider、LaunchAgent、服務與系統設定完全未改;未安裝套件、下載、啟動模型或發起大推論。
九、證據、重現與官方說明
本次只在同目錄產生本文件及 environment-evidence.json。JSON 含查核時間、白名單 status、模型尺寸/量化、manifest blob 存在性、adapter SHA256、兩庫 schema/計數/quick_check、preferred 唯一性與 fragment/sidecar 計數。
安全重現指令/方式(原始 status、agents list 等應留在記憶體篩選後再交付,不全貼):
sysctl -n hw.model machdep.cpu.brand_string hw.physicalcpu hw.logicalcpu hw.memsize
sw_vers
uname -sr; uname -m
df -k /
node --version; python3 --version; sqlite3 --version; openclaw --version
openclaw agents list --json
openclaw status --json
/Applications/Ollama.app/Contents/Resources/ollama --version
/Applications/Ollama.app/Contents/Resources/ollama list
/Applications/Ollama.app/Contents/Resources/ollama ps
DB 以 Python sqlite3.connect('file:<專案DB>?mode=ro', uri=True) 開啟,只查 SELECT count(*)、sqlite_master、PRAGMA quick_check 與明確來源狀態;preferred 以 PYTHONDONTWRITEBYTECODE=1 import 專案既有 read-only query 函式。套件版本用 importlib.metadata,不 import 模型/不觸發 GPU。
官方/上游參考(本輪架構讀取隨套件本機文件,未聲稱重新上網驗證每個連結):
- OpenClaw Gateway:Architecture
- Agent 邊界:Multi-agent routing
- 臨時子代理:Sub-agents
- Ollama 整合:OpenClaw Ollama provider
- Ollama:macOS、API
- MLX:Apple MLX、MLX-VLM
- 本地基座模型卡:Qwen3-VL-2B 4-bit、Gemma 3 4B IT 4-bit
- SQLite:Read-only URI、PRAGMA quick_check、Online Backup
未核實範圍:全磁碟所有模型/HF cache、所有歷史 adapter、遠端 provider SLA/資料條款與另行 API 健康測試、MLX 當下全進程 resident 狀態、完整模型 blob 重新 hash、GPU效能、重開機後自啟動、全量 PDF 座標重播、獨立人核品質、全量語義及備份還原。本文件不以任何一項未核實內容作成果宣稱。