การสร้างผู้ช่วยส่วนตัวด้วย OpenClaw¶
OpenClaw คือ Gateway(เกตเวย์)ของ WhatsApp + Telegram + Discord + iMessage สำหรับเอเจนต์ Pi ปลั๊กอินสามารถเพิ่ม Mattermost ได้ คู่มือนี้คือการตั้งค่าแบบ "ผู้ช่วยส่วนตัว": ใช้หมายเลข WhatsApp เฉพาะหนึ่งหมายเลขที่ทำงานเหมือนเอเจนต์ที่พร้อมใช้งานตลอดเวลา ปลั๊กอินเพิ่ม Mattermost คู่มือนี้เป็นการตั้งค่าแบบ "ผู้ช่วยส่วนตัว": หมายเลข WhatsApp เฉพาะหนึ่งหมายเลขที่ทำงานเหมือนเอเจนต์ที่เปิดใช้งานตลอดเวลา
⚠️ ความปลอดภัยมาก่อน¶
คุณกำลังวางเอเจนต์ไว้ในตำแหน่งที่สามารถ:
- รันคำสั่งบนเครื่องของคุณได้(ขึ้นกับการตั้งค่าเครื่องมือ Pi)
- อ่าน/เขียนไฟล์ในเวิร์กสเปซของคุณ
- ส่งข้อความออกผ่าน WhatsApp/Telegram/Discord/Mattermost(ปลั๊กอิน)
เริ่มอย่างระมัดระวัง:
- ตั้งค่า
channels.whatsapp.allowFromเสมอ(อย่ารันแบบเปิดสู่สาธารณะบน Mac ส่วนตัวของคุณ) - ใช้หมายเลข WhatsApp เฉพาะสำหรับผู้ช่วย
- ขณะนี้ heartbeat ตั้งค่าเริ่มต้นเป็นทุก ๆ 30 นาที ฮาร์ตบีตตั้งค่าเริ่มต้นทุก 30 นาที ปิดไว้ก่อนจนกว่าจะเชื่อมั่นในการตั้งค่าโดยตั้งค่า
agents.defaults.heartbeat.every: "0m"
ข้อกำหนดก่อนเริ่มต้น¶
- ติดตั้งและออนบอร์ด OpenClaw แล้ว—ดู เริ่มต้นใช้งาน หากยังไม่ได้ทำ
- หมายเลขโทรศัพท์ที่สอง(SIM/eSIM/เติมเงิน)สำหรับผู้ช่วย
การตั้งค่าแบบสองโทรศัพท์(แนะนำ)¶
สิ่งที่คุณต้องการคือ:
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#000000',
'primaryBorderColor': '#000000',
'lineColor': '#000000',
'secondaryColor': '#f9f9fb',
'tertiaryColor': '#ffffff',
'clusterBkg': '#f9f9fb',
'clusterBorder': '#000000',
'nodeBorder': '#000000',
'mainBkg': '#ffffff',
'edgeLabelBackground': '#ffffff'
}
}}%%
flowchart TB
A["<b>Your Phone (personal)<br></b><br>Your WhatsApp<br>+1-555-YOU"] -- message --> B["<b>Second Phone (assistant)<br></b><br>Assistant WA<br>+1-555-ASSIST"]
B -- linked via QR --> C["<b>Your Mac (openclaw)<br></b><br>Pi agent"]
หากคุณเชื่อม WhatsApp ส่วนตัวเข้ากับ OpenClaw ทุกข้อความที่ส่งถึงคุณจะกลายเป็น “อินพุตของเอเจนต์” ซึ่งแทบไม่ใช่สิ่งที่ต้องการ ซึ่งนั่นแทบจะไม่ใช่สิ่งที่คุณต้องการ
เริ่มต้นอย่างรวดเร็วภายใน 5 นาที¶
- จับคู่ WhatsApp Web(แสดง QR; สแกนด้วยโทรศัพท์ของผู้ช่วย):
openclaw channels login
- เริ่ม Gateway(ปล่อยให้รันต่อเนื่อง):
openclaw gateway --port 18789
- ใส่คอนฟิกขั้นต่ำใน
~/.openclaw/openclaw.json:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
จากนั้นส่งข้อความไปยังหมายเลขผู้ช่วยจากโทรศัพท์ที่อยู่ใน allowlist ของคุณ
เมื่อการเริ่มต้นใช้งานเสร็จสิ้น เราจะเปิดแดชบอร์ดอัตโนมัติและพิมพ์ลิงก์ที่สะอาด (ไม่มี token) เมื่อการออนบอร์ดเสร็จ เราจะเปิดแดชบอร์ดอัตโนมัติและพิมพ์ลิงก์แบบสะอาด(ไม่ฝังโทเคน) หากมีการขอการยืนยันตัวตน ให้วางโทเคนจาก gateway.auth.token ลงใน Control UI settings หากต้องการเปิดอีกครั้งภายหลัง: openclaw dashboard. หากต้องการเปิดใหม่ภายหลัง: openclaw dashboard
ให้เวิร์กสเปซแก่เอเจนต์(AGENTS)¶
OpenClaw อ่านคำสั่งการทำงานและ “ความจำ” จากไดเรกทอรีเวิร์กสเปซของมัน
โดยค่าเริ่มต้น OpenClaw ใช้ ~/.openclaw/workspace เป็นเวิร์กสเปซของเอเจนต์ และจะสร้างมัน(พร้อมไฟล์เริ่มต้น AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) อัตโนมัติในขั้นตอนการตั้งค่าหรือการรันเอเจนต์ครั้งแรก BOOTSTRAP.md จะถูกสร้างเฉพาะเมื่อเวิร์กสเปซเป็นของใหม่จริงๆ(ไม่ควรถูกสร้างกลับมาอีกหลังจากคุณลบมัน) MEMORY.md เป็นตัวเลือกเสริม(ไม่ถูกสร้างอัตโนมัติ); เมื่อมีอยู่ จะถูกโหลดสำหรับเซสชันปกติ เซสชันของซับเอเจนต์จะฉีดเฉพาะ AGENTS.md และ TOOLS.md เท่านั้น BOOTSTRAP.md จะถูกสร้างขึ้นเฉพาะเมื่อ workspace เป็นของใหม่เอี่ยมเท่านั้น (ไม่ควรกลับมาอีกหลังจากที่คุณลบไปแล้ว) MEMORY.md เป็นตัวเลือก (ไม่ถูกสร้างอัตโนมัติ); เมื่อมีอยู่ จะถูกโหลดสำหรับเซสชันปกติ เซสชันของ subagent จะ inject เฉพาะ AGENTS.md และ TOOLS.md เท่านั้น
เคล็ดลับ: ปฏิบัติต่อโฟลเดอร์นี้เหมือน “ความจำ” ของ OpenClaw และทำให้เป็น git repo(ควรเป็นแบบส่วนตัว) เพื่อให้ไฟล์ AGENTS.md + ไฟล์ความจำได้รับการสำรอง หากติดตั้ง git แล้ว เวิร์กสเปซใหม่เอี่ยมจะถูกตั้งค่าเริ่มต้นอัตโนมัติ หากติดตั้ง git ไว้แล้ว workspace ใหม่เอี่ยมจะถูกตั้งค่าเริ่มต้นให้อัตโนมัติ
openclaw setup
โครงสร้างเวิร์กสเปซเต็มรูปแบบ + คู่มือสำรองข้อมูล: Agent workspace เวิร์กโฟลว์ความจำ: Memory
ตัวเลือกเสริม: เลือกเวิร์กสเปซอื่นด้วย agents.defaults.workspace(รองรับ ~).
{
agent: {
workspace: "~/.openclaw/workspace",
},
}
หากคุณมีไฟล์เวิร์กสเปซของตัวเองจาก repo อยู่แล้ว คุณสามารถปิดการสร้างไฟล์เริ่มต้นทั้งหมดได้:
{
agent: {
skipBootstrap: true,
},
}
คอนฟิกที่ทำให้มันเป็น “ผู้ช่วย”¶
ค่าเริ่มต้นของ OpenClaw เป็นการตั้งค่าผู้ช่วยที่ดีอยู่แล้ว แต่โดยทั่วไปคุณจะต้องปรับ:
- persona/คำสั่งใน
SOUL.md - ค่าเริ่มต้นด้านการคิด(หากต้องการ)
- ฮาร์ตบีต(เมื่อคุณเชื่อถือได้แล้ว)
ตัวอย่าง:
{
logging: { level: "info" },
agent: {
model: "anthropic/claude-opus-4-6",
workspace: "~/.openclaw/workspace",
thinkingDefault: "high",
timeoutSeconds: 1800,
// Start with 0; enable later.
heartbeat: { every: "0m" },
},
channels: {
whatsapp: {
allowFrom: ["+15555550123"],
groups: {
"*": { requireMention: true },
},
},
},
routing: {
groupChat: {
mentionPatterns: ["@openclaw", "openclaw"],
},
},
session: {
scope: "per-sender",
resetTriggers: ["/new", "/reset"],
reset: {
mode: "daily",
atHour: 4,
idleMinutes: 10080,
},
},
}
เซสชันและความจำ¶
- ไฟล์เซสชัน:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - เมทาดาทาของเซสชัน(การใช้โทเคน เส้นทางล่าสุด ฯลฯ):
~/.openclaw/agents/<agentId>/sessions/sessions.json(เดิม:~/.openclaw/sessions/sessions.json) /newหรือ/resetจะเริ่มเซสชันใหม่สำหรับแชตนั้น(กำหนดค่าได้ผ่านresetTriggers). หากส่งเพียงอย่างเดียว เอเจนต์จะตอบทักทายสั้นๆเพื่อยืนยันการรีเซ็ต/compact [instructions]จะย่อบริบทของเซสชันและรายงานงบประมาณบริบทที่เหลือ
ฮาร์ตบีต(โหมดเชิงรุก)¶
โดยค่าเริ่มต้น OpenClaw จะรันฮาร์ตบีตทุก 30 นาทีด้วยพรอมป์ต์:
Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.
ตั้งค่า agents.defaults.heartbeat.every: "0m" เพื่อปิดใช้งาน
- หาก
HEARTBEAT.mdมีอยู่แต่แทบว่างเปล่า(มีเพียงบรรทัดว่างและหัวข้อมาร์กดาวน์เช่น# Heading), OpenClaw จะข้ามการรันฮาร์ตบีตเพื่อประหยัดการเรียก API - หากไฟล์หายไป ฮาร์ตบีตยังคงรันและโมเดลจะตัดสินใจว่าจะทำอะไร
- หากเอเจนต์ตอบด้วย
HEARTBEAT_OK(อาจมีข้อความเติมสั้นๆ; ดูagents.defaults.heartbeat.ackMaxChars), OpenClaw จะระงับการส่งออกสำหรับฮาร์ตบีตนั้น - ฮาร์ตบีตรันเป็นเทิร์นของเอเจนต์แบบเต็ม—ช่วงเวลาที่สั้นลงจะใช้โทเคนมากขึ้น
{
agent: {
heartbeat: { every: "30m" },
},
}
สื่อเข้าและออก¶
ไฟล์แนบขาเข้า(ภาพ/เสียง/เอกสาร)สามารถถูกส่งต่อให้คำสั่งของคุณผ่านเทมเพลต:
{{MediaPath}}(พาธไฟล์ชั่วคราวในเครื่อง){{MediaUrl}}(pseudo-URL){{Transcript}}(หากเปิดใช้งานการถอดเสียง)
ไฟล์แนบขาออกจากเอเจนต์: ใส่ MEDIA:<path-or-url> ไว้ในบรรทัดของมันเอง(ไม่มีเว้นวรรค) ตัวอย่าง: ตัวอย่าง:
Here’s the screenshot.
MEDIA:https://example.com/screenshot.png
OpenClaw จะดึงสิ่งเหล่านี้ออกมาและส่งเป็นสื่อควบคู่ไปกับข้อความ
เช็กลิสต์การปฏิบัติการ¶
openclaw status # local status (creds, sessions, queued events)
openclaw status --all # full diagnosis (read-only, pasteable)
openclaw status --deep # adds gateway health probes (Telegram + Discord)
openclaw health --json # gateway health snapshot (WS)
บันทึกล็อกอยู่ที่ /tmp/openclaw/(ค่าเริ่มต้น: openclaw-YYYY-MM-DD.log).
ขั้นตอนถัดไป¶
- WebChat: WebChat
- การปฏิบัติการ Gateway: Gateway runbook
- Cron + การปลุก: Cron jobs
- แอปคู่หูแถบเมนู macOS: OpenClaw macOS app
- แอปโหนด iOS: iOS app
- แอปโหนด Android: Android app
- สถานะ Windows: Windows (WSL2)
- สถานะ Linux: Linux app
- ความปลอดภัย: Security