
關於這個系列
這是一系列關於 aw-telegram-bot 的開發紀錄。用 gh-aw(GitHub Agentic Workflows)做了一個 Telegram 聊天機器人,從最基本的「收訊息 → AI 回覆」一路演化成能自動建 repo、寫程式、code review、部署網站的 App Factory。
每一篇都記錄了設計決策、踩坑過程和最終解法。
系統特色:
- 文字聊天 — Copilot(GPT-5.3-codex)驅動的 AI 對話
- AI 繪圖 — Gemini 圖片生成,直接回傳到 Telegram
- 網路研究 — Tavily 搜尋 + 內容擷取,附來源連結
- 影片下載 — yt-dlp 支援 YouTube、X 等平台
- App Factory — 一句話建網站:自動建 repo → 拆 issue → 實作 → review → 部署
- Fork + 客製化 — 找到類似開源專案直接 Fork 再客製
總計 6 個版本、6 篇文章。
架構總覽
使用者 (Telegram)
│
▼
Cloudflare Worker(驗證 + 白名單 + 轉發)
│ workflow_dispatch
▼
GitHub Actions(gh-aw + Copilot + MCP Servers)
│
├── v1 聊天 → safe-inputs: send-telegram-message
├── v2 AI 繪圖 → Nanobanana MCP + Gemini API
├── v3 網路研究 → Tavily MCP + web-search
├── v4 影片下載 → yt-dlp + send-telegram-video
└── v5-v6 App Factory
│
▼
aw-apps 組織(子 Repo)
├── create-repo / fork-repo
├── setup-repo(AGENTS.md、workflows、skills)
├── create-issues(結構化 Issue)
└── implement → review → merge → 下一個 Issue
│
▼
GitHub Pages 部署
閱讀建議
完整學習:從 v1 開始,了解 gh-aw 的安全模型和設計哲學,再往後看功能逐步疊加。
特定需求:
- 想了解 gh-aw 基本架構 → 直接看 v1
- 想整合 MCP Server → 看 v2(Nanobanana)或 v3(Tavily)
- 想了解 safe-inputs 進階用法 → 看 v4
- 想做 AI 自動化開發流水線 → 看 v5 + v6
v1 — 基本聊天機器人
Telegram → Cloudflare Worker → GitHub Actions + Copilot → 回覆
| # | 文章 | 重點 |
|---|---|---|
| 1 | 用 GitHub Agentic Workflows 做 Telegram 聊天機器人 | 架構設計、6 個坑的踩法與解法 |
這篇會談到:
workflow_dispatchvsrepository_dispatch的取捨- gh-aw 的安全模型:expression allowlist、network firewall、secret isolation
- 為什麼 agent 不能碰 secret?safe-inputs 的設計哲學
- Python handler vs JavaScript handler 的穩定性差異
- Cloudflare Worker 作為 webhook relay 的設計
v2 — AI 繪圖
使用者傳「畫一隻穿太空衣的貓」→ 收到 AI 生成的圖片
| # | 文章 | 重點 |
|---|---|---|
| 1 | 加上 AI 繪圖功能,踩了 Docker container 的坑 | MCP Server 整合、Docker 環境問題 |
這篇會談到:
- Nanobanana MCP Server 在 gh-aw Docker 環境中的設定
- Gemini API 的圖片生成與模型選擇
send-telegram-photosafe-input 的實作- 圖片檔案從 Docker container 取出的方法
v3 — 研究模式
使用者傳「/research 主題」→ 收到研究報告,附來源連結
| # | 文章 | 重點 |
|---|---|---|
| 1 | 研究模式 + 指令路由,踩了 concurrency 的坑 | Tavily MCP、指令路由、concurrency 設計 |
這篇會談到:
- Tavily MCP Server 的 web-search 和 web-fetch 工具
- 指令路由設計:
/draw、/research、無前綴自動判斷 - GitHub Actions concurrency group 導致訊息被取消的問題
- 如何讓多個功能共存在同一個 workflow
v4 — 影片下載
使用者傳
/download https://youtube.com/...→ 收到影片
| # | 文章 | 重點 |
|---|---|---|
| 1 | 影片下載 + 使用者白名單 | yt-dlp、safe-inputs 不受防火牆限制、Skills 架構 |
這篇會談到:
- yt-dlp 在 GitHub Actions 中的使用
- 發現 safe-inputs 的 Python handler 不受 gh-aw 防火牆限制(跑在沙盒外)
- Cloudflare Worker 加入使用者白名單(
ALLOWED_USERS) - Skills 架構:把 prompt 拆成多個 markdown 檔案管理
v5 — App Factory
使用者傳
/app 一個猜數字遊戲→ AI 全自動建 repo、實作、部署
| # | 文章 | 重點 |
|---|---|---|
| 1 | App Factory — 用 Telegram 指令讓 AI 自動建網站 | Event-driven chaining、雙 token 架構、12 個 safe-inputs |
這篇會談到:
- Event-driven workflow chaining:Issue → implement → PR → review → merge → 下一個 Issue
- 雙 token 架構:
FACTORY_PAT(管 repo)+COPILOT_PAT(管子 repo 操作) - 12 個 safe-input 工具的設計與實作
- 子 repo 的 secret 自動傳遞機制
- Copilot CLI
--autopilot --yolo的使用
v6 — 智慧規劃
用一半的 Premium Request 達到更好的結果,加上 Fork 和瀏覽器測試
| # | 文章 | 重點 |
|---|---|---|
| 1 | 智慧規劃 — 省一半 Premium Request,多了 Fork 和瀏覽器測試 | 結構化 Issue、Fork、Playwright、Review Fallback |
這篇會談到:
- Diverge → Define done → Converge 的規劃方法論
- 結構化 Issue 格式(Objective / Context / Approach / Files / Acceptance Criteria / Validation)
- Fork + Auto Fork Judgment(≥60% 功能匹配自動 Fork)
- Playwright 瀏覽器煙霧測試
- Review Fallback 防止鏈條卡住
mastervsmain預設分支的相容性處理
指令一覽
| 指令 | 版本 | 說明 |
|---|---|---|
| (無前綴) | v1+ | 聊天、翻譯、自動判斷模式 |
/draw <描述> |
v2+ | AI 圖片生成(Gemini) |
/research <主題> |
v3+ | 網路研究報告(Tavily) |
/download <網址> |
v4+ | 下載 YouTube、X 等平台影片 |
/app <描述> |
v5+ | 從零建立網頁應用 |
/app fork:<owner/repo> <描述> |
v6+ | Fork 現有專案並客製化 |
/build <owner/repo> |
v5+ | 觸發實作流程 |
/issue <owner/repo> <描述> |
v6+ | 在已有 Repo 追加 Issue |
/msg <owner/repo>#<N> <文字> |
v5+ | 在 Issue/PR 留言 |
技術棧總覽
| 層級 | 技術 |
|---|---|
| Webhook Relay | Cloudflare Worker(JavaScript) |
| AI 引擎 | gh-aw + Copilot CLI(GPT-5.3-codex) |
| 圖片生成 | Nanobanana MCP + Google Gemini |
| 網路搜尋 | Tavily MCP |
| 影片下載 | yt-dlp(Python) |
| Safe-Inputs | 12 個 Python 動作(Telegram、GitHub、yt-dlp) |
| 子 Repo CI/CD | GitHub Actions + Copilot CLI + Playwright |
| 部署 | GitHub Pages |
版本演進
| 版本 | 日期 | 新增功能 | Premium Request / 次 |
|---|---|---|---|
| v1 | 03-03 | 文字聊天 | 1 |
| v2 | 03-03 | AI 繪圖 | 1 |
| v3 | 03-03 | 網路研究、指令路由 | 1 |
| v4 | 03-04 | 影片下載、使用者白名單 | 1 |
| v5 | 03-04 | App Factory(全自動建站) | 1 + 10-16(子 Repo) |
| v6 | 03-04 | 智慧規劃、Fork、Playwright | 1 + 4-10(子 Repo) |
Repo
Happy Coding!