Vibe Coding 實戰課 — Stage 3 · 造系統
電腦關機也能跑 — 而且你永遠不止一個選項
按 → 或空白鍵開始
這堂課的核心問題
你的系統什麼時候需要「自動跑」?
而且 — 你永遠不止一種選擇
用 spec.md 讓 AI 理解你的系統全貌
四元素拆解讓複雜系統變可控
系統做好了 — 但你不可能 24 小時盯著電腦
如何讓系統在你關機後繼續運行?
ROUND 1 · 0:00–0:15
三種自動化機制,對應三種真實需求
定時排程 — 不管有沒有新聞,時間到就執行
就像每天早上的鬧鐘
事件觸發 — 不是時間到了才做,而是有人做了什麼才啟動
就像有人打電話給你才接
AI 排程 — Claude /schedule 設定後
AI 自己決定什麼時候執行、執行什麼
像鬧鐘
時間到就執行
不管外界變化
GitHub Actions
像電話
有人做了某件事才啟動
即時回應
Cloudflare Worker
像智慧助理
AI 自己決定何時執行
自主判斷
Claude /schedule
固定時間執行
不管有沒有事,時間到就做
有事才執行
沒事不消耗資源,有事即時回應
Cron = 鬧鐘 / Event = 電話 / /schedule = 智慧助理
ROUND 2 · 0:15–0:45
在 M3-3 的專案裡加上自動化 Workflow
幫我建 GitHub Actions workflow 每天早上 9 點執行 Python 腳本 把結果 commit 到 repo
在 M3-3 的專案裡操作
AI 會在你的專案中生成 .github/workflows/daily.yml
給概念用,不用抄 — 4 個區塊串起來
name: Daily Script
on:
schedule:
- cron: '0 1 * * *' # 每天台灣 09:00 跑
workflow_dispatch: # 手動觸發按鈕
jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: python main.py
下一頁拆解這 4 個區塊在做什麼
Workflow 的名稱,顯示在 Actions 頁面
觸發條件 — schedule / push / workflow_dispatch
要執行的任務 — 在什麼環境跑什麼指令
具體步驟 — checkout / setup / run / commit
cron: '0 9 * * *'
以為是台灣 9 點
實際是 UTC 9 點 = 台灣 17 點
cron: '0 1 * * *'
UTC 1 點 = 台灣 9 點
台灣時間 - 8 = UTC 時間
台灣想要幾點跑,減 8 就是 cron 要填的數字
台灣 9 點 → 9-8 = 1 → cron: '0 1 * * *'
在 GitHub repo 的設定頁面找到 Secrets
名稱填 API_KEY,值填你的 Key
${{ secrets.API_KEY }}
把 API Key 直接寫在 YAML 或程式碼裡
Public repo 全世界都看得到你的 Key
steps:
- run: python main.py
env:
API_KEY: ${{ secrets.API_KEY }}
TG_TOKEN: ${{ secrets.TG_TOKEN }}
Secret 在 log 裡會自動被遮蔽成 ***
即使 workflow 出錯,也不會洩漏你的 Key
把 workflow 檔案推上 GitHub
打開 GitHub → Actions → 看到你的 Workflow
按 Run workflow → 看 Log → 確認成功
回 repo → 看新 commit → 由 github-actions 自動提交
jobs: run: runs-on: ubuntu-latest
run 沒縮排 → YAML 解析失敗
jobs:
run:
runs-on: ubuntu-latest
每層縮排 2 格,層次分明
YAML 格式敏感 — 一個空格的差異就會讓 workflow 完全不跑
讓 AI 幫你生成,出錯就貼 error log 給 AI 修
完全免費
不限次數
免費帳號額度
每天跑一次綽綽有餘
學習階段建議用 Public repo — 無限額度
有敏感內容才需要 Private
每天自動掃描知識庫
編譯 wiki + 推送 Notion
有異常發 TG 告警
每天 3 次自動收集
AI 摘要 + 配圖
發布到 GitHub Pages
每日搜 Scholar + PubMed
自動建 BibTeX
推送摘要到 Notion
這些全部是 GitHub Actions + Python 腳本
跟你剛才做的結構完全一樣
.github/workflows/daily.yml
不寫在程式碼裡
Actions 頁面看到綠燈
ROUND 3 · 0:45–1:00
成功通知你,失敗也告警你
Actions 跑完了
你不知道跑沒跑
失敗了也沒人告訴你
成功 → 手機收到結果
失敗 → 手機收到告警
不需要開電腦就知道狀況
- name: Notify Success
if: success()
run: |
curl -s -X POST \
"https://api.telegram.org/bot${{ secrets.TG_TOKEN }}/sendMessage" \
-d chat_id=${{ secrets.TG_CHAT_ID }} \
-d text="Daily update done"
- name: Notify Failure
if: failure()
run: |
curl -s -X POST \
"https://api.telegram.org/bot${{ secrets.TG_TOKEN }}/sendMessage" \
-d chat_id=${{ secrets.TG_CHAT_ID }} \
-d text="ALERT: Daily update failed"
Telegram Bot 的 Token — 從 @BotFather 取得
你的 Chat ID — 發訊息給 @userinfobot 取得
TG Token 寫在 YAML 裡 → Public repo 全世界看得到
別人可以用你的 Bot 發垃圾訊息
包含 TG 通知的 YAML 推上去
手動觸發一次
看到 Bot 推送的訊息 → 閉環完成
從 Actions 觸發到手機收到通知
全程不需要你開電腦
ROUND 4 · 1:00–1:25
講師展示 — 理解差異,不用動手
M1-3 學的 Google Apps Script,複雜任務跑不完
適合定時跑,不適合即時回應 HTTP 請求
有人打你的網址 → 毫秒內回應
已部署好的 Cloudflare Worker
瀏覽器輸入網址 → 看到即時回應的結果
跟 M1-4 的 GAS doGet 概念相同
GAS doGet 跑在 Google 的伺服器
Worker 跑在離你最近的 Cloudflare 邊緣節點 — 更快
export default {
async fetch(request) {
const url = new URL(request.url)
if (url.pathname === '/api/hello') {
return new Response(
JSON.stringify({ message: 'Hello from Worker' }),
{ headers: { 'Content-Type': 'application/json' } }
)
}
return new Response('Not Found', { status: 404 })
}
}
GAS 用 doGet/doPost,Worker 用 fetch
概念完全相同 — 收到請求,回傳結果
npx wrangler deploy
wrangler 是 Cloudflare 的 CLI 工具
一行指令把程式碼推到全球 300+ 個邊緣節點
不需要管伺服器、不需要開 port
這段是講師示範
你需要理解的是:部署可以很簡單,一行搞定
| GAS | Cloudflare Worker | GitHub Actions | |
|---|---|---|---|
| 觸發 | 表單/時間/HTTP | HTTP Request | 時間/Push/手動 |
| 限制 | 6 分鐘 | 10ms CPU(免費) | 6 小時 |
| 部署 | 手動 | IDE + CLI | 自動 |
| 免費 | 無限(有速率限制) | 10 萬次/天 | Public 無限 |
| 適合 | Google 生態 | API Proxy/邊緣 | CI/CD/排程 |
你的資料在 Google
Sheet / Form / Gmail
簡單自動化
需要即時回應
API Proxy
邊緣運算
定時排程任務
CI/CD 部署
長時間運算
不是選最好的,而是選最適合你場景的
三個工具解決不同問題
CPU 時間只有 10ms — 不是 10 秒,是 10 毫秒
只適合輕量運算(轉發請求、格式轉換)
不適合跑 AI 推論或大量資料處理
Worker 當入口(收請求、轉發)
重運算交給後端 API 或 Actions
ROUND 5 · 1:25–1:45
把三個 Stage 學到的能力串成一張圖
每人畫出自己的 AI 系統藍圖
用這個架構填入你的專案 — 你的資訊來源是什麼?要做什麼處理?存在哪裡?
新聞 / 論文 / 表單 / 社群 / API
Actions 排程 / Worker 接收 / GAS 觸發
摘要 / 分類 / 翻譯 / 分析
GitHub/Sheet → Pages/Worker → TG/Email
從 M1-1 到 M3-4,十二堂課堆疊出完整的 AI 系統能力
| 能力 | 工具 | 學於 |
|---|---|---|
| 做作品 | AI 聊天 / IDE / CLI | M1-1, M2-3, M3-1 |
| 封裝助手 | GPT / Gem / Project | M1-2 |
| 圖文生成 | Gemini Gem 多模態 | M1-2 |
| 自動化 | GAS 觸發器 / Actions | M1-3, M3-4 |
| 做網頁 | GAS / GitHub Pages | M1-4, M2-1 |
| 能力 | 工具 | 學於 |
|---|---|---|
| 安全 | .env / Secrets / Proxy | M2-2, M2-3 |
| API 串接 | Groq / Gemini / CF | M1-4, M2-4 |
| AI 擴展 | MCP / Skills / CLAUDE.md | M3-1 |
| 架構 | spec.md / 四元素 | M2-2, M3-3 |
| 24/7 運轉 | Actions / Worker | M3-4 |
十種能力,十二堂課
每一層都是前一層的延伸
學習不是只學一種工具
而是讓自己永遠有選擇
AI 聊天
GAS doGet
GitHub Pages
localStorage
Google Sheet
Firebase
GAS
GitHub Pages
Cloudflare Worker
GAS 觸發器
GitHub Actions
Claude /schedule
Telegram Bot
Email
Gemini
Groq
HuggingFace
Cloudflare AI
VS Code
Cursor
Windsurf
Claude Code
Codex
Gemini CLI
不是每個都要精通
而是知道有哪些選項,需要時能找到路
ROUND 6 · 1:45–2:00
六維度反思 + 三階段回顧 + 下一步
AI 聊天做作品
Prompt 四要素
指令品質 = 產出品質
封裝 AI 助手
GPTs / Gems
圖文多模態生成
AI 自動化流程
GAS 觸發器
表單 → AI → Sheet
AI 做網頁
GAS doGet 部署
API 串接初體驗
會用 AI 產出作品,會做網頁,會接 API,會設自動化
GitHub Pages
版本控制
正式部署
.env / .gitignore
安全三件套
架構拆分
IDE + AI
Cursor / Windsurf
AI 不是萬能的
API 批量串接
Groq / Gemini
Rate Limit 實戰
會部署產品、會保護密鑰、會用 IDE、會串 API
CLI + MCP
Skills / CLAUDE.md
AI 能力擴展
開源社群
供應鏈安全
站在巨人肩上
spec.md
四元素架構
系統設計思維
Actions / Worker
通知閉環
24/7 自動運轉
會用 CLI 擴展 AI、會讀開源、會寫 spec、會讓系統自動跑
你從「用 AI 聊天」走到「讓 AI 系統 24/7 自動運轉」
這不是終點,是起點
不只學了什麼,是想法怎麼變了
從「我做事」→ 我設計系統持續做事
| # | 常見問題 | 學到什麼 |
|---|---|---|
| 1 | YAML 縮排錯 | YAML 格式敏感 |
| 2 | cron 時區 UTC | 時區意識 |
| 3 | Worker CPU 10ms 限制 | 免費版限制 |
| 4 | TG Token 寫在 YAML | GitHub Secrets |
| 5 | Public vs Private 額度差 | repo 可見性選擇 |
電腦關機也能定時執行
即時回應 HTTP 請求的第二選項
成功通知、失敗告警,不需盯著
資訊 → 收集 → 處理 → 儲存 → 查詢 → 通知
不被單一工具綁住
基礎已掌握
接下來選你想深入的方向
基礎課程畢業後,選擇你想深入的方向
SecondBrain
個人知識庫
自動收集 + 編譯 + 推送
Paper Pipeline
論文收集 + 分析
文獻圖譜 + 寫作輔助
OpenClaw / Hermes
多 Agent 系統
自主決策 + 協作
選一個最有動力的方向開始
基礎課程教的技能在每個方向都用得上
Vibe Coding 基礎課程
從 AI 聊天做作品,到讓 AI 系統 24/7 自動運轉
M3-4 完成 · 基礎課程結業