Select Page
立創實戰派 ESP32-S3 教學:小智 AI、掌機範例與韌體燒錄

立創實戰派 ESP32-S3 教學:小智 AI、掌機範例與韌體燒錄

立創實戰派 ESP32-S3 最吸引我的地方,不是單一規格有多高,而是它把一個語音 AI 裝置需要的零件先整合好了,有彩色觸控螢幕、雙麥克風、喇叭、攝影機、姿態感測器、TF 卡與無線連線都放進同一個小型外殼,拿到手後可以先燒錄小智 AI,也能從 ESP-IDF 與 LVGL 開始做自己的應用。

如果只是想快速體驗語音助理,使用現成韌體就不必先建置編譯環境,想學 ESP32-S3、改介面或加入感測器,再走原始碼編譯路線。這兩條路應該分開看,先完成最短的可用流程,再決定要不要進入韌體開發。

先講結論

  • 想最快用起來,下載立創實戰派對應的小智 AI 預編譯韌體,燒錄後完成 WiFi 配網與裝置綁定
  • 想學完整開發流程,使用 VSCode、ESP-IDF 外掛與官方例程
  • 想做可操作的圖形介面,可以從 LVGL 掌機範例開始修改
  • 想更換大語言模型或使用自己的 API 金鑰,應把設定放在小智後端,不要把密鑰寫死在 ESP32 韌體
  • 這塊板子整合度高,但攝影機只有 30 萬畫素,WiFi 只支援 2.4 GHz,外殼也偏向開源學習用途

立創實戰派 ESP32-S3 是什麼

立創官方技術文件把它定位成更接近實際產品的全功能開發板。核心模組是 ESP32-S3-WROOM-1-N16R8,搭載雙核心 Xtensa LX7 處理器,最高時脈 240 MHz,另外有 16 MB Flash 與 8 MB PSRAM。這樣的容量足以容納圖形介面、音訊處理、網路通訊與較大的韌體分割區。

項目規格可以拿來做什麼
主控模組ESP32-S3-WROOM-1-N16R8雙核心 240 MHz,16 MB Flash,8 MB PSRAM
螢幕2 吋 ST7789 IPS,320 × 240狀態介面、選單、動畫與影像預覽
觸控FT6336 電容觸控直接在螢幕操作 LVGL 介面
攝影機GC0308,30 萬畫素基礎影像擷取、人臉偵測與視覺實驗
姿態感測器QMI8658 六軸 IMU角度、移動與震動偵測
音訊輸入ES7210 搭配雙麥克風語音喚醒、指令與即時對話
音訊輸出ES8311、NS4150B 與 1W 喇叭語音回應、音樂與提示音
連線2.4 GHz WiFi、Bluetooth 5 LE雲端 AI、裝置控制與藍牙 HID
擴充TF 卡與兩組 GH1.25 介面檔案儲存、GPIO、I2C、UART、CAN 與 PWM

板子尺寸約為 69 × 41 × 14 mm,外殼不用螺絲就能拆開。不過官方商品頁也特別說明,外殼採用 3D 列印與黏貼工藝,高溫下可能變形,長時間使用也可能變黃或變脆。它適合學習、原型與桌面裝置,不應直接把這個外殼當成量產產品的結構標準。

ESP32-S3 具備 AI 向量指令,適合加速喚醒詞、訊號處理與小型邊緣模型,但它不是用來直接執行一般數十億參數 LLM 的主機。板子的原理圖、PCB、軟體例程與分章教學都有公開,S3 與 C3 則是兩套不同資料,下載時要先確認型號,不能只因外觀接近就混用韌體。

兩條上手路線怎麼選

路線適合對象需要準備第一個成果
直接燒錄第一次接觸 ESP32 或只想用小智 AIWindows 電腦、資料傳輸線、Flash Download Tool可以喚醒與對話的語音終端
原始碼編譯要改功能、畫面、喚醒詞或伺服器VSCode、ESP-IDF、Git 與對應版本的原始碼可自行維護與燒錄的韌體
官方應用例程要學螢幕、音訊、感測器與 LVGL立創資料包與相符的 ESP-IDF 版本掌機介面與六種示範功能

對初學者來說,我會先走直接燒錄。確認麥克風、喇叭、螢幕與網路都正常後,再安裝開發環境。這樣遇到編譯或驅動問題時,至少知道硬體本身沒有壞。

方法一:直接燒錄小智 AI 韌體

小智 AI 已經支援立創實戰派 ESP32-S3。最省時間的做法是從 xiaozhi-esp32 Releases 下載檔名包含 lichuang-dev 的韌體壓縮檔。版本號會持續更新,請依發佈頁面的最新穩定版本操作,不要只找舊教學裡固定的版本。

  1. 下載並解壓縮 v版本號_lichuang-dev.zip
  2. 從 Espressif 官方下載 Flash Download Tool
  3. 開啟工具後將 ChipType 選為 ESP32-S3
  4. 載入解壓縮後的韌體,起始燒錄位址設為 0x0
  5. 用具備資料傳輸能力的 USB Type-C 線連接開發板
  6. 選擇新增的 COM 連接埠,鮑率可先使用 921600
  7. 先按 ERASE 清除舊韌體,再按 START 開始燒錄
  8. 完成後重新插拔 USB 線,或按下 RST 鍵重新啟動

如果 ERASE 或 START 失敗,先重新插拔開發板,再改用另一個 COM 連接埠或降低燒錄速度。電腦完全看不到連接埠時,第一件事是換一條確定能傳資料的 USB 線,不要先懷疑韌體。

小智 AI 的發佈包通常提供可從 0x0 寫入的合併韌體。其他範例若提供四個分開的 bin 檔,就要同時載入四個檔案,並逐一填入套件標示的位址。合併韌體與分割韌體的寫法不同,不能看到 bin 檔就全部設成 0x0

第一次開機的配網與啟用

  1. 用手機連上開發板建立的 Xiaozhi-xxxx 無線網路
  2. 如果沒有自動跳出設定頁,在瀏覽器開啟 192.168.4.1
  3. 選擇家中或手機熱點的 2.4 GHz WiFi,輸入密碼後等待重新啟動
  4. 開啟 xiaozhi.me 並登入控制台
  5. 新增裝置,輸入開發板螢幕上的六位數啟用碼
  6. 重新啟動後說出喚醒詞,確認收音、連線與播放都正常

ESP32-S3 的無線網路只支援 2.4 GHz。手機熱點若固定在 5 GHz,開發板就不會出現在可連線清單。配網頁打不開時,可以暫時關閉手機行動數據,只保留連到開發板的 WiFi。這種 AP 配網概念也可以延伸參考我之前整理的 ESP32 WiFi 配網做法

完成基本對話後,可以再試著要求調整螢幕亮度,確認語音服務不只會回答問題,也能把意圖轉成板端控制。這種從對話到裝置動作的能力,才是把語音 AI 做成實體終端最有意思的地方。

小智可以連其他 LLM 嗎

可以,但要先分清楚板端與後端的責任,ESP32 主要負責喚醒、收音、播放、螢幕與網路傳輸。語音活動偵測、語音辨識、LLM 推理與語音合成通常由伺服器完成,再透過 WebSocket 把結果送回裝置。API 金鑰因此應放在伺服器端,不是直接寫進開發板。

使用官方小智服務時,可以在 xiaozhi.me 控制台調整官方提供的模型與角色。目前官方專案說明預設讓個人使用者連接 Qwen 即時模型。若要接自己選擇的供應商、模型或 API 金鑰,比較完整的路線是部署 xiaozhi-esp32-server,再從伺服器設定 LLM、ASR 與 TTS provider。

自架後端的流程是 ESP32 把音訊送到伺服器,伺服器依序完成 VAD、ASR、LLM 與 TTS,再把合成語音送回 ESP32 播放。這和 Hugging Face speech-to-speech 語音 Agent 的模組化概念相近。如果想把 LLM 留在自己的電腦或內網,可以再參考 本地大模型推理框架比較,選擇 Ollama、llama.cpp 或其他 OpenAI 相容服務。

正式部署時不要把 API 金鑰提交到 GitHub,也不要把沒有驗證的 WebSocket 服務直接開放到公網。至少要使用環境設定或伺服器端設定檔保存密鑰,限制管理介面來源,並為裝置與管理者建立不同權限。

方法二:安裝 ESP-IDF 開發環境

立創教學使用 VSCode 搭配 Espressif IDF 外掛。官方例程原本以 ESP-IDF 5.1.4 製作,也測試過 5.2.2。另一方面,現在的 xiaozhi-esp32 主線已經把 6.0.2 列為優先版本,5.5.2 主要保留給舊板相容。這兩組版本不要混為一談,使用立創例程就照例程要求,編譯最新小智主線則照該版本 README。

ESP-IDF 可以線上安裝,也能先使用官方資料準備好的離線安裝程式。新手在 Windows 上比較適合先走離線路線,安裝速度通常更可預期,也比較不容易在 Python 環境與工具鏈下載階段卡住。線上安裝的好處是版本選擇直接,但網路中斷時需要更多除錯經驗。

  1. 安裝 VSCode
  2. 在延伸模組中安裝 Espressif IDF
  3. 執行 Configure ESP-IDF Extension
  4. 選擇 EXPRESS 快速安裝
  5. 選擇伺服器與指定的 ESP-IDF 版本
  6. 將 ESP-IDF 與 IDF_TOOLS 放在不同資料夾
  7. 等待 ESP-IDF、工具鏈與 Python 虛擬環境完成安裝
  8. 開啟例程後選擇正確連接埠、esp32s3 目標與 USB 轉串口下載方式

工程路徑最好只使用英文字母與數字,也不要放空白。若圖形介面操作不順,也可以在 ESP-IDF 終端使用以下基本命令。

idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py -p COM19 flash monitor

COM19 只是 Windows 範例,請換成自己電腦實際出現的連接埠。macOS 與 Linux 會是不同名稱。編譯環境安裝失敗時,不要在原資料夾反覆疊加不同 IDF 版本,先確認目前工程需要哪一版,再重新選定工具鏈。

VSCode 的 ESP-IDF 外掛也有把建置、燒錄與終端監看串在一起的操作。第一次可先跑 Hello World,看到燒錄完成並在終端持續輸出,才表示工具鏈、連接埠與下載方式都已經通過。若建置速度慢到數小時,先看工作管理員是否有殘留的編譯程序,也檢查防毒軟體是否反覆掃描 build 資料夾。只應為可信任的專案目錄建立最小排除範圍,不要長時間關閉整套即時防護。

從原始碼編譯小智 AI

需要修改喚醒詞、後端位址、介面或裝置功能時,可以直接取得官方原始碼。

git clone https://github.com/78/xiaozhi-esp32.git
cd xiaozhi-esp32
idf.py set-target esp32s3
idf.py menuconfig
idf.py fullclean
idf.py build
idf.py flash monitor

menuconfig 內選擇立創實戰派 ESP32-S3 對應板型,並確認 Flash、PSRAM、分割表、字型與 LVGL 設定符合專案文件。板上有 16 MB Flash,不代表任意分割表都會自動用滿。從別的開發板設定切換過來時,先執行 fullclean,可以減少舊的 sdkconfig 與建置產物造成的錯誤。

目前主線對 ESP-IDF 版本的要求已經和早期立創教學不同。若只是要使用小智 AI,直接燒錄 Releases 裡為 lichuang-dev 建好的韌體會穩定很多。只有準備修改程式時,才值得投入時間處理版本、分割表與驅動相容性。

掌機範例其實是一套產品介面

立創提供的 14-handheld 範例使用 LVGL 做出類似手機的主畫面。它不是完整的遊戲模擬器,而是一個把板上週邊整合到同一套觸控介面的參考專案。主畫面包含六個應用。

  • 姿態與運動監測,顯示 XYZ 角度並判斷震動
  • 音樂播放器,從音訊系統輸出內容
  • TF 卡瀏覽器,查看目錄與檔名
  • 攝影機預覽,將畫面送到螢幕
  • WiFi 連線,掃描網路並取得網路時間
  • 藍牙控制器,將開發板當成 HID 裝置控制手機或電腦音量

這個範例的價值在於學會如何讓 LVGL、觸控、音訊、感測器與網路共用同一個應用生命週期。想做桌面資訊面板、智慧家庭控制器、兒童學習機或語音 Agent 終端,都可以從這套架構刪掉不需要的頁面,再加入自己的功能。

還沒有拿到實體板時,可以先用 Wokwi ESP32 與 Arduino 模擬器 練習基礎 GPIO 與程式結構。不過實戰派的專用螢幕、音訊 codec、攝影機與完整腳位配置仍需要真機驗證。

最容易踩到的問題

  • USB 只有供電沒有資料,結果電腦完全找不到連接埠
  • 手機熱點使用 5 GHz,ESP32-S3 無法搜尋
  • 立創例程與最新小智主線使用不同 ESP-IDF 版本
  • 切換板型後沒有清理舊建置資料,導致驅動或分割表錯誤
  • 把 API 金鑰寫進公開韌體或 Git 儲存庫
  • 把掌機示例誤認成現成遊戲系統,低估後續 UI 與應用開發工作
  • 帶電插拔 TF 卡,造成檔案系統損壞
  • 使用 exFAT 格式記憶卡,卻沒有先確認 ESP-IDF 範例的檔案系統支援

另外不要為了看內部結構就直接拆螢幕。螢幕與外殼之間使用黏性很強的雙面膠,熱風可能先讓 3D 列印外殼變形,撬動也可能傷到面板或排線。一般檢查只需要滑開後蓋,除非已經接受零件損壞風險,否則不值得繼續拆。

我會怎麼開始

第一天先燒錄預編譯的小智 AI 韌體,完成配網、綁定與語音測試。第二步跑官方掌機例程,確認螢幕、觸控、IMU、TF 卡、攝影機、WiFi 與藍牙都能單獨工作。第三步才建立自己的專案,把不需要的功能移除,留下語音、畫面與一個最重要的感測器。

這塊板子真正適合的不是只做一個會聊天的盒子,而是把語音 Agent 變成有螢幕、有感測器、能控制周邊的實體入口。ESP32 不需要負責執行大型模型,它應該專心處理即時互動與硬體,重運算交給後端。把這個邊界想清楚,後續更換模型、接 MCP 或搬到本地伺服器都會容易很多。

FAQ

立創實戰派 ESP32-S3 在哪裡購買

可以從立創開發板專案頁查看介紹,也可以到立創商城商品頁確認庫存、價格與出貨內容。商品型號是 LCKFB-SZPI-ESP32-S3-VA,下單前仍要依當下頁面確認版本與配送地區。

一定要自己編譯韌體嗎

不用。只想使用小智 AI 時,下載立創實戰派對應的預編譯韌體即可。要改板端功能、畫面、喚醒詞、後端位址或加入自己的硬體時,才需要安裝 ESP-IDF 並重新編譯。

可以使用 OpenAI、Gemini 或本地模型嗎

可以,但是否直接支援取決於你使用的後端。官方 xiaozhi.me 提供自己的模型選項。要填入第三方 API 金鑰或接本地 LLM,建議自架相容的小智伺服器,在後端選擇 provider 與保存密鑰,再讓開發板連到該伺服器。

它能直接跑大型語言模型嗎

不能把一般數十億參數的大型語言模型直接放進 ESP32-S3 執行。板端負責音訊、畫面、感測器與通訊,LLM 推理放在雲端、電腦、NAS 或獨立 AI 主機上。

為什麼手機找不到配網熱點

先確認韌體燒錄完成且裝置已重新啟動,再檢查手機是否開著 WiFi。設定上游網路時必須使用 2.4 GHz。若設定頁沒有自動開啟,可以手動連上 Xiaozhi-xxxx 後瀏覽 192.168.4.1

資源整理

LibreChat 是什麼?Docker 安裝、多模型整合與 Ollama 串接教學

LibreChat 是什麼?Docker 安裝、多模型整合與 Ollama 串接教學

LibreChat 是把 OpenAI、Anthropic、Google、OpenAI 相容端點與本地模型,整理成一個可以自己部署、自己管理的 AI 工作台。早期把它叫做「套殼」還勉強能描述外觀,但到了現在,這個說法已經低估了它的定位。

它比較像模型與工具之間的控制層。使用者面對同一個聊天介面,管理者則能在後面決定模型來源、權限、Agents、MCP、搜尋、文件檢索與資料保存方式。對想把雲端 API 和內網 Ollama 放在一起的人,LibreChat 是很實用的開源入口。

LibreChat 是什麼

LibreChat 是可自行部署的開源 AI 平台,原始碼放在 LibreChat GitHub。它不包含自己的大型語言模型,而是把不同模型供應商、本地推理服務與工具能力接到同一個操作介面。

  • 在同一段對話裡切換不同模型
  • 保存 Prompt、Presets、對話分支與搜尋紀錄
  • 上傳文件並使用 RAG、OCR 與檔案檢索
  • 建立 Agents,串接 MCP、Skills、工具與子代理
  • 使用 Code Interpreter、Artifacts、圖片生成與網頁搜尋
  • 提供多使用者登入、角色、群組與存取控制

目前官方文件以 v0.8.x 為主,GitHub README 也會展示較新的候選版本功能。正式環境不要只看介面截圖判斷版本,部署前應先確認自己使用的映像標籤與官方升級說明。

它不是免費的 ChatGPT Plus 集合包

這是最容易誤會的地方。LibreChat 本身免費開源,不代表接進去的模型都免費

ChatGPT Plus、Claude Pro 與 Gemini 的消費者訂閱,通常也不能直接當成 API 額度使用。要呼叫官方模型,仍需準備對應的 API Key,費用由各供應商另外計算。

如果不想累積雲端 API 費用,可以改接 Ollama、llama.cpp、LM Studio、vLLM 或其他 OpenAI 相容服務,不同推理後端怎麼選,可以先看 本地大模型推理框架比較。LibreChat 負責操作與編排,模型成本、速度和能力仍由後端決定。

用 Docker 安裝 LibreChat

官方目前仍把 Docker Compose 列為最直接的本機安裝方式。先確認電腦已安裝 Git 與 Docker Desktop,再執行以下命令。

git clone https://github.com/danny-avila/LibreChat.git
cd LibreChat
cp .env.example .env
docker compose up -d

Windows PowerShell 或命令提示字元可把複製指令改成下面這一行。檔名之間要保留空格,不能把整段黏在一起。

copy .env.example .env

啟動完成後打開 http://localhost:3080。第一個完成註冊的帳號會成為管理員,系統沒有預設帳號與密碼,確認管理員可登入後,公開服務建議把 ALLOW_REGISTRATION 設為 false,避免陌生人自行註冊。

三層設定檔不要混在一起

檔案用途適合放什麼
.env密鑰與伺服器開關API Key、登入、註冊與服務環境變數
librechat.yamlLibreChat 功能設定自訂端點、模型清單、Agents、MCP 與介面選項
docker-compose.override.yml容器覆寫掛載設定檔、改連接埠、替換映像與新增服務
docker-compose.yml官方基礎配置原則上維持原樣,方便後續更新

API Key 建議放在 .env,再由 librechat.yaml 使用環境變數引用。不要把真正的 Key 直接寫進 YAML,也不要提交到 GitHub。修改設定後需要重新啟動容器才會生效。

個人環境可以由伺服器統一提供 Key。多人共用時,也可以在自訂端點把 apiKey 設為 user_provided,讓每位使用者在介面輸入自己的憑證,避免所有請求都共用同一把組織 Key。選哪一種方式,取決於費用要集中管理,還是由使用者各自負責。

docker compose down
docker compose up -d

串接內網 Ollama

LibreChat 可以把 Ollama 當成 OpenAI 相容端點。以下範例直接使用內網位置 192.168.0.240:11434。先在專案根目錄建立 librechat.yaml

version: 1.3.13
cache: true
endpoints:
  custom:
    - name: Ollama
      apiKey: ollama
      baseURL: http://192.168.0.240:11434/v1/
      models:
        default:
          - qwen3:32b
        fetch: true
      titleConvo: true
      titleModel: current_model

接著在 docker-compose.override.yml 把 YAML 掛進 API 容器。

services:
  api:
    volumes:
      - type: bind
        source: ./librechat.yaml
        target: /app/librechat.yaml

如果 Ollama 和 LibreChat 在同一台電腦,Docker Desktop 環境可以依官方範例改用 http://host.docker.internal:11434/v1/。如果 Ollama 在另一台 AI Server,就使用可從 LibreChat 主機連到的區網 IP。遠端服務的監聽、防火牆與測試方式,可接著參考 Ollama 遠端連線教學

不要直接把 11434 對整個網際網路開放。比較穩妥的做法是限制在內網、VPN 或反向代理後方,再用防火牆控制來源。

從聊天介面升級成 Agent 工作台

LibreChat 現在的價值,已經不只在多模型切換。Agents 可以組合系統指令、模型、工具、MCP、Skills、文件與子代理,並在需要時加入人工確認。這讓同一套介面能分別建立研究助理、文件問答、程式開發、客服與內部知識助手。

若主要需求是跨文件研究與來源整理,Open Notebook 私有 AI 研究工作流會更專門。若重點是跨模型聊天、工具與 Agent 的統一入口,LibreChat 的範圍更廣。兩者也不衝突,前者可以負責知識工作流,後者負責日常模型與代理入口。

常見安裝問題

出現 librechat.yaml 錯誤

先檢查縮排與 YAML 語法,再確認 override 已把檔案掛到 /app/librechat.yaml。容器內讀不到檔案時,主機上有 YAML 也不會生效。

3080 連接埠被占用

可在 override 把外部連接埠改成 3081:3080,之後用 http://localhost:3081 開啟。

Apple Silicon 啟動 MongoDB 失敗

官方文件指出部分 M1 到 M4 環境會遇到 MongoDB 映像的 AVX 相容問題,可在 override 將 MongoDB 映像指定為 mongo:4.4.18。這是相容性處理,不代表所有 Apple Silicon 都一定會遇到。

不知道錯在哪裡

docker compose logs api

先看 API 容器最後一段紀錄,通常會直接指出缺少的環境變數、無效 YAML、資料庫連線或供應商 API 問題。

公開部署前的安全清單

  • 第一個管理員建立後關閉公開註冊
  • 使用 HTTPS 與可信任的反向代理
  • 不要把 API Key 寫進公開 YAML 或 Git 儲存庫
  • 限制 Ollama、MongoDB 與 Redis 的網路來源
  • 定期備份資料庫與上傳檔案
  • 依團隊角色設定 Agents、MCP、檔案與對話權限
  • 升級前先查看 v0.8.x 的相容與遷移說明

LibreChat 現在已有預覽中的 Admin Panel,可管理使用者、群組、角色、系統授權與部分設定覆寫。不過預覽功能仍可能調整,正式環境不能只依賴介面上的開關,網路隔離、密鑰管理與備份仍要在基礎設施層處理。

LibreChat 適合誰

如果你只固定使用一個雲端聊天服務,官方介面通常最省事。當你開始同時使用多家模型、需要本地 Ollama、想建立不同 Agents,或要替團隊管理共用入口,LibreChat 的價值才會真正出現。

我的判斷是,LibreChat 已經從「像 ChatGPT 的開源介面」走到「自架 AI 控制台」。它不會替你省掉所有模型費用,也不會自動解決權限和維運問題,但它讓模型、工具、文件與代理不必被綁死在單一供應商。這對想建立私有 AI 工作環境的人,比單純模仿介面重要得多。

FAQ

LibreChat 可以免費使用 GPT 嗎

LibreChat 免費開源,但 GPT API 仍由 OpenAI 計費。ChatGPT Plus 訂閱通常不能直接抵用 API。想避免 API 成本,可以接本地 Ollama 或其他自架模型。

LibreChat 可以接 Ollama 嗎

可以。透過 librechat.yaml 建立 OpenAI 相容自訂端點,並把設定檔掛進容器即可。本機 Docker 可使用 host.docker.internal,內網 AI Server 則使用可連線的區網 IP。

LibreChat 適合公開給團隊使用嗎

可以,但需要 HTTPS、註冊控制、角色權限、密鑰管理、資料備份與內部服務隔離。第一個註冊帳號會成為管理員,建立後應立即檢查公開註冊設定。

Flint Chart 是什麼?讓 AI Agent 用語意規格可靠產生圖表

Flint Chart 是什麼?讓 AI Agent 用語意規格可靠產生圖表

AI Agent 很會理解「月份、營收、百分比變化」代表什麼,卻不一定能穩定處理座標軸、刻度、色階、標籤間距與版面配置,直接要求模型輸出完整 Vega-Lite 或 ECharts 規格,常見結果不是設定冗長,就是參數彼此衝突,甚至渲染後只得到空白畫布。

Flint Chart 的做法,是讓 AI 只負責描述資料的意義與圖表意圖,再由確定性的編譯器完成幾何與渲染細節,這不只是圖表工具的改良,也是一種值得用在 AI Agent 系統的架構。模型產生小型、可驗證的中介格式,程式再負責執行可重現的工作。

如果你正在用 Codex 製作視覺內容,可以先參考站內的Codex 動態圖表與短影音工作流程,Flint 則更專注在資料圖表的語意、驗證與多後端輸出。

Flint Chart 是什麼

Flint 是微軟研究院與中國人民大學 IDEAS Lab 合作開發的開源視覺化中介語言,它不是另一套直接把圖畫到畫布上的函式庫,而是位在 AI Agent 與 Vega-Lite、Apache ECharts、Chart.js、Plotly、Excel 之間的語意層。

  • AI Agent 判斷欄位代表月份、價格、利潤、國家、排名或百分比變化
  • Flint 規格 保存資料、語意型別、圖表種類與欄位映射
  • Flint 編譯器 推導日期解析、聚合、刻度、色彩、標籤與版面
  • 繪圖後端 接收原生規格並渲染互動圖表、PNG、SVG 或 Excel 原生圖表

截至 2026 年 7 月 28 日,官方 GitHub 顯示 JavaScript 與 TypeScript 函式庫已能輸出 Vega-Lite、ECharts、Chart.js、Plotly 與 Office.js 使用的 Excel 原生圖表。7 月 11 日的 iThome 報導只列出前三種,是因為後續 0.4.0 版才加入 38 種 Plotly 圖表與 18 種可編輯 Excel 範本。

為什麼 AI 直接產生圖表容易失敗

製作圖表其實包含兩種不同工作。第一種是理解語意,例如 revenue 是金額,month 是年月,growth 是百分比變化。第二種是安排幾何,例如軸的範圍、刻度密度、文字旋轉、圖例位置與色彩映射。

語言模型擅長第一種工作,第二種工作卻牽涉許多互相依賴的數值與規則。Flint 把兩者拆開後,AI 不必一次猜完所有低階設定。規格也從難以檢查的大段設定,縮成可閱讀、可修改、可在渲染前驗證的小型 JSON。

模型負責意義,編譯器負責數學。真正的價值不是少寫幾行,而是讓每一步都能被驗證與重現。

Flint 規格的三個核心部分

一份 Flint 輸入主要由資料、semantic_types 與 chart_spec 組成。下面用季度營收長條圖示範最小結構。

{
  "data": {
    "values": [
      { "quarter": "Q1", "revenue": 1200 },
      { "quarter": "Q2", "revenue": 1450 },
      { "quarter": "Q3", "revenue": 980 },
      { "quarter": "Q4", "revenue": 1800 }
    ]
  },
  "semantic_types": {
    "quarter": "Quarter",
    "revenue": "Price"
  },
  "chart_spec": {
    "chartType": "Bar Chart",
    "encodings": {
      "x": { "field": "quarter" },
      "y": { "field": "revenue" }
    },
    "baseSize": { "width": 480, "height": 320 }
  }
}

data 可以直接放入列資料,也能在本機 MCP 模式下引用 JSON、CSV 或 TSV 檔案。semantic_types 告訴編譯器每個欄位的實際意義。chart_spec 則決定圖表種類,以及欄位要放在 x、y、color、size、shape、column、row、group 或 detail 等通道。

語意型別可以重複使用。探索同一份資料時,多半只要更換 chart_spec。例如把 Quantity 改成 PercentageChange,編譯器就能改用適合正負變化的發散色階、百分比格式與對應的軸設定。這比每次都讓模型重新生成完整圖表設定更穩定。

在 Codex 安裝 Flint MCP

本機版本需要 Node.js 18 以上。Codex 可以用一行命令加入 stdio MCP 伺服器。

codex mcp add flint -- npx -y flint-chart-mcp

接著確認伺服器是否已經出現在清單。

codex mcp list

如果資料不需要從本機檔案讀取,可以關閉檔案引用。這個設定要求代理把資料列直接放進 data.values,能縮小不受信任工作流程的檔案存取範圍。

codex mcp add flint-safe -- npx -y flint-chart-mcp --disable-file-reference

官方也提供遠端 MCP 端點,適合只能連接 HTTP MCP 的客戶端。處理私有資料時,仍建議優先選擇本機 stdio 版本。

codex mcp add flint-remote --url https://flint.data-formulator.ai/mcp

第一次使用的提示詞

安裝後不要只下「幫我畫圖」。把資料來源、語意、圖表目的、驗證方式與輸出格式一起交代,結果會更可靠。

請載入 flint://agent-skill,並呼叫 list_chart_types 檢查 vegalite 後端是否可用。讀取目前資料夾的 sales.csv,把 month 判定為 YearMonth,revenue 判定為 Price,growth 判定為 PercentageChange。先用 validate_chart 驗證,再建立每月營收折線圖,並用顏色標示成長率。若支援 MCP Apps 就使用 create_chart_view,否則用 render_chart 輸出 SVG。最後列出所有警告與被截斷的資料。

Flint MCP 提供五個主要工具。create_chart_view 適合互動調整,validate_chart 用來檢查規格與警告,render_chart 產生 PNG 或 SVG,compile_chart 回傳後端原生 JSON,list_chart_types 則用來確認可用的圖表與通道。

這套做法和讓 Codex 用 Playwright CLI 操作瀏覽器有相同精神。模型不必自己模擬每個底層步驟,而是呼叫邊界清楚、結果可檢查的工具。

在 JavaScript 與 TypeScript 專案使用

若你正在開發產品,而不是只在對話中產生圖表,可以直接安裝函式庫。

npm install flint-chart
import { assembleVegaLite } from "flint-chart"

const input = {
  data: { values: myData },
  semantic_types: {
    weight: "Quantity",
    mpg: "Quantity",
    origin: "Country"
  },
  chart_spec: {
    chartType: "Scatter Plot",
    encodings: {
      x: { field: "weight" },
      y: { field: "mpg" },
      color: { field: "origin" }
    },
    baseSize: { width: 400, height: 300 }
  }
}

const spec = assembleVegaLite(input)

相同輸入可以交給 assembleECharts、assembleChartjs、assemblePlotly 或 assembleExcel。後端若不支援指定圖表,組裝器會在渲染前拋出錯誤,因此產品端應先查詢範本支援狀態,再把錯誤與警告顯示給使用者。

Excel 原生圖表特別適合需要後續人工編輯的報表工作。如果工作流程還包含 Word、PowerPoint 或試算表處理,可以延伸閱讀OfficeCLI 與 AI Agent 的 Office 自動化教學

Flint、Vega-Lite、Mermaid 與一般 Chart MCP 的差異

工具主要用途AI 要處理的細節適合情境
Flint語意中介格式與編譯資料意義、圖表意圖與欄位映射需要可靠生成、多後端與可驗證規格
Vega-Lite統計視覺化文法較完整的編碼、比例尺與版面設定需要精細控制與成熟生態
Mermaid流程圖與軟體圖解節點、關係與圖形語法架構圖、流程圖與文件
一般 Chart MCP把特定繪圖服務包成工具視工具設計而定已有固定渲染服務或單一後端

Flint 並不是 Vega-Lite 的替代品,因為它可以直接編譯成 Vega-Lite 規格。它處理的是更前面的一層,讓模型先表達「這些資料是什麼」,再由編譯器決定「如何正確畫出來」。

目前限制與使用前要知道的事

  • 仍是研究專案 官方論文尚未正式公開,產品決策不能只靠宣傳數字
  • Python 套件尚未發布 目前只有原始碼預覽,正式套件仍以 JavaScript 與 TypeScript 為主
  • 後端支援並不完全相同 同一圖表不一定能在所有後端輸出,MCP 指南目前列出的編譯後端仍以 Vega-Lite、ECharts 與 Chart.js 為主
  • Flint 不負責完整資料整理 聚合、過濾、關聯、樞紐與衍生欄位最好先在上游完成
  • 自動版面可能截斷資料 離散項目超過空間預算時會套用保留策略,整合端必須顯示 _warnings
  • 本機渲染仍要管理權限 預設會讀取代理指定的本機檔案,不受信任的環境應啟用 –disable-file-reference

iThome 整理的測試顯示,Flint 在 GPT-5.1、GPT-5-mini 與 GPT-4.1 三組 LLM 評分中,都優於直接產生完整 Vega-Lite 規格的 DirectVL。不過官方仍標示研究論文即將公開,因此比較結果適合視為早期證據,不能取代自己的資料集與視覺驗收。

真正值得帶走的是代理系統的分工方式

Flint 最值得學習的不只是圖表規格,而是代理系統的分工。讓模型輸出小型、結構化、可以先驗證的意圖,再讓確定性程式負責計算、渲染與錯誤處理。這個模式也能延伸到 UI 元件、文件排版、測試流程與自動化操作。

但「成功回傳 JSON」不等於任務完成。視覺工作必須真的渲染,再檢查畫布是否空白、文字是否重疊、顏色是否誤導、資料是否被截斷。AI Agent 的可靠性,來自可驗證的中介格式與最後一哩的實際驗收,而不是更長的提示詞。

常見問題

Flint 可以取代 ECharts 或 Vega-Lite 嗎

不會。Flint 是位在 AI 與繪圖函式庫之間的中介語言,最後仍會輸出 ECharts、Vega-Lite 等後端可使用的原生規格。

Flint MCP 會把資料上傳到外部服務嗎

本機 stdio 版本會在主機上執行,內嵌資料與本機檔案不會送到遠端渲染服務。若改用官方 HTTP 端點,資料會透過遠端連線處理,因此敏感資料仍應優先採用本機版本。

Codex 看不到互動圖表怎麼辦

create_chart_view 需要客戶端支援 MCP Apps。若目前介面不支援,可以要求 Flint 使用 render_chart 輸出 SVG 或 PNG,再直接檢查成品。

Flint 適合什麼工作

它適合需要大量產生資料圖表、希望規格可被人工修改、需要切換不同後端,或不能接受偶發空白與錯誤圖表的 Agent 工作流程。若只是一次性的簡單圖表,現有大型模型或熟悉的圖表函式庫可能已經足夠。

參考資料

Voicebox 是什麼?本地 AI 語音工作室與 Agent 發聲工具

Voicebox 是什麼?本地 AI 語音工作室與 Agent 發聲工具

Voicebox 最吸引我的地方,是它不是只做 TTS,也不是只做 Whisper 聽寫,而是把語音輸入、語音輸出、聲音克隆、故事編輯器、REST API 和 MCP server 放在同一個本地優先的工具裡。這讓 AI Agent 不只會回文字,也能用你指定的音色說話。

如果說過去的語音工具常常分成兩邊,ElevenLabs 偏輸出,WisprFlow 偏輸入,那 Voicebox 想做的是完整 voice I/O stack。更重要的是,它預設把模型、聲音資料和錄音留在本機,這對語音克隆和工作資料來說很關鍵。

先講結論

Voicebox 是 Jamie Pine 開源的 AI voice studio,官方定位是 local-first。它可以做文字轉語音、聲音克隆、全域快捷鍵聽寫、Whisper 轉錄、故事多軌編輯,還能透過 REST API 和 MCP server 讓 Claude Code、Cursor、Cline 這類 MCP-aware agent 發聲。

我會把它放在「本地語音 AI 底座」這一類,之前整理過 audio.cpp 本地語音 AI WebUIHugging Face speech-to-speech 本地語音 Agent,Voicebox 則更偏向桌面應用和創作者工具,並且把 Agent 整合做得很直接。

Voicebox 本地語音輸入輸出與 MCP Agent 整合流程圖
Voicebox 把聽寫、轉錄、配音和 Agent 語音輸出放在同一個本地工具裡。

Voicebox 在補語音 AI 的哪一塊

很多語音工具只有單點能力。TTS 工具能把文字變聲音,但不一定能做聽寫。STT 工具能轉錄,但不一定能配音。聲音克隆工具效果強,但常常依賴雲端 API。Voicebox 的取向比較完整:輸入端用 Whisper,輸出端有多個 TTS 引擎,中間還有本地 Qwen3 LLM 做潤飾、角色語氣和 persona。

這種整合方式很適合兩種人:

第一種是內容創作者,想做旁白、podcast、故事對話、角色音色。

第二種是 AI Agent 使用者,想讓 Claude Code、Cursor 或自己的工具在完成任務後,用指定聲音提醒你,而不是只丟一段文字。

7 個 TTS 引擎和 23 種語言

官方 README 列出 7 個 TTS 引擎:Qwen3-TTS、Qwen CustomVoice、LuxTTS、Chatterbox Multilingual、Chatterbox Turbo、HumeAI TADA 和 Kokoro。它們的定位不同,有的適合多語言克隆,有的適合 CPU 快速推理,有的適合加入情緒標籤和語氣控制。

能力Voicebox 的做法適合用途
高品質 TTSQwen3-TTS、Chatterbox、HumeAI TADA 等引擎旁白、教學、產品介紹
聲音克隆用參考音訊做 zero-shot cloning個人聲音、角色聲音、品牌聲線
快速預設音色Kokoro 和 Qwen CustomVoice 提供 50+ 音色快速試稿、多角色對話
語音輸入全域快捷鍵加 Whisper STT聽寫、轉錄、工作筆記

如果你對開源 TTS 的音色設計有興趣,可以搭配看 Qwen3-TTS 的音色設計整理dots.tts 聲音復刻架構。Voicebox 比較像把這些能力打包成桌面工作台,而不是單一模型 demo。

聲音克隆和預設音色的差別

聲音克隆適合你有一段參考音訊,想生成相似聲線。預設音色適合你只是要快速找一個可用聲音,不想準備樣本。Voicebox 同時支援兩種路線,這點很實用。創作者可以先用預設音色打草稿,確定文本節奏後,再換成克隆音色做正式版本。

但聲音克隆也有界線。它很適合克隆你自己擁有權利的聲音,或明確授權的角色聲音。不要拿來模仿名人、同事或客戶聲音做未授權內容。語音模型越容易使用,倫理和授權越要先想清楚。

Whisper 聽寫補上輸入端

Voicebox 的另一半是輸入。它用 OpenAI Whisper 做 speech-to-text,支援全域 dictation hotkey、push-to-talk 和 toggle mode。macOS 上可以把轉錄結果直接貼到目前焦點文字欄位,這會讓它接近一個本地版語音輸入法。

Whisper 對長音訊和技術內容一直很適合。如果你常做訪談、會議紀錄、口述筆記,Voicebox 把 captures、replay、re-transcribe、refine 放在同一個介面裡,會比單純命令列轉錄更順。這裡也可以延伸看之前整理的 Whisper 開源語音轉文字

MCP 讓 Agent 真的開口說話

Voicebox 最有意思的一點,是內建 MCP server,官方 README 寫到它提供 `voicebox.speak`、`voicebox.transcribe`、`voicebox.list_captures`、`voicebox.list_profiles` 四個工具,這代表 MCP-aware agent 可以呼叫 Voicebox,把文字變成指定音色播放出來,也可以讀取 captures 和 voice profiles。

這不只是好玩。Agent 的語音輸出可以拿來做任務完成提醒、錯誤警告、長任務回報、pair programming 對話。你甚至可以把不同 agent 綁定不同聲音,例如 Claude Code 用一個音色,Cursor 用另一個音色,聽聲音就知道是哪個工具在回報。

{
  "tool": "voicebox.speak",
  "arguments": {
    "text": "任務完成,測試已通過",
    "profile": "Morgan"
  }
}

如果你已經在玩 Playwright CLI 讓 Codex 操作瀏覽器,Voicebox 可以補上另一個感官通道。Agent 不只可以操作網頁,也能在完成後直接用語音提醒你。

Stories editor 適合做多角色內容

Voicebox 也有 Stories editor,可以做 conversation、podcast、narrative 這類多段落、多角色內容。這對部落格轉 podcast、教學腳本、角色對話、短劇旁白都很有用。比起一次產生一整段音訊,多軌 timeline 更適合慢慢調整角色、節奏和轉場。

如果你平常會把文章轉成短影片或語音內容,Voicebox 可以放在內容工作流後段。先由 Agent 整理稿件,再用 Voicebox 做角色分配和配音,最後再進剪輯工具。

安裝與使用入口

Voicebox 官方網站是 voicebox.sh,GitHub repo 是 jamiepine/voicebox。官方 README 提供 macOS Apple Silicon、macOS Intel 和 Windows 下載入口,也有開發者本地建置方式。

我會怎麼用

我不會只把 Voicebox 當成免費配音工具:

更有價值的用法,是把它接進 AI Agent 工作流,平常寫文章、整理筆記、跑 Codex、跑 Claude Code,最後都可以由 Voicebox 轉成語音摘要。長任務完成時不用一直盯螢幕,讓 Agent 開口提醒就好。

第二個用法是做內容實驗,先用預設音色快速產出版本,再用克隆音色做正式版。

第三個用法是本地聽寫,把口述想法直接丟進任何 app,再交給 Agent 整理。這會比只靠鍵盤更接近自然工作流。

我的判斷

Voicebox 不是單一模型展示,而是把語音 AI 變成桌面工作台。它的亮點不是某個 TTS 引擎本身,而是整合:本地隱私、TTS、STT、故事編輯、聲音 profile、REST API、MCP server。

如果你只需要偶爾產一段聲音,線上 TTS 服務可能更快。但如果你想要長期建立自己的聲音素材庫、做本地聽寫、讓 Agent 用聲音回報任務,Voicebox 會是值得試的工具。

延伸資源

FAQ

Voicebox 是什麼?

Voicebox 是開源的本地優先 AI 語音工作室,可以做 TTS、聲音克隆、Whisper 聽寫轉錄、故事編輯和 MCP Agent 語音輸出。

Voicebox 可以離線使用嗎?

官方定位是 local-first,模型、聲音資料和 captures 會留在本機。實際能否完全離線,取決於你是否已下載需要的模型和使用的引擎。

Voicebox 支援哪些 TTS 引擎?

官方列出 Qwen3-TTS、Qwen CustomVoice、LuxTTS、Chatterbox Multilingual、Chatterbox Turbo、HumeAI TADA 和 Kokoro。

Voicebox 可以接 Claude Code 或 Cursor 嗎?

可以。Voicebox 內建 MCP server,MCP-aware agent 可以使用 `voicebox.speak`、`voicebox.transcribe`、`voicebox.list_captures` 和 `voicebox.list_profiles`。

OfficeCLI 是什麼?讓 AI Agent 操作 Word、Excel、PowerPoint

OfficeCLI 是什麼?讓 AI Agent 操作 Word、Excel、PowerPoint

OfficeCLI 把 Word、Excel、PowerPoint 這三種常見文件,變成 AI Agent 可以穩定讀取、修改、驗證和預覽的工程接口。

以前要讓 AI 幫你處理 Office 文件,常見做法是丟給 Python 套件,例如 python-docx、openpyxl、python-pptx。這些工具很有用,但每種格式各自一套 API,版面問題也很難用純文字確認。OfficeCLI 的方向則比較像給 Agent 一支專門的文件手臂,用 CLI 和 JSON 把文件操作標準化。

先講結論

OfficeCLI 是 iOfficeAI 開源的 Office 文件命令列工具,主打給 AI Agent 使用。它可以建立、讀取、修改和驗證 docx、xlsx、pptx,不需要安裝 Microsoft Office,也不需要額外 runtime,官方定位是 single binary。

我會把它放在 Playwright CLI 同一類思路裡,Playwright CLI 是讓 Agent 操作瀏覽器,OfficeCLI 則是讓 Agent 操作文件,兩者共同點都是把原本依賴 GUI 或複雜 library 的任務,改成可重複、可檢查、可寫進 skill 的 CLI 工作流。

OfficeCLI 讓 AI Agent 讀取修改驗證和修正 Office 文件的流程圖
OfficeCLI 的價值在於讓 Agent 形成讀取、修改、驗證、修正的文件處理閉環。

為什麼 Agent 需要 OfficeCLI

文件不是只有文字,Word 有段落、樣式、頁首頁尾、註腳、目錄和追蹤修訂。

Excel 有公式、表格、樞紐分析、條件格式和資料驗證。P

owerPoint 有投影片、形狀、圖表、圖片、動畫和轉場。這些東西如果只轉成純文字,Agent 很容易看漏版面和結構。

OfficeCLI 的關鍵設計,是把文件轉成 Agent 能理解的結構化輸出,也能渲染成 HTML 或 PNG,這讓 Agent 不只知道文件裡有什麼文字,也能檢查排版結果。對需要交付正式報告、簡報、表格的人來說,這個 render → look → fix 的迴圈非常重要。

一行指令取代很多樣板程式碼

傳統 Python 套件通常要先 import library、建立物件、找到段落或投影片、設定屬性,最後再存檔,OfficeCLI 把這些操作變成像 shell command 一樣的命令。例如建立簡報、加入投影片、設定文字、讀取 outline、輸出 JSON,都可以用命令完成。

officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Q4 Report"
officecli view deck.pptx outline
officecli get deck.pptx /slide[1] --json

這種形式對 Codex、Claude Code、Cursor、GitHub Copilot 這類 coding agent 很友善。Agent 不需要在不同文件格式之間背很多 Python API,只要知道 OfficeCLI 的命令和路徑規則,就能用一致方式操作三種 Office 文件。

OfficeCLI 能做哪些事

OfficeCLI 的命令不只 create 和 view。官方文件列出的核心能力包含 get、query、set、add、remove、move、swap、validate、batch、dump、merge、watch、mcp、raw 和 raw-set。這代表它不只是產生文件,也能讀取現有文件、定位元素、修改內容、驗證問題、批次處理和啟動 MCP server。

格式可做的事適合場景
Word段落、樣式、表格、圖片、註腳、目錄、追蹤修訂報告、自動合約、專案文件、審稿流程
Excel儲存格、公式、表格、排序、條件格式、圖表、樞紐分析月報、資料清理、預算表、營運儀表板
PowerPoint投影片、形狀、圖片、表格、圖表、動畫、轉場簡報初稿、銷售 deck、課程投影片、專案提案

如果你的工作已經在用 MarkItDown 把 Office 文件轉成 AI 可讀 Markdown,OfficeCLI 可以補上另一半。MarkItDown 偏向讀取和轉換,OfficeCLI 更偏向讀寫修改和驗證。

最重要的是可視化回饋

Agent 產生文件最常見的問題,是內容看起來對,但交付檔打開後版面歪掉。OfficeCLI 的 built-in rendering engine 可以把 docx、xlsx、pptx 渲染成 HTML 或 PNG,再讓 Agent 檢查畫面。這對簡報和報告特別有用,因為很多錯誤不是純文字能看出來的。

例如 Agent 做完簡報後,可以先用 `officecli view deck.pptx html` 或 `officecli watch deck.pptx` 看預覽,再用 `officecli view deck.pptx issues –json` 找問題。這會讓文件生成變成工程流程,而不是一次性產出後靠人工開檔檢查。

安裝方式

OfficeCLI 官方提供多種安裝路線。AI Agent 可以先讀 skill file,讓 Agent 自己理解如何安裝和使用。一般開發者也可以直接跑安裝腳本,或透過 npm 安裝。

curl -fsSL https://officecli.ai/SKILL.md
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash
npm install -g @officecli/officecli

Windows 則可以用 PowerShell 安裝。它的核心好處是 single binary,文件處理不必依賴本機有沒有安裝 Office。這對伺服器、CI、Docker 或 Agent 執行環境很重要。

跟 Python 套件和 LibreOffice 怎麼選

python-docx、openpyxl、python-pptx 還是很實用,尤其是你已經有固定資料結構和成熟程式碼時,LibreOffice headless 也適合某些批次轉檔需求,OfficeCLI 的優勢,是它把三種 Office 文件收斂成同一套 CLI、JSON 和路徑模型,對 Agent 來說比較容易自我修正。

我會這樣選。如果只是固定模板套資料,Python 套件仍然簡單。如果要讓 Agent 自己讀一份未知文件、理解結構、修改局部、檢查品質,再回頭修正,OfficeCLI 會更接近 AI-native 的工作方式。如果團隊正在做 Codex 與 AI 代理工作流,這種工具就很值得放進標準工具箱。

可以怎麼接到 Codex

最務實的做法,是先把 OfficeCLI 當成專案工具使用。讓 Codex 讀文件、產生命令、執行修改,再用 validate 和 issues 做回饋。等流程穩定後,再寫成 skill。這和 讓 Agent 自己發現和使用 skills 的方向很一致。

舉例來說,可以做一個「每週報告 skill」。輸入資料來源後,Agent 先產生 Excel 摘要,再把重點轉成 PowerPoint,最後輸出 Word 報告。OfficeCLI 負責文件讀寫與驗證,Codex 負責資料整理、判斷和修正。若還需要把團隊知識一起查進來,也可以搭配 OpenWiki 這類 Agent 共用知識庫

我的判斷

OfficeCLI 的真正價值,是把 Office 文件從「人打開 GUI 慢慢改」變成「Agent 可以讀、改、看、驗證、再修正」的循環。它不一定取代所有 Python library,但很適合補上 AI Agent 在文件處理裡最缺的一塊:穩定操作接口加可視化回饋。

如果你的工作常常要做報表、合約、簡報、月報、批次文件修改,這類工具會越來越重要。未來的文件自動化不只是產生文字,而是讓 Agent 能理解文件結構,知道自己改了哪裡,也能在交付前先檢查成果。

延伸資源

FAQ

OfficeCLI 是什麼?

OfficeCLI 是給 AI Agent 和開發者使用的 Office 文件 CLI,可以建立、讀取、修改和驗證 Word、Excel、PowerPoint 文件。

OfficeCLI 需要安裝 Microsoft Office 嗎?

不需要。官方主打 single binary,不依賴本機 Office 安裝,適合伺服器、CI 和 Agent 執行環境。

OfficeCLI 和 python-docx、openpyxl 差在哪裡?

Python 套件適合固定程式流程。OfficeCLI 更適合 AI Agent,因為它提供一致的 CLI、JSON 輸出、路徑式元素定位、文件驗證和 HTML 或 PNG 預覽。

Codex 可以用 OfficeCLI 嗎?

可以。Codex 可以透過終端執行 OfficeCLI 命令。若把常用流程寫成 skill,就能讓 Codex 更穩定地處理報告、簡報和表格。