opencode×AI-Math
>_
國立中山大學 人工智慧與數學整合學程

兩小時,學會指揮一個會寫程式的 AI

讓它跑實驗、畫圖、整理筆記, 然後一步步學會判斷它做得對不對。

現場兩小時 · 使用內建網路模型 · 課前完成安裝

這場工作坊在做什麼

你會帶著一份手寫數字資料,請 agent 寫程式、執行分析、畫圖,再檢查它的解釋。每個實作都有可以直接貼上的指令,也會帶你練習自己追問。

看得懂少量 Python、接觸過一些微積分或線性代數,就可以從課前準備開始。需要的概念會在用到時說明;完整推導留在可展開的補充裡,課後再回來讀。

從第一次對話,到用數學檢查成果依序完成課前準備、初次對話、分群、PCA 與分類筆記,課後可選數學應用或 OpenCode 工作法;間距表示學習順序,不表示時間長短。一段一段完成,成果留在自己的專案學習順序|每一步都先操作,再確認課前準備建立環境初次對話完成小任務分群比較相似性PCA理解投影分類與筆記說明並驗證課後自由延伸數學應用低秩近似・梯度下降・最短路徑OpenCode 工作法需求・分工・驗證・續作
從第一次對話,到用數學檢查成果 開啟大圖 ↗
opencode · 一段任務與回應
手刻一個 PCA,不可以呼叫 sklearn。寫完自己驗證,並把驗證結果印出來。
Read AGENTS.md
Write pca_manual.py
uv run python pca_manual.py
驗證 1:解釋變異比例 最大差異 = 8.327e-17 → PASS
驗證 2:主成分方向 |cos| 最大偏離 1 = 8.882e-16 → PASS
驗證 3:重建誤差 差異 = 0.000e+00 → PASS
三項驗證都通過了。補充一點:第 4、7、8、9、10 個主成分的方向跟 sklearn 相反, 這是正常的,特徵向量的正負號本來就任意,所以我用 |cos| 而不是直接相減。
給你的第一個問題

上面那段話,agent 說得頭頭是道。但它漏了一個條件。 在什麼情況下,用 |cos| 比對主成分方向會失效?

Lab 2 會處理這題。這就是這場工作坊的樣子。

現場兩小時怎麼走

00:00綠燈檢查 課前 確認每個人的環境都活著。課前準備沒做完的,這裡補救。
00:05第一次對話 現場 TUI 操作、權限機制、session 的邊界。搞懂你在跟什麼東西說話。
00:25Lab 1 · 分群 現場 agent 當加速器。一句話換來十一組 k-means 與兩張圖,再比較「分群指標」與「數字標籤」回答的是不是同一個問題。
00:55休息
01:00Lab 2 · 降維 現場 agent 當驗證對象。手刻 PCA vs sklearn,你負責設計能抓出錯誤的驗證方法。
01:30Lab 3 · 分類與筆記 現場 agent 當學習夥伴。梯度檢查、線性可分的陷阱,再讓它把推導整理成 LaTeX 筆記(筆記可課後補完)。
01:55收尾 挑選課後的操作練習與數學應用。

課程地圖

標 現場 的是兩小時內會一起做的;標 課後 的是給你自己往下走的。 全部內容都留在這個網站上,工作坊結束後隨時可以回來。

00

課前準備

裝好 opencode 與 uv,確認 Python 環境與 agent 能執行。請在工作坊前完成,現場就能直接開始實作。

課前→
01

第一次對話

啟動、下指令、看懂畫面上那些箭頭是什麼意思。權限機制為什麼重要,以及 session 滿了該怎麼辦。

現場 20 分→
02

Lab 1 · 分群:agent 當加速器

k-means 掃過 k=2 到 12,畫 elbow 與 silhouette。指標偏好 k=9,資料卻有 10 種數字標籤。這兩個數字各代表什麼?

現場 30 分→
03

Lab 2 · 降維:agent 當驗證對象

手刻 PCA 與 sklearn 比對。直接相減差 0.94 看起來大錯特錯,用對方法卻是完全正確。驗證方法本身就是這堂課的主題。

現場 30 分→
04

Lab 3 · 分類與筆記:agent 當夥伴

有限差分梯度檢查,抓出寫錯的梯度公式。接著撞上線性可分的陷阱,親眼看到「沒有最佳解」長什麼樣子。最後讓 agent 把推導寫成筆記。

現場 25 分→
05

在自己電腦上跑本地模型

Ollama 接 opencode。重點是 context 長度要在兩個地方各設一次。只設一邊,模型會表現得像個笨蛋,而你會以為是模型不好。

課後→
06

用 AGENTS.md 馴服 agent

把「一律用 uv run」「隨機種子固定」「不准偷呼叫 sklearn 充數」寫成專案規則,讓 agent 每次都照做,不必你每次重講。

課後→
07

git:讓你敢放手

不用 GitHub 帳號也能用。動手前先 commit、改完看 diff、不滿意就還原。有這張安全網,你才敢真的讓 agent 改你的檔案。

課後→
08

MCP、skills 與 subagent

建立自己的數學筆記 skill,請唯讀 reviewer 檢查程式,再認識外部工具與分工。

課後→
延伸

把需求說清楚,讓工作接得下去

練習拆步驟、提供完整錯誤,以及把進度存成檔案,在新對話繼續。

課後→
應用

把 agent 帶回數學課

從微積分、線性代數到圖論,挑一個問題練習提出需求、實驗與驗證。

課後→
09

速查表

指令、快捷鍵、常見錯誤與對應解法。現場卡住先翻這頁。

隨時→

開始之前

兩件必須先知道的事

一、免費模型會看你送過去的東西。 本工作坊用的 opencode/big-pickle 是限時免費的試用模型, 官方明講資料可能被用於改進模型。所以:不要把還沒發表的研究資料、 個人隱私資料、或任何機密內容丟進去。課堂用的都是 scikit-learn 內建的公開資料集。

二、agent 會動你的檔案。 它真的會寫檔、刪檔、執行指令。這不是聊天機器人。 先看過第 07 章,或至少在動手前把重要的東西備份一份。