skill-to-linebot
npx skills add https://github.com/wolke/skill-to-linebot --skill skill-to-linebot
Agent 安装分布
Skill 文档
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 è³æåº«æä½