สถานะ: Plugin ที่บันเดิลมาให้แบบไม่บังคับ (ปิดใช้งานโดยค่าเริ่มต้นจนกว่าจะกำหนดค่า) Nostr เป็นโปรโตคอลแบบกระจายศูนย์สำหรับเครือข่ายสังคม ช่องทางนี้ทำให้ OpenClaw รับและตอบกลับข้อความโดยตรง (DMs) ที่เข้ารหัสผ่าน NIP-04 ได้Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Plugin ที่บันเดิลมา
รุ่น OpenClaw ปัจจุบันจัดส่ง Nostr เป็น Plugin ที่บันเดิลมาให้ ดังนั้นบิลด์แบบแพ็กเกจปกติจึงไม่ต้องติดตั้งแยกต่างหากการติดตั้งรุ่นเก่าหรือแบบกำหนดเอง
- Onboarding (
openclaw onboard) และopenclaw channels addยังคงแสดง Nostr จากแคตตาล็อกช่องทางที่ใช้ร่วมกัน - หากบิลด์ของคุณไม่รวม Nostr ที่บันเดิลมา ให้ติดตั้งแพ็กเกจ npm โดยตรง
การตั้งค่าแบบไม่โต้ตอบ
--use-env เพื่อเก็บ NOSTR_PRIVATE_KEY ไว้ในสภาพแวดล้อมแทนการจัดเก็บคีย์ใน config
การตั้งค่าอย่างรวดเร็ว
- สร้างคู่คีย์ Nostr (หากจำเป็น):
- เพิ่มลงใน config:
- ส่งออกคีย์:
- รีสตาร์ต Gateway
ข้อมูลอ้างอิงการกำหนดค่า
| คีย์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
privateKey | string | จำเป็น | คีย์ส่วนตัวในรูปแบบ nsec หรือ hex |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | URL ของรีเลย์ (WebSocket) |
dmPolicy | string | pairing | นโยบายการเข้าถึง DM |
allowFrom | string[] | [] | pubkey ของผู้ส่งที่อนุญาต |
enabled | boolean | true | เปิด/ปิดใช้งานช่องทาง |
name | string | - | ชื่อที่แสดง |
profile | object | - | เมทาดาทาโปรไฟล์ NIP-01 |
เมทาดาทาโปรไฟล์
ข้อมูลโปรไฟล์ถูกเผยแพร่เป็นอีเวนต์ NIP-01kind:0 คุณสามารถจัดการได้จาก Control UI (Channels -> Nostr -> Profile) หรือตั้งค่าโดยตรงใน config
ตัวอย่าง:
- URL โปรไฟล์ต้องใช้
https:// - การนำเข้าจากรีเลย์จะผสานฟิลด์และคงการแทนที่ในเครื่องไว้
การควบคุมการเข้าถึง
นโยบาย DM
- pairing (ค่าเริ่มต้น): ผู้ส่งที่ไม่รู้จักจะได้รับโค้ดจับคู่
- allowlist: เฉพาะ pubkey ใน
allowFromเท่านั้นที่ส่ง DM ได้ - open: DM ขาเข้าสาธารณะ (ต้องใช้
allowFrom: ["*"]) - disabled: ไม่สนใจ DM ขาเข้า
- ลายเซ็นอีเวนต์ขาเข้าจะถูกตรวจสอบก่อนนโยบายผู้ส่งและการถอดรหัส NIP-04 ดังนั้นอีเวนต์ปลอมจะถูกปฏิเสธตั้งแต่ต้น
- การตอบกลับการจับคู่จะถูกส่งโดยไม่ประมวลผลเนื้อหา DM เดิม
- DM ขาเข้าถูกจำกัดอัตรา และเพย์โหลดที่มีขนาดใหญ่เกินไปจะถูกทิ้งก่อนถอดรหัส
ตัวอย่าง allowlist
รูปแบบคีย์
รูปแบบที่ยอมรับ:- คีย์ส่วนตัว:
nsec...หรือ hex 64 อักขระ - Pubkeys (
allowFrom):npub...หรือ hex
รีเลย์
ค่าเริ่มต้น:relay.damus.io และ nos.lol
- ใช้รีเลย์ 2-3 รายการเพื่อความซ้ำซ้อน
- หลีกเลี่ยงการใช้รีเลย์มากเกินไป (เวลาแฝง, การซ้ำซ้อน)
- รีเลย์แบบชำระเงินสามารถเพิ่มความน่าเชื่อถือได้
- รีเลย์ในเครื่องใช้ทดสอบได้ (
ws://localhost:7777)
การรองรับโปรโตคอล
| NIP | สถานะ | คำอธิบาย |
|---|---|---|
| NIP-01 | รองรับ | รูปแบบอีเวนต์พื้นฐาน + เมทาดาทาโปรไฟล์ |
| NIP-04 | รองรับ | DM ที่เข้ารหัส (kind:4) |
| NIP-17 | วางแผนไว้ | DM แบบ gift-wrapped |
| NIP-44 | วางแผนไว้ | การเข้ารหัสแบบมีเวอร์ชัน |
การทดสอบ
รีเลย์ในเครื่อง
การทดสอบด้วยตนเอง
- จด pubkey (npub) ของบอทจากบันทึก
- เปิดไคลเอนต์ Nostr (Damus, Amethyst ฯลฯ)
- ส่ง DM ไปยัง pubkey ของบอท
- ตรวจสอบการตอบกลับ
การแก้ไขปัญหา
ไม่ได้รับข้อความ
- ตรวจสอบว่าคีย์ส่วนตัวถูกต้อง
- ตรวจสอบให้แน่ใจว่า URL รีเลย์เข้าถึงได้และใช้
wss://(หรือws://สำหรับในเครื่อง) - ยืนยันว่า
enabledไม่ใช่false - ตรวจสอบบันทึก Gateway สำหรับข้อผิดพลาดการเชื่อมต่อรีเลย์
ไม่ส่งการตอบกลับ
- ตรวจสอบว่ารีเลย์ยอมรับการเขียน
- ตรวจสอบการเชื่อมต่อขาออก
- เฝ้าดูขีดจำกัดอัตราของรีเลย์
การตอบกลับซ้ำ
- เป็นสิ่งที่คาดได้เมื่อใช้รีเลย์หลายรายการ
- ข้อความจะถูกขจัดรายการซ้ำด้วย ID อีเวนต์ เฉพาะการส่งมอบครั้งแรกเท่านั้นที่กระตุ้นการตอบกลับ
ความปลอดภัย
- อย่า commit คีย์ส่วนตัว
- ใช้ตัวแปรสภาพแวดล้อมสำหรับคีย์
- พิจารณาใช้
allowlistสำหรับบอทในการใช้งานจริง - ลายเซ็นจะถูกตรวจสอบก่อนนโยบายผู้ส่ง และนโยบายผู้ส่งจะถูกบังคับใช้ก่อนถอดรหัส ดังนั้นอีเวนต์ปลอมจะถูกปฏิเสธตั้งแต่ต้น และผู้ส่งที่ไม่รู้จักไม่สามารถบังคับให้ทำงานเข้ารหัสเต็มรูปแบบได้
ข้อจำกัด (MVP)
- เฉพาะข้อความโดยตรงเท่านั้น (ไม่มีแชทกลุ่ม)
- ไม่มีไฟล์แนบสื่อ
- เฉพาะ NIP-04 เท่านั้น (วางแผน NIP-17 gift-wrap ไว้)
ที่เกี่ยวข้อง
- ภาพรวมช่องทาง — ช่องทางที่รองรับทั้งหมด
- การจับคู่ — การยืนยันตัวตน DM และโฟลว์การจับคู่
- กลุ่ม — พฤติกรรมแชทกลุ่มและการควบคุมด้วยการกล่าวถึง
- การกำหนดเส้นทางช่องทาง — การกำหนดเส้นทางเซสชันสำหรับข้อความ
- ความปลอดภัย — โมเดลการเข้าถึงและการเสริมความแข็งแกร่ง