OpenClaw๋ฅผ ํ…”๋ ˆ๊ทธ๋žจ ๊ทธ๋ฃน์— ์ดˆ๋Œ€ํ•ด ํŒ€์ฒ˜๋Ÿผ ํ•จ๊ป˜ ์ผํ•˜๋ ค๋ฉด, ์„œ๋ฒ„ ์ •์ฑ… ์ ์šฉ โ†’ BotFather ๊ถŒํ•œ/ํ”„๋ผ์ด๋ฒ„์‹œ ์„ค์ • โ†’ ๊ทธ๋ฃน ์žฌ์ดˆ๋Œ€/๊ฒ€์ฆ ์ˆœ์„œ๋กœ ์„ธํŒ…ํ•˜๋Š” ๊ฒŒ ๊ฐ€์žฅ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ์‹ค๋ฌด์—์„œ ๋ฐ”๋กœ ์“ฐ๋Š” ๊ธฐ์ค€์œผ๋กœ, ์„œ๋ฒ„ ์ชฝ ๋ณ€๊ฒฝ๊ณผ ํ…”๋ ˆ๊ทธ๋žจ ์ชฝ ์„ค์ •์„ ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋‚ด: ๋ณธ๋ฌธ์€ ์ƒ์„ฑํ˜• AI๋ฅผ ํ™œ์šฉํ•ด ์ž‘์„ฑยท์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

flowchart LR
A[๊ธฐ์กด ๋ด‡ ํ™•์ธ/ํ† ํฐ ์ค€๋น„] --> B[์„œ๋ฒ„ ์„ค์ • ๋ฐ˜์˜]
B --> C[hot reload ๋กœ๊ทธ ํ™•์ธ]
C --> D[BotFather ๊ถŒํ•œ/ํ”„๋ผ์ด๋ฒ„์‹œ ์„ค์ •]
D --> E[๊ทธ๋ฃน์—์„œ ๋ด‡ ์žฌ์ดˆ๋Œ€]
E --> F[๋ฉ˜์…˜/์Šฌ๋ž˜์‹œ ํ…Œ์ŠคํŠธ]
F --> G[๋ณด์•ˆ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๊ณ ์ •]

1) ์‹œ์ž‘ ์ „์—: ๋ชฉํ‘œ๋ฅผ ๋จผ์ € ์ •ํ•˜๊ธฐ

๋จผ์ € โ€œ์ด ๊ทธ๋ฃน์—์„œ OpenClaw๊ฐ€ ์–ด๋””๊นŒ์ง€ ๋ฐ˜์‘ํ• ์ง€โ€๋ฅผ ์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ถŒ์žฅ ๊ธฐ๋ณธ๊ฐ’(์•ˆ์ „ ์šฐ์„ )
    • ๊ทธ๋ฃน์—์„œ ๋ด‡ ํ˜ธ์ถœ ์‹œ์—๋งŒ ๋ฐ˜์‘ (requireMention: true)
    • DM์€ ์Šน์ธ์ œ (dmPolicy: pairing)
    • ๊ทธ๋ฃน ๋ฐœํ™”์ž๋Š” ์ œํ•œ (groupPolicy: allowlist)
  • ์ ๊ฒ€/๋ณต๊ตฌ ๋ชจ๋“œ(์ž ์‹œ ์™„ํ™”)
    • ํŠน์ • ๊ทธ๋ฃน์—์„œ ๋ฉ˜์…˜ ์—†์ด ๋ฐ˜์‘ (requireMention: false)
    • ํŠน์ • ๊ทธ๋ฃน์—์„œ ์˜คํ”ˆ (groupPolicy: open)

ํ•ต์‹ฌ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ ๊ฒ€ํ•  ๋•Œ๋งŒ ์—ด๊ณ , ์ •์ƒํ™”๋˜๋ฉด ๋‹ค์‹œ ์ขํžˆ์„ธ์š”.

2) 15๋ถ„ ์„ธํŒ…: ์„œ๋ฒ„ + BotFather + ๊ทธ๋ฃน ๊ฒ€์ฆ

Step A. ์ƒˆ ๋ด‡ ์ƒ์„ฑ์€ โ€œํ•„์ˆ˜ ์•„๋‹˜โ€ (๊ธฐ์กด ๋ด‡ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

์ด๋ฏธ ์šด์˜ ์ค‘์ธ ๋ด‡์ด ์žˆ์œผ๋ฉด ๊ทธ ๋ด‡์„ ๊ทธ๋Œ€๋กœ ๊ทธ๋ฃน์— ์ดˆ๋Œ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ตณ์ด ์ƒˆ ๋ด‡์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ์กด ๋ด‡ ํ™•์ธ: @BotFather โ†’ /mybots โ†’ ๋ด‡ ์„ ํƒ
  • ํ† ํฐ ์žฌ๋ฐœ๊ธ‰/ํ™•์ธ: /token
  • ์ƒˆ ๋ด‡์€ ์ •๋ง ํ•„์š”ํ•  ๋•Œ๋งŒ /newbot

ํ† ํฐ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฑ„ํŒ…๋ฐฉ/๋ฌธ์„œ/๊นƒ์— ์˜ฌ๋ฆฌ์ง€ ๋งˆ์„ธ์š”.

Step B. ์„œ๋ฒ„(OpenClaw) ์„ค์ • ๋จผ์ € ๋ฐ˜์˜

1) ์šด์˜ ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ(๊ถŒ์žฅ, ID ๊ฐœ๋ณ„๋“ฑ๋ก ์ตœ์†Œํ™”)

{
  channels: {
    telegram: {
      enabled: true,
      botToken: "123:abc",
      dmPolicy: "pairing",
      groupPolicy: "allowlist", // ๊ทธ๋ฃน ์ž์ฒด๋Š” ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ
      groups: {
        "-1001234567890": {
          requireMention: true,
          groupPolicy: "open" // ์ด ๊ทธ๋ฃน ์•ˆ์—์„œ๋Š” ์‚ฌ์šฉ์ž ID ๊ฐœ๋ณ„๋“ฑ๋ก ์—†์ด ํ—ˆ์šฉ
        }
      }
    }
  }
}
  • ์ด ํ…œํ”Œ๋ฆฟ์€ ํ—ˆ์šฉํ•œ ๊ทธ๋ฃน์—์„œ๋งŒ ๋™์ž‘ํ•˜๋ฉด์„œ, ๊ทธ๋ฃน ๋‚ด๋ถ€ ์‚ฌ์šฉ์ž ID๋ฅผ ํ•˜๋‚˜์”ฉ ๋„ฃ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊นŒ์ง€ ์ œํ•œํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งŒ groupAllowFrom์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

2) ์ ๊ฒ€์šฉ ์˜คํ”ˆ ํ…œํ”Œ๋ฆฟ(์ผ์‹œ์ )

{
  channels: {
    telegram: {
      enabled: true,
      botToken: "123:abc",
      groups: {
        "-1001234567890": {
          requireMention: false,
          groupPolicy: "open"
        }
      }
    }
  }
}
  • ์ด ๋ชจ๋“œ๋Š” ํ…Œ์ŠคํŠธ/๋ณต๊ตฌ์šฉ์œผ๋กœ๋งŒ ์ž ๊น ์‚ฌ์šฉํ•˜๊ณ , ์ •์ƒ ๋™์ž‘ ํ™•์ธ ํ›„ ๊ถŒ์žฅ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋˜๋Œ๋ฆฌ์„ธ์š”.

3) ๋ฐ˜์˜ ํ™•์ธ

openclaw gateway status
openclaw logs --follow

๋กœ๊ทธ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ๊ฐ€ ๋ณด์ด๋ฉด ์„ค์ • ๋ฐ˜์˜ ์„ฑ๊ณต:

  • config hot reload applied

ํ•„์š” ์‹œ ์žฌ์‹œ์ž‘:

openclaw gateway restart

Step C. BotFather์—์„œ ๊ถŒํ•œ/ํ”„๋ผ์ด๋ฒ„์‹œ ์„ค์ •

์•„๋ž˜๋ฅผ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•˜์„ธ์š”.

  1. /setprivacy โ†’ @OC0201bot โ†’ Disable
  2. /setjoingroups โ†’ @OC0201bot โ†’ ๊ทธ๋ฃน ์ฐธ์—ฌ ํ—ˆ์šฉ(Enable)
  3. ํ…”๋ ˆ๊ทธ๋žจ ๊ทธ๋ฃน ๋‚ด ๋ด‡ ๊ถŒํ•œ์—์„œ ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ ํ—ˆ์šฉ

Step D. ๊ทธ๋ฃน์—์„œ ๋ด‡ ์ œ๊ฑฐ ํ›„ ์žฌ์ดˆ๋Œ€ (์ค‘์š”)

ํ”„๋ผ์ด๋ฒ„์‹œ ์„ค์ •์„ ๋ฐ”๊ฟจ๋‹ค๋ฉด, ์ ์šฉ์„ ์œ„ํ•ด ์•„๋ž˜๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ทธ๋ฃน์—์„œ ๋ด‡ ์ œ๊ฑฐ
  2. ๊ฐ™์€ ๋ด‡์„ ๋‹ค์‹œ ์ดˆ๋Œ€
  3. ํ…Œ์ŠคํŠธ ๋ฉ”์‹œ์ง€ ์‹คํ–‰
    • @OC0201bot ํ…Œ์ŠคํŠธ
    • /start@OC0201bot

Step E. DM ํŽ˜์–ด๋ง ์Šน์ธ(๊ถŒ์žฅ)

openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
  • pairing ๋ชจ๋“œ์—์„œ๋Š” ์Šน์ธ ์ „ DM์€ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ์œ ํšจ์‹œ๊ฐ„์€ 1์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

3) ์šด์˜ ๋ชจ๋“œ 2๊ฐ€์ง€ + mentionPatterns ์ฐจ์ด (์‹ค๋ฌด ํ•ต์‹ฌ)

๋ชจ๋“œ 1) ๋ฉ˜์…˜ ํ˜ธ์ถœํ˜• (๊ถŒ์žฅ)

  • ์›์น™: ๋ด‡์„ โ€œํ˜ธ์ถœโ€ํ–ˆ์„ ๋•Œ๋งŒ ๋ฐ˜์‘
  • ๊ธฐ๋ณธ ํŠธ๋ฆฌ๊ฑฐ: ํ…”๋ ˆ๊ทธ๋žจ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ˜์…˜(@๋ด‡์ด๋ฆ„)
  • ํ™•์žฅ ํŠธ๋ฆฌ๊ฑฐ: mentionPatterns์— ๋“ฑ๋กํ•œ ํ˜ธ์ถœ์–ด
  • ์žฅ์ : ์†Œ์Œ ์ ๊ณ , ์˜ค์ž‘๋™ ์œ„ํ—˜ ๋‚ฎ์Œ
  • ์„ค์ •: requireMention: true

๋ชจ๋“œ 2) ์ƒ์‹œ ๋ฐ˜์‘ํ˜• (์ฃผ์˜)

  • ๊ทธ๋ฃน ๋Œ€ํ™” ๋Œ€๋ถ€๋ถ„์— ๋ฐ˜์‘ ๊ฐ€๋Šฅ
  • ์žฅ์ : ์ž๋™ํ™” ๋ฐ€๋„ ๋†’์Œ
  • ๋ฆฌ์Šคํฌ: ๋ถˆํ•„์š” ์‘๋‹ต, ๊ถŒํ•œ ์˜ค๋‚จ์šฉ ๊ฐ€๋Šฅ์„ฑ ์ฆ๊ฐ€
  • ์„ค์ •: requireMention: false + ๊ฐ•ํ•œ ์šด์˜ ํ†ต์ œ ํ•„์ˆ˜

@๋ฉ˜์…˜ vs mentionPatterns ์ฐจ์ด

๊ตฌ๋ถ„ํŠธ๋ฆฌ๊ฑฐ ๋ฐฉ์‹์žฅ์ ์ฃผ์˜์ ์ถ”์ฒœ ์ƒํ™ฉ
@๋ด‡์ด๋ฆ„ํ…”๋ ˆ๊ทธ๋žจ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ˜์…˜๊ฐ€์žฅ ๋ช…ํ™•, ์˜ค์ž‘๋™ ์ ์Œ์‚ฌ์šฉ์ž๊ฐ€ ๋งค๋ฒˆ @๋ฅผ ์จ์•ผ ํ•จ๊ธฐ๋ณธ ์šด์˜(๊ถŒ์žฅ)
mentionPatterns์ง€์ •ํ•œ ํ‚ค์›Œ๋“œ/๋ฌธ๊ตฌ(์˜ˆ: openclaw, ์˜ค์”จ)๋„ ๋ฉ˜์…˜์œผ๋กœ ์ธ์‹@ ์—†์ด๋„ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•ด UX ์ข‹์ŒํŒจํ„ด์„ ๋„“๊ฒŒ ์žก์œผ๋ฉด ์˜คํƒ ๊ฐ€๋Šฅ์ต์ˆ™ํ•œ ํŒ€ ํ˜‘์—… ํ™˜๊ฒฝ

์ฆ‰, mentionPatterns๋Š” โ€œ@๋ฅผ ์™„์ „ํžˆ ์—†์• ๋Š” ๊ธฐ๋Šฅโ€์ด๋ผ๊ธฐ๋ณด๋‹ค, requireMention:true๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ ํ˜ธ์ถœ ๋ฐฉ๋ฒ•์„ ๋„“ํžˆ๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์„ค์ • (@ ์—†์ด๋„ ์ง€์ • ํ‚ค์›Œ๋“œ๋กœ ํ˜ธ์ถœ)

{
  messages: {
    groupChat: {
      mentionPatterns: ["@?oc0201bot", "@?openclaw", "์˜ค์”จ", "ํ”Œ๋Ÿญ์Šค"]
    }
  },
  channels: {
    telegram: {
      groups: {
        "-1001234567890": {
          requireMention: true,
          groupPolicy: "open"
        }
      }
    }
  }
}

groupPolicy: allowlist์ผ ๋•Œ ๊ถŒํ•œ์„ ์–ด๋””๊นŒ์ง€ ์ž ๊ธ€์ง€ (๋œ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ)

allowlist๋Š” ์‚ฌ์‹ค 2๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

  1. ๊ทธ๋ฃน ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ: channels.telegram.groups
    • ์–ด๋–ค ๊ทธ๋ฃน์„ ํ—ˆ์šฉํ• ์ง€ ์ •ํ•จ
  2. ๊ทธ๋ฃน ๋‚ด๋ถ€ ์‚ฌ์šฉ์ž ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ(์„ ํƒ): channels.telegram.groupAllowFrom
    • ํ—ˆ์šฉ๋œ ๊ทธ๋ฃน ์•ˆ์—์„œ๋„ ํŠน์ • ์‚ฌ๋žŒ๋งŒ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ฒŒ ์ œํ•œ

์ฒ˜์Œ์—๋Š” ๋ณดํ†ต ์•„๋ž˜์ฒ˜๋Ÿผ ์‹œ์ž‘ํ•˜๋ฉด ๊ฐ€์žฅ ๋œ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฃจํŠธ: groupPolicy: "allowlist"
  • ๊ทธ๋ฃน๋ณ„: groups.<chatId>.groupPolicy: "open"
  • ํŠธ๋ฆฌ๊ฑฐ: requireMention: true (+ ํ•„์š” ์‹œ mentionPatterns)

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ—ˆ์šฉํ•œ ๊ทธ๋ฃน ์•ˆ์—์„œ๋Š” ์‚ฌ์šฉ์ž ID๋ฅผ ํ•˜๋‚˜์”ฉ ๋„ฃ์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ •๋ง ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ๊ทธ๋ฃน์—์„œ๋งŒ groupAllowFrom์„ ์ถ”๊ฐ€ํ•ด โ€œํŠน์ • ์‚ฌ์šฉ์ž๋งŒโ€์œผ๋กœ ์ขํžˆ์„ธ์š”.

3๋‹จ๊ณ„ ๊ถŒํ•œ ํ”„๋ฆฌ์…‹

  • ํ”„๋ฆฌ์…‹ A (๊ถŒ์žฅ ์‹œ์ž‘์ )
    • ๊ทธ๋ฃน๋งŒ ์ œํ•œ: groupPolicy=allowlist, groups.<id>.groupPolicy=open, requireMention=true
  • ํ”„๋ฆฌ์…‹ B (์ค‘๊ฐ„ ๋ณด์•ˆ)
    • A + mentionPatterns ์ตœ์†Œ ๋“ฑ๋ก(ํŒ€ ํ˜ธ์ถœ์–ด 2~4๊ฐœ)
  • ํ”„๋ฆฌ์…‹ C (๊ฐ•๋ณด์•ˆ)
    • A ๋˜๋Š” B + groupAllowFrom=["<userId>", ...]

4) ๋ณด์•ˆ ์ฃผ์˜์‚ฌํ•ญ (๊ผญ ์ง€ํ‚ฌ 10๊ฐœ)

  1. ํ† ํฐ์„ ์ฝ”๋“œ/๊นƒ์— ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๊ธฐ
    • ๊ฐ€๋Šฅํ•˜๋ฉด tokenFile ๋˜๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์‚ฌ์šฉ
  2. DM์€ pairing ๋˜๋Š” allowlist๋กœ ์ œํ•œ
    • dmPolicy: open์€ ํŠน๋ณ„ํ•œ ์ด์œ  ์—†์œผ๋ฉด ๊ธˆ์ง€
  3. ๊ทธ๋ฃน์€ allowlist๋ถ€ํ„ฐ ์‹œ์ž‘
    • groupPolicy: open์€ ํŠน์ • ๊ทธ๋ฃน์—๋งŒ ์ œํ•œ ์ ์šฉ
  4. ์ดˆ๊ธฐ์—” ๋ฉ˜์…˜ ํ•„์ˆ˜ ์œ ์ง€
    • requireMention: true๋กœ ์žก์Œ/์˜ค์ž‘๋™ ๋ฐฉ์ง€
  5. ํ…”๋ ˆ๊ทธ๋žจ Privacy Mode ๋ณ€๊ฒฝ ์‹œ ์žฌ์ดˆ๋Œ€ ํ•„์ˆ˜
    • /setprivacy ๋ณ€๊ฒฝ๋งŒ์œผ๋กœ ๋๋‚ด์ง€ ๋ง๊ณ  ์ œ๊ฑฐโ†’์žฌ์ดˆ๋Œ€
  6. ๊ฐ•ํ•œ ๋„๊ตฌ๋Š” ๊ธฐ๋ณธ ์ฐจ๋‹จ
    • gateway, cron, sessions_spawn, sessions_send ๋“ฑ์€ ์‹ ์ค‘ํžˆ ์—ด๊ธฐ
  7. ์ •๊ธฐ ๋ณด์•ˆ ์ง„๋‹จ ์‹คํ–‰
    • openclaw security audit
    • openclaw security audit --deep
  8. ๊ถŒํ•œ ํŒŒ์ผ ์ ‘๊ทผ๊ถŒํ•œ ์ ๊ฒ€
    • ~/.openclaw ๋””๋ ‰ํ† ๋ฆฌ ํผ๋ฏธ์…˜ ์ •๊ธฐ ํ™•์ธ
  9. ๊ทธ๋ฃน๋ณ„ ์ •์ฑ… ๋ถ„๋ฆฌ
    • ๋ชจ๋“  ๊ทธ๋ฃน์— ๋™์ผ ์ •์ฑ…์„ ์“ฐ์ง€ ๋ง๊ณ , ๊ทธ๋ฃน ์„ฑ๊ฒฉ๋ณ„๋กœ ๋ถ„๋ฆฌ
  10. ์‚ฌ๊ณ  ์‹œ ์ฆ‰์‹œ ์ฐจ๋‹จ ๋ฃจํ‹ด ๋งˆ๋ จ
  • ํ† ํฐ ์žฌ๋ฐœ๊ธ‰, ๊ทธ๋ฃน ์ ‘๊ทผ ์ œํ•œ, ํŽ˜์–ด๋ง ์žฌ๊ฒ€ํ†  ์ˆœ์œผ๋กœ ๋Œ€์‘
flowchart TD
A[์ƒˆ ๊ทธ๋ฃน ์ถ”๊ฐ€ ์š”์ฒญ] --> B{์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ ๊ทธ๋ฃน์ธ๊ฐ€?}
B -- ์•„๋‹ˆ์˜ค --> C[์ถ”๊ฐ€ ๋ณด๋ฅ˜]
B -- ์˜ˆ --> D{๊ธฐ๋ณธ์ •์ฑ… ์œ ์ง€ ๊ฐ€๋Šฅ?}
D -- ์˜ˆ --> E[requireMention=true + allowlist]
D -- ์•„๋‹ˆ์˜ค --> F[์˜ˆ์™ธ์ •์ฑ… ๋ฌธ์„œํ™”]
F --> G[์ฃผ๊ฐ„ ์žฌ๊ฒ€ํ† ]
E --> G

5) ์ž์ฃผ ๋ง‰ํžˆ๋Š” ๋ฌธ์ œ ๋น ๋ฅธ ํ•ด๊ฒฐ

์„œ๋ฒ„ ์„ค์ •์€ ๋ฐ˜์˜๋๋Š”๋ฐ ๋ฌด์‘๋‹ต

  • ๋กœ๊ทธ์— config hot reload applied๊ฐ€ ๋ณด์ด๋ฉด ์„œ๋ฒ„ ๋ฐ˜์˜์€ ๋œ ์ƒํƒœ
  • ์ด ๊ฒฝ์šฐ ๋‚จ์€ ์›์ธ์€ ๋Œ€๋ถ€๋ถ„ ํ…”๋ ˆ๊ทธ๋žจ ์ธก ์„ค์ •:
    • /setprivacy Disable
    • ๊ทธ๋ฃน ๊ถŒํ•œ(๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ)
    • ๋ด‡ ์ œ๊ฑฐ ํ›„ ์žฌ์ดˆ๋Œ€
    • @๋ด‡ ํ…Œ์ŠคํŠธ, /start@๋ด‡ ์žฌ๊ฒ€์ฆ

๋ด‡์ด ๊ทธ๋ฃน์—์„œ ๋ฉ˜์…˜ ์—†์ด ๋ฐ˜์‘ ์•ˆ ํ•จ

  • requireMention ์„ค์ • ํ™•์ธ
  • groupPolicy๊ฐ€ open์ธ์ง€(์ ๊ฒ€ ๋ชจ๋“œ ๊ธฐ์ค€) ํ™•์ธ
  • Privacy Mode(/setprivacy) ๋ณ€๊ฒฝ + ์žฌ์ดˆ๋Œ€ ์ ์šฉ ์—ฌ๋ถ€ ํ™•์ธ

๊ทธ๋ฃน ๋ฉ”์‹œ์ง€๋ฅผ ์•„์˜ˆ ๋ชป ์ฝ์Œ

  • channels.telegram.groups์— ํ•ด๋‹น ๊ทธ๋ฃน ID๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
  • openclaw logs --follow๋กœ skip reason ํ™•์ธ

๋ช…๋ น์ด ์ผ๋ถ€๋งŒ ๋™์ž‘

  • sender๊ฐ€ allowlist/pairing ์Šน์ธ ์ƒํƒœ์ธ์ง€ ํ™•์ธ
  • DNS/HTTPS ๋ฌธ์ œ ์‹œ setMyCommands failed ๋กœ๊ทธ ํ™•์ธ

6) ์šด์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ (๋ณต๋ถ™์šฉ)

  • ๊ธฐ์กด ๋ด‡ ์žฌ์‚ฌ์šฉ ์—ฌ๋ถ€ ๊ฒฐ์ • (/mybots ํ™•์ธ)
  • ์„œ๋ฒ„ ์„ค์ • ๋ฐ˜์˜ ์™„๋ฃŒ (groupPolicy, requireMention, groups.<chatId>, ํ•„์š” ์‹œ groupAllowFrom)
  • ๋กœ๊ทธ์—์„œ config hot reload applied ํ™•์ธ
  • BotFather /setprivacy Disable ์ ์šฉ
  • BotFather /setjoingroups ํ—ˆ์šฉ ํ™•์ธ
  • ๊ทธ๋ฃน์—์„œ ๋ด‡ ๋ฉ”์‹œ์ง€ ๊ถŒํ•œ ํ—ˆ์šฉ ํ™•์ธ
  • ๋ด‡ ์ œ๊ฑฐ ํ›„ ์žฌ์ดˆ๋Œ€ ์™„๋ฃŒ
  • @๋ด‡ ํ…Œ์ŠคํŠธ, /start@๋ด‡ ๋™์ž‘ ํ™•์ธ
  • mentionPatterns ์‚ฌ์šฉ ์‹œ ์˜คํƒ ์—†๋Š” ํ˜ธ์ถœ์–ด(ํŒ€ ๋‚ด ๋ณ„์นญ)๋กœ ์ตœ์†Œ ํŒจํ„ด๋งŒ ๋“ฑ๋ก
  • DM pairing ์Šน์ธ ํ๋ฆ„ ํ…Œ์ŠคํŠธ ์™„๋ฃŒ
  • ๋ณด์•ˆ ๊ฐ์‚ฌ 1ํšŒ ์‹คํ–‰ (security audit)

7) ์‹ค๋ฌด ์น˜ํŠธ์‹œํŠธ (๋ช…๋ น์–ด)

# ์ฑ„๋„ ์—ฐ๊ฒฐ/์ƒํƒœ
openclaw channels add --channel telegram --token <TOKEN>
openclaw gateway status
openclaw gateway restart
 
# ํŽ˜์–ด๋ง ์Šน์ธ
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
 
# ๋กœ๊ทธ ์ถ”์ (๋ฐ˜์˜/์Šคํ‚ต ์‚ฌ์œ  ํ™•์ธ)
openclaw logs --follow
 
# ๋ณด์•ˆ ์ ๊ฒ€
openclaw security audit
openclaw security audit --deep

๊ด€๋ จ ๋ฌธ์„œ