ถ้าคุณอยากมี AI Agent ส่วนตัวที่คุยได้ผ่าน LINE โดยไม่ต้องพึ่ง no-code platform บทความนี้จะพาคุณทำตั้งแต่ต้นจนจบ เครื่องมือที่ใช้คือ Garudust — AI Agent framework เขียนด้วย Rust รองรับ OpenAI, Anthropic, Ollama, vLLM และ OpenAI-compatible endpoint ทุกเจ้า
สิ่งที่ต้องมี
- เซิร์ฟเวอร์ Linux หรือ macOS (หรือรันบน VPS ก็ได้)
- บัญชี LINE Developers (ฟรี) → developers.line.biz
- API Key จาก OpenAI, Anthropic, หรือ endpoint อื่นๆ
- ngrok (สำหรับ dev) หรือโดเมนจริง (สำหรับ production)
1. ติดตั้ง Garudust
วิธีที่ 1 — ดาวน์โหลด binary
ไปที่ Releases แล้วดาวน์โหลดไฟล์ที่ตรงกับระบบของคุณ เช่น:
# Linux x86_64
curl -LO https://github.com/garudust-org/garudust-agent/releases/latest/download/garudust-v0.3.1-x86_64-unknown-linux-musl.tar.gz
tar -xzf garudust-*.tar.gz
sudo mv garudust*/garudust garudust*/garudust-server /usr/local/bin/
วิธีที่ 2 — Build จาก source (ต้องมี Rust 1.87+)
git clone https://github.com/garudust-org/garudust-agent.git
cd garudust-agent
cargo build --release --bin garudust --bin garudust-server
sudo cp target/release/garudust target/release/garudust-server /usr/local/bin/
ตรวจสอบว่าติดตั้งสำเร็จ:
garudust --version
garudust-server --version
2. ตั้งค่า LINE Messaging API
- เข้าไปที่ LINE Developers Console
- สร้าง Provider ใหม่ (หรือใช้อันที่มีอยู่)
- สร้าง Channel ประเภท Messaging API
- ที่ tab Basic settings → คัดลอก Channel secret
- ที่ tab Messaging API → คลิก Issue เพื่อสร้าง Channel access token (long-lived)
- เปิด Use webhook → เปิด toggle ให้เป็น Enable
เก็บค่าสองอย่างนี้ไว้:
LINE_CHANNEL_SECRET
LINE_CHANNEL_ACCESS_TOKEN
3. รัน Setup Wizard
garudust setup
Wizard จะถามทีละขั้น:
? Select your LLM provider:
openai
anthropic
> ollama
custom
? Model name: claude-sonnet-4-6
? API Key (leave blank if not needed): sk-ant-...
? Enable LINE platform? Yes
? LINE Channel Secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
? LINE Channel Access Token: eyJhbGci...
Wizard จะสร้างไฟล์สองไฟล์:
-
~/.config/garudust/config.yaml— ตั้งค่าทั่วไป (provider, model, platform) -
~/.config/garudust/.env— API key (ไม่ commit ขึ้น git)
ดูค่าที่ตั้งไว้:
garudust config show
ปรับค่าเพิ่มเติมได้โดยตรง:
garudust config set platforms.line.port 3002
garudust config set platforms.line.webhook_path /webhooks/line
4. รัน garudust-server
garudust-server
ค่าเริ่มต้น: port 3000 สำหรับ API หลัก, port 3002 สำหรับ LINE webhook
ถ้าต้องการเปลี่ยน port หลัก:
garudust-server --port 8080
# หรือ
garudust config set server.port 8080
garudust-server
ดู log จะเห็นประมาณนี้:
INFO garudust_server: LINE webhook listening on 0.0.0.0:3002/webhooks/line
INFO garudust_server: API server listening on 0.0.0.0:3000
5. เปิด Webhook ด้วย ngrok (สำหรับ Dev)
LINE ต้องการ HTTPS เท่านั้น — ngrok จะสร้าง HTTPS URL ชั่วคราวให้
# ติดตั้ง ngrok ถ้ายังไม่มี
# https://ngrok.com/download
ngrok http 3002
ngrok จะแสดง URL เช่น:
Forwarding https://abc123.ngrok-free.app -> http://localhost:3002
URL webhook ของคุณจะเป็น:
https://abc123.ngrok-free.app/webhooks/line
6. ตั้งค่า Webhook URL ใน LINE Developers Console
- กลับไปที่ LINE Developers Console → Channel ของคุณ
- Tab Messaging API → ส่วน Webhook settings
- ใส่ URL:
https://abc123.ngrok-free.app/webhooks/line - คลิก Verify — ควรได้ "Success"
- เปิด Use webhook ให้เป็น Enable
ตอนนี้ลองส่งข้อความหา LINE Official Account ของคุณ — AI จะตอบกลับ!
7. ปรับแต่ง System Prompt
แก้ไฟล์ ~/.config/garudust/config.yaml:
provider: anthropic
model: claude-sonnet-4-6
system_prompt: |
คุณคือผู้ช่วย AI ชื่อ "น้องการุด" พูดภาษาไทย ตอบสั้นกระชับ
ช่วยงานด้านข้อมูล วิเคราะห์ข้อความ และตอบคำถามทั่วไป
ไม่ตอบเนื้อหาที่ไม่เหมาะสม
platforms:
line:
enabled: true
port: 3002
webhook_path: /webhooks/line
รีสตาร์ท garudust-server เพื่อโหลด config ใหม่ (หรือ hot-reload จะทำงานอัตโนมัติถ้าเปิดใช้)
8. เพิ่ม Cron Job (ทำงานอัตโนมัติ)
Garudust มีระบบ cron ในตัว — ตั้งค่าใน config:
cron:
memory_consolidation: "0 3 * * *" # รวบรวม memory ทุกคืน 03:00
memory_expiry: "0 4 * * 0" # ล้าง memory เก่าทุกอาทิตย์ 04:00
ปรับผ่าน CLI:
garudust config set cron.memory_consolidation "0 3 * * *"
9. Deploy จริง (Production ด้วย systemd + nginx)
ตั้งค่า nginx reverse proxy
# /etc/nginx/sites-available/garudust
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
location /webhooks/line {
proxy_pass http://127.0.0.1:3002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
}
}
sudo ln -s /etc/nginx/sites-available/garudust /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
ตั้งค่า systemd service
# /etc/systemd/system/garudust.service
[Unit]
Description=Garudust AI Agent Server
After=network.target
[Service]
Type=simple
User=ubuntu
ExecStart=/usr/local/bin/garudust-server
Restart=on-failure
RestartSec=5
EnvironmentFile=/home/ubuntu/.config/garudust/.env
WorkingDirectory=/home/ubuntu
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now garudust
sudo systemctl status garudust
ตอนนี้ webhook URL จริงของคุณคือ:
https://yourdomain.com/webhooks/line
ตั้งใน LINE Developers Console แล้วกด Verify — เสร็จสมบูรณ์!
สรุป
| ขั้นตอน | สิ่งที่ทำ |
|---|---|
garudust setup |
ตั้งค่า provider, model, LINE credentials |
garudust-server |
รัน API + webhook server |
| ngrok / nginx | เปิด HTTPS endpoint ให้ LINE เข้าถึงได้ |
| LINE Console | ตั้ง webhook URL + Verify |
config.yaml |
ปรับ system prompt, cron, platform |
Garudust รองรับ OpenAI, Anthropic, Ollama, vLLM และ OpenAI-compatible endpoint ทุกเจ้า — เปลี่ยน provider ได้แค่แก้ 2 บรรทัดใน config แล้วรีสตาร์ท
ถ้ามีคำถามหรือเจอปัญหา เปิด Issue บน GitHub ได้เลย หรือ comment ไว้ด้านล่างครับ
SOCIAL SHARE CARD GENERATOR