Developer and self-hosted
Tlon
Tlon, Urbit पर निर्मित एक विकेंद्रीकृत मैसेंजर है। OpenClaw आपके Urbit शिप से कनेक्ट होता है और DM तथा समूह चैट संदेशों का उत्तर देता है। समूह में उत्तर देने के लिए डिफ़ॉल्ट रूप से @ उल्लेख आवश्यक है, जिसके ऊपर प्राधिकरण नियम और स्वामी-अनुमोदन प्रवाह लागू होते हैं।
स्थिति: बंडल किया गया Plugin। DM, समूह उल्लेख, थ्रेड, रिच टेक्स्ट, छवि अपलोड/डाउनलोड और स्वामी अनुमोदन प्रणाली समर्थित हैं। प्रतिक्रियाएँ और पोल समर्थित नहीं हैं।
बंडल किया गया Plugin
Tlon वर्तमान OpenClaw रिलीज़ में बंडल होकर आता है; पैकेज किए गए बिल्ड के लिए अलग इंस्टॉलेशन आवश्यक नहीं है।
किसी पुराने बिल्ड या इसे बाहर रखने वाले कस्टम इंस्टॉलेशन में, npm से इंस्टॉल करें:
openclaw plugins install @openclaw/tlonवर्तमान रिलीज़ टैग को ट्रैक करने के लिए केवल पैकेज नाम का उपयोग करें। संस्करण (@openclaw/tlon@x.y.z)
केवल पुनरुत्पाद्य इंस्टॉलेशन के लिए पिन करें।
स्थानीय चेकआउट से:
openclaw plugins install ./path/to/local/tlon-pluginविवरण: Plugins
सेटअप
openclaw channels add --channel tlon --ship ~sampel-palnet --url https://your-ship-host --code lidlut-tabwed-pillex-ridrupया सीधे कॉन्फ़िग संपादित करें:
{ channels: { tlon: { enabled: true, ship: "~sampel-palnet", url: "https://your-ship-host", code: "lidlut-tabwed-pillex-ridrup", ownerShip: "~your-main-ship", // अनुशंसित: आपका शिप, हमेशा प्राधिकृत }, },}कॉन्फ़िग सीधे संपादित करने के बाद Gateway को पुनः आरंभ करें। फिर बॉट को DM भेजें या समूह चैनल में उसका @ उल्लेख करें।
इनबाउंड स्थायित्व
OpenClaw, एजेंट को भेजने से पहले स्वीकार किए गए Tlon DM और समूह-चैट इवेंट सहेजता है। लंबित या पुनः प्रयास योग्य टर्न Gateway के पुनः आरंभ होने के बाद भी बने रहते हैं और कार्य प्रत्येक समूह चैनल या प्रत्यक्ष सहकर्मी के लिए क्रमबद्ध रहता है। स्थिर Urbit संदेश ID भी किसी पुनः वितरित इवेंट को तब तक रोकते हैं, जब तक उसका कतार रिकॉर्ड या संरक्षित पूर्णता रिकॉर्ड मौजूद है।
कतार-से-एजेंट सीमा पर डिलीवरी कम-से-कम-एक-बार होती है: हैंडऑफ़ के दौरान क्रैश होने पर कोई टर्न फिर चल सकता है। इसलिए बाहरी दुष्प्रभाव उत्पन्न करने वाली एजेंट कार्रवाइयों को जहाँ व्यावहारिक हो, पुनरावृत्ति-सुरक्षित रखना चाहिए।
निजी/LAN शिप
OpenClaw डिफ़ॉल्ट रूप से SSRF सुरक्षा के लिए निजी/आंतरिक होस्टनाम और IP श्रेणियों को ब्लॉक करता है। यदि आपका शिप किसी निजी नेटवर्क (localhost, LAN IP, आंतरिक होस्टनाम) पर चलता है, तो स्पष्ट रूप से अनुमति दें:
{ channels: { tlon: { url: "http://localhost:8080", network: { dangerouslyAllowPrivateNetwork: true, }, }, },}यह http://localhost:8080, http://192.168.x.x:8080 और
http://my-ship.local:8080 जैसे लक्ष्यों पर लागू होता है। इसे केवल किसी विश्वसनीय शिप URL के लिए सक्षम करें; यह उस खाते के HTTP अनुरोधों के लिए
SSRF सुरक्षा अक्षम कर देता है।
समूह चैनल
चैनलों को मैन्युअल रूप से पिन करें या स्वतः खोज चालू करें:
{ channels: { tlon: { groupChannels: ["chat/~host-ship/general", "chat/~host-ship/support"], autoDiscoverChannels: true, }, },}कॉन्फ़िग में सेट न होने पर autoDiscoverChannels का डिफ़ॉल्ट false होता है; सेटअप विज़ार्ड
प्रॉम्प्ट को हाँ पर डिफ़ॉल्ट करता है और स्पष्ट रूप से true लिखता है। इसके चालू होने पर OpenClaw स्टार्टअप के समय शामिल समूहों को स्क्राई करता है,
समूह आमंत्रण स्वीकार किए जाने पर नए चैनलों पर नज़र रखता है और प्रत्येक 2 मिनट में दोबारा जाँच करता है।
अभिगम नियंत्रण
DM अनुमति-सूची (खाली = प्रेषक के ownerShip होने के अलावा किसी DM की अनुमति नहीं):
{ channels: { tlon: { dmAllowlist: ["~zod", "~nec"], }, },}समूह प्राधिकरण का डिफ़ॉल्ट प्रत्येक चैनल के लिए restricted है। आधार-रेखा के लिए defaultAuthorizedShips सेट करें
और प्रत्येक चैनल नेस्ट के अनुसार ओवरराइड करें:
{ channels: { tlon: { defaultAuthorizedShips: ["~zod"], authorization: { channelRules: { "chat/~host-ship/general": { mode: "restricted", allowedShips: ["~zod", "~nec"], }, "chat/~host-ship/announcements": { mode: "open", }, }, }, }, },}बॉट द्वारा किसी थ्रेड में उत्तर दिए जाने के बाद, वह उस थ्रेड के बाद के संदेशों का उत्तर दूसरे उल्लेख की आवश्यकता के बिना देता रहता है।
उन फ़ॉलो-अप के लिए नया स्पष्ट उल्लेख आवश्यक बनाने हेतु channels.tlon.implicitMentions.threadParticipation: false सेट करें।
खाता ओवरराइड channels.tlon.accounts.<id>.implicitMentions का उपयोग करते हैं। Tlon वर्तमान में
replyToBot या quotedBot तथ्य उत्पन्न नहीं करता, इसलिए इन फ़्लैग का यहाँ कोई प्रभाव नहीं पड़ता।
स्वामी और अनुमोदन प्रणाली
{ channels: { tlon: { ownerShip: "~your-main-ship", }, },}स्वामी शिप हर जगह प्राधिकृत होता है: DM आमंत्रण हमेशा स्वतः स्वीकार किए जाते हैं, समूह आमंत्रण
हमेशा स्वतः स्वीकार किए जाते हैं और चैनल संदेश हमेशा प्राधिकरण पार करते हैं। स्वामी का
dmAllowlist, defaultAuthorizedShips या groupInviteAllowlist में होना आवश्यक नहीं है।
जब ownerShip सेट हो, तो अनधिकृत अनुरोध केवल छोड़े नहीं जाते—वे लंबित
अनुमोदन की कतार बनाते हैं और स्वामी को DM भेजते हैं:
dmAllowlistमें न आने वाले शिप से DM अनुरोध- उन चैनलों में उल्लेख, जहाँ प्रेषक प्राधिकरण में विफल रहता है
groupInviteAllowlistमें न आने वाले शिप से समूह आमंत्रण (जब स्वतः स्वीकार बंद हो, या चालू हो लेकिन आमंत्रक अनुमति-सूची में न हो)
किसी अनुरोध पर कार्रवाई करने के लिए स्वामी DM में उत्तर देता है:
| स्वामी का उत्तर | प्रभाव |
|---|---|
approve / deny / block |
सबसे हाल के लंबित अनुमोदन पर कार्रवाई करता है |
approve <id> / deny <id> |
ID द्वारा किसी विशिष्ट अनुमोदन पर कार्रवाई करता है |
block |
शिप को मूल रूप से ब्लॉक भी करता है, ताकि वह पुनः कनेक्ट न कर सके |
unblock ~ship |
मूल ब्लॉक को उलटता है |
blocked |
वर्तमान में ब्लॉक किए गए शिप सूचीबद्ध करता है |
pending |
लंबित अनुमोदन अनुरोध सूचीबद्ध करता है |
ownerShip कॉन्फ़िगर न होने पर अनधिकृत DM और चैनल उल्लेख केवल छोड़ दिए जाते और लॉग किए जाते हैं;
कोई अनुमोदन प्रॉम्प्ट नहीं होता।
स्वतः स्वीकार सेटिंग
पहले से dmAllowlist में मौजूद शिप से DM आमंत्रण स्वतः स्वीकार करें (इस फ़्लैग की परवाह किए बिना स्वामी
हमेशा स्वतः स्वीकार किया जाता है):
{ channels: { tlon: { autoAcceptDmInvites: true, }, },}अनुमति-सूची से समूह आमंत्रण स्वतः स्वीकार करें (सुरक्षित रूप से विफल: autoAcceptGroupInvites: true और
खाली groupInviteAllowlist के साथ, स्वामी के अलावा कोई आमंत्रण स्वीकार नहीं किया जाता):
{ channels: { tlon: { autoAcceptGroupInvites: true, groupInviteAllowlist: ["~zod"], }, },}Urbit सेटिंग स्टोर के माध्यम से हॉट-रीलोड
ऊपर दी गई अधिकांश सेटिंग (dmAllowlist, groupInviteAllowlist, groupChannels,
defaultAuthorizedShips, autoDiscoverChannels, autoAcceptDmInvites,
autoAcceptGroupInvites, ownerShip, showModelSignature) पहली बार चलाने पर शिप के
%settings एजेंट (डेस्क moltbot, बकेट tlon) में प्रतिबिंबित होती हैं और फिर वहीं से लाइव पढ़ी जाती हैं,
इसलिए Landscape क्लाइंट या बंडल किए गए skill के सेटिंग कमांड द्वारा किए गए परिवर्तन
Gateway पुनः आरंभ किए बिना लागू हो जाते हैं। channelRules और लंबित अनुमोदन भी वहाँ JSON के रूप में सहेजे जाते हैं। सेटिंग स्टोर में कभी न लिखे गए मानों के लिए
फ़ाइल कॉन्फ़िग सत्य का स्रोत बना रहता है।
डिलीवरी लक्ष्य (CLI/cron)
openclaw message send या cron डिलीवरी के साथ उपयोग करें:
- DM:
~sampel-palnetयाdm/~sampel-palnet - समूह:
chat/~host-ship/channelयाgroup:~host-ship/channel
बंडल किया गया skill
Plugin प्रत्यक्ष Urbit कार्रवाइयों के लिए एक CLI @tloncorp/tlon-skill बंडल करता है,
जो Plugin इंस्टॉल होते ही स्वतः उपलब्ध होता है:
- गतिविधि: उल्लेख, उत्तर, अपठित
- चैनल: सूचीबद्ध करना, बनाना, नाम बदलना
- संपर्क: प्रोफ़ाइल सूचीबद्ध करना/पाना/अपडेट करना
- समूह: बनाना, शामिल होना, आमंत्रण/अनुरोध प्रवाह, भूमिकाएँ
- हुक: चैनल हुक प्रबंधित करना
- संदेश: इतिहास, खोज
- DM: भेजना, प्रतिक्रिया देना, स्वीकार/अस्वीकार करना
- पोस्ट: प्रतिक्रिया देना, हटाना
- नोटबुक: डायरी चैनलों पर पोस्ट करना
- सेटिंग: ऊपर दिए गए सेटिंग स्टोर के माध्यम से Plugin कॉन्फ़िग को हॉट-रीलोड करना
क्षमताएँ
| सुविधा | स्थिति |
|---|---|
| प्रत्यक्ष संदेश | समर्थित |
| समूह/चैनल | समर्थित (डिफ़ॉल्ट रूप से उल्लेख-नियंत्रित) |
| थ्रेड | समर्थित (एक बार शामिल होने के बाद उत्तर देता रहता है) |
| रिच टेक्स्ट | Markdown को Tlon के मूल प्रारूप में बदला जाता है |
| छवियाँ | इनबाउंड पर डाउनलोड, आउटबाउंड पर अपलोड |
| प्रतिक्रियाएँ | केवल बंडल किए गए skill के माध्यम से |
| पोल | समर्थित नहीं |
| मूल कमांड | डिफ़ॉल्ट रूप से केवल स्वामी के लिए |
समस्या निवारण
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctorसामान्य विफलताएँ:
- DM अनदेखे किए गए: प्रेषक
dmAllowlistमें नहीं है और अनुमोदन प्रवाह के लिए कोईownerShipकॉन्फ़िगर नहीं है। - समूह संदेश अनदेखे किए गए: चैनल खोजा/पिन नहीं किया गया, या प्रेषक प्राधिकरण में विफल रहता है और अनुमोदन को कतार में रखने के लिए कोई
ownerShipनहीं है। - कनेक्शन त्रुटियाँ: जाँचें कि शिप URL पहुँच योग्य है; स्थानीय शिप के लिए
network.dangerouslyAllowPrivateNetworkसेट करें। - प्रमाणीकरण त्रुटियाँ: लॉगिन कोड बदलते रहते हैं—अपने शिप से वर्तमान कोड कॉपी करें।
कॉन्फ़िगरेशन संदर्भ
पूरा कॉन्फ़िगरेशन: कॉन्फ़िगरेशन
| कुंजी | अर्थ |
|---|---|
channels.tlon.enabled |
चैनल स्टार्टअप सक्षम/अक्षम करें। |
channels.tlon.ship |
बॉट का Urbit शिप नाम (उदा. ~sampel-palnet)। |
channels.tlon.url |
शिप URL (उदा. https://sampel-palnet.tlon.network)। |
channels.tlon.code |
शिप लॉगिन कोड। |
channels.tlon.network.dangerouslyAllowPrivateNetwork |
localhost/LAN शिप URL की अनुमति दें (SSRF ऑप्ट-इन)। |
channels.tlon.ownerShip |
स्वामी शिप: हमेशा प्राधिकृत, अनुमोदन अनुरोध प्राप्त करता है। |
channels.tlon.dmAllowlist |
DM भेज सकने वाले शिप (खाली = स्वामी के अलावा कोई नहीं)। |
channels.tlon.autoAcceptDmInvites |
dmAllowlist में मौजूद शिप से DM स्वतः स्वीकार करें। |
channels.tlon.autoAcceptGroupInvites |
groupInviteAllowlist से समूह आमंत्रण स्वतः स्वीकार करें। |
channels.tlon.groupInviteAllowlist |
वे शिप जिनके समूह आमंत्रण स्वतः स्वीकार किए जाते हैं। |
channels.tlon.autoDiscoverChannels |
शामिल समूह चैनल स्वतः खोजें (डिफ़ॉल्ट: false)। |
channels.tlon.implicitMentions.threadParticipation |
भाग लिए गए थ्रेड के फ़ॉलो-अप को उल्लेख नियंत्रण बायपास करने दें। |
channels.tlon.groupChannels |
मैन्युअल रूप से पिन किए गए चैनल नेस्ट। |
channels.tlon.defaultAuthorizedShips |
सभी चैनलों के लिए प्राधिकृत शिप (कोई नियम मेल न खाने पर उपयोग किए जाते हैं)। |
channels.tlon.authorization.channelRules |
प्रत्येक चैनल नेस्ट के लिए प्रमाणीकरण मोड + अनुमति-सूची। |
channels.tlon.showModelSignature |
उत्तरों में _[Generated by <model>]_ जोड़ें। |
channels.tlon.responsePrefix |
आउटबाउंड उत्तरों से पहले जोड़ा जाने वाला स्थिर उपसर्ग। |
channels.tlon.accounts.<id> |
अतिरिक्त नामित खाते (बहु-शिप सेटअप)। |
टिप्पणियाँ
- समूह में उत्तर देने के लिए @ उल्लेख (जैसे
~your-bot-ship) आवश्यक है, जब तक कि बॉट पहले से उस थ्रेड में शामिल न हो। - थ्रेड के उत्तर उसी थ्रेड में पहुँचते हैं; बॉट को एजेंट के लिए थ्रेड संदर्भ के अंतिम 10 संदेश भी पहले जोड़कर मिलते हैं।
- रिच टेक्स्ट (बोल्ड, इटैलिक, कोड, शीर्षक, सूचियाँ) Tlon के मूल प्रारूप में बदल जाता है।
- चैनल सारांश माँगने वाला इनबाउंड संदेश भेजने पर (उदाहरण के लिए, "इस चैनल का सारांश दें") सामान्य उत्तर प्रवाह के बजाय अंतर्निहित इतिहास सारांशीकरण शुरू हो जाता है।
संबंधित
- चैनलों का अवलोकन — सभी समर्थित चैनल
- पेयरिंग — DM प्रमाणीकरण और पेयरिंग प्रवाह
- समूह — समूह चैट का व्यवहार और उल्लेख नियंत्रण
- चैनल रूटिंग — संदेशों के लिए सत्र रूटिंग
- सुरक्षा — अभिगम मॉडल और सुदृढ़ीकरण