Skill to LINE Bot 轉換技能
將任意 AI Skill 轉換成可部署的 LINE Bot 服務。
使用時機
當用戶提出以下請求時啟用此技能:
- 「幫我把 XXX skill 變成 LINE Bot」
- 「將這個 skill 部署成 LINE Bot」
- 「我想讓這個 skill 能在 LINE 上使用」
- 「create a LINE Bot from this skill」
核心功能
- Skill 分析 — 解析目標 skill 的結構、功能與用途
- 程式碼生成 — 生成完整的 Google Apps Script 專案
- 部署指南 — 產生詳細的部署步驟說明
工作流程
Step 1: 確認目標 Skill
詢問或確認用戶想要轉換的 skill:
請告訴我你想轉換的 skill 路徑,例如:
- .agent/skills/meihua-yishu
- .agent/skills/bazi
或者直接告訴我 skill 的名稱,我會幫你找到它。
Step 2: 分析 Skill 結構
讀取並分析目標 skill 的以下內容:
2.1 必讀檔案
SKILL.md— 提取 name、description、核心功能、使用流程
2.2 選讀檔案
scripts/*.py— 識別計算邏輯(如有)references/*.md— 識別知識庫內容(如有)ETHICS.md— 提取倫理規範(如有)
2.3 分析要點
從 SKILL.md 中提取:
- Skill 名稱 — 用於 Config.BOT_NAME
- 功能描述 — 用於生成歡迎訊息
- 核心功能 — 用於設計對話邏輯
- 輸入類型 — 用戶可能輸入的資料類型(文字、數字、時間等)
- 輸出格式 — 回應的內容結構
Step 3: 生成 GAS 專案
在用戶指定的目錄(或預設為 {skill-name}-line-bot/)建立以下檔案:
3.1 直接複製的模板(無需修改)
從 templates/ 目錄複製以下檔案:
| 模板檔案 | 目標檔案 |
|---|---|
appsscript.json | appsscript.json |
LineBot.gs.template | LineBot.gs |
Database.gs.template | Database.gs |
3.2 需要填充的模板
Config.gs
替換以下佔位符:
{{SKILL_NAME}}→ Skill 技術名稱(如meihua-yishu){{SKILL_DISPLAY_NAME}}→ Skill 顯示名稱(如梅花易數占卜){{WELCOME_MESSAGE}}→ 歡迎訊息
Main.gs
直接複製 Main.gs.template,無需修改。
OpenAI.gs
直接複製 OpenAI.gs.template,無需修改。
SkillCore.gs(最重要!)
這是需要根據 Skill 內容客製化的核心檔案。
替換以下佔位符:
{{SYSTEM_PROMPT}}
根據 Skill 的 SKILL.md 內容生成系統提示詞,應包含:
- Skill 的角色定義
- 核心功能說明
- 回應格式要求
- 注意事項與限制
範例(以梅花易數為例):
SYSTEM_PROMPT: `你是一位專業的梅花易數占卜師。
【核心功能】
- 時間起卦:根據當前時間進行占卜
- 數字起卦:根據用戶提供的數字進行占卜
- 卦象解讀:分析體用關係並提供建議
【回應要求】
1. 使用繁體中文回答
2. 先說明卦象,再給出解讀
3. 提供具體可行的建議
4. 語氣溫和、正面
【注意事項】
- 卦象僅供參考,不代表絕對結果
- 不預測具體死亡或極端不幸
- 鼓勵用戶獨立思考`,
{{PROCESS_MESSAGE_LOGIC}}
根據 Skill 的功能生成處理邏輯。常見模式:
模式 A:純 AI 對話型
// 直接呼叫 OpenAI
const response = OpenAI.chat(userMessage, this.SYSTEM_PROMPT);
return response;
模式 B:帶有計算邏輯型
// 先處理輸入,再呼叫 AI
const processedInput = this.preprocessInput(userMessage);
const enhancedPrompt = this.SYSTEM_PROMPT + '\n\n【用戶輸入分析】\n' + processedInput;
const response = OpenAI.chat(userMessage, enhancedPrompt);
return response;
模式 C:使用 Vector Store 型
// 使用 Responses API 搜尋知識庫
const response = OpenAI.responsesWithSearch(userMessage, this.SYSTEM_PROMPT);
return response;
{{HELPER_FUNCTIONS}}
根據需要添加輔助函數,例如:
- 輸入預處理
- 數字提取
- 時間處理
- 格式化輸出
Step 4: 生成部署指南
在專案目錄中建立 README.md,包含:
# {Skill 名稱} LINE Bot 部署指南
## 📋 快速開始
### 1. 建立 Google Sheets
1. 開啟 [Google Sheets](https://sheets.google.com)
2. 建立新試算表,命名為「{Skill 名稱} 資料庫」
3. 複製試算表 ID(網址中 `/d/` 和 `/edit` 之間的字串)
### 2. 建立 Google Apps Script 專案
1. 開啟 [Google Apps Script](https://script.google.com)
2. 點擊「新專案」
3. 將專案命名為「{Skill 名稱} LINE Bot」
4. 將以下檔案內容複製到 GAS 專案中:
- `Config.gs`
- `Main.gs`
- `LineBot.gs`
- `Database.gs`
- `OpenAI.gs`
- `SkillCore.gs`
### 3. 設定 Script Properties
在 GAS 中點擊 ⚙️「專案設定」 > 「指令碼屬性」,新增:
| 屬性名稱 | 說明 |
|----------|------|
| `LINE_CHANNEL_SECRET` | LINE Messaging API Channel Secret |
| `LINE_CHANNEL_ACCESS_TOKEN` | LINE Messaging API Access Token |
| `OPENAI_API_KEY` | OpenAI API Key |
| `SPREADSHEET_ID` | Google Sheets 試算表 ID |
### 4. 部署為網頁應用程式
1. 點擊「部署」→「新增部署作業」
2. 選擇類型:「網頁應用程式」
3. 設定:
- 執行身分:我
- 存取權限:任何人
4. 點擊「部署」
5. 複製產生的 **網頁應用程式網址**
### 5. 設定 LINE Developers
1. 開啟 [LINE Developers Console](https://developers.line.biz/console/)
2. 建立 **Messaging API Channel**
3. 在「Messaging API」設定中:
- 將 GAS 網址貼到 **Webhook URL**
- 啟用 **Use webhook**
- 關閉 **Auto-reply messages**
4. 取得 **Channel Secret** 和 **Channel Access Token**
## 🧪 測試
設定 `TEST_USER_ID` 後,在 GAS 中執行:
- `testLineSend()` — 測試 LINE 連接
- `testSkillCore()` — 測試功能邏輯
## 📱 使用
掃描 LINE 官方帳號 QR Code 加為好友,即可開始使用!
Step 5: 產生輸出摘要
完成後,向用戶報告:
✅ LINE Bot 專案已生成!
📁 專案位置:{output_directory}
📄 生成的檔案:
- appsscript.json — GAS 設定
- Config.gs — 設定管理
- LineBot.gs — LINE API 封裝
- Database.gs — 資料庫操作
- OpenAI.gs — AI 整合
- Main.gs — Webhook 入口
- SkillCore.gs — {Skill 名稱} 核心邏輯
- README.md — 部署指南
📖 下一步:
1. 閱讀 README.md 中的部署指南
2. 建立 Google Sheets 和 GAS 專案
3. 設定 LINE Developers
4. 部署並測試
需要我幫你升級到 Flex Message 版本嗎?
進階功能(Phase 2)
Flex Message 升級
當用戶要求升級 Flex Message 時:
-
生成
LineMessages.gs,包含:- 歡迎訊息 Flex 模板
- 結果顯示 Flex 模板
- 按鈕選單模板
-
修改
Main.gs中的回覆邏輯
⚠️ 注意:Flex Message 在 GAS 中除錯困難,建議先確保純文字版本運作正常後再升級。
Vector Store 整合
如果 Skill 有 references/ 目錄:
- 建議用戶使用
scripts/upload-skills.js上傳知識庫到 OpenAI Vector Store - 取得
OPENAI_VECTOR_STORE_ID並填入 Script Properties - SkillCore 將自動使用 Responses API 進行 RAG
模板位置
所有模板檔案位於:
.agent/skills/skill-to-linebot/templates/
├── appsscript.json
├── Config.gs.template
├── LineBot.gs.template
├── Database.gs.template
├── OpenAI.gs.template
├── Main.gs.template
└── SkillCore.gs.template
常見問題
Q: Webhook 返回 404
A: 確認已部署為「網頁應用程式」,而非「API 執行檔」。
Q: LINE 沒有回應
A: 檢查 Script Properties 中的 LINE_CHANNEL_ACCESS_TOKEN 是否正確。
Q: OpenAI 錯誤
A: 確認 OPENAI_API_KEY 正確且有足夠額度。
Q: 如何除錯?
A: 在 GAS 中點擊「執行項目」>「執行記錄」查看 Logger 輸出。
版本資訊
- 版本:1.0
- 更新日期:2026年1月
- 特點:
- 純文字優先,穩定易除錯
- 模組化設計,通用模組無需修改
- 支援 OpenAI Chat Completions 和 Responses API
- 簡化的 Google Sheets 資料庫操作