OpenClaw ๊ฒ€์ƒ‰ Provider ์„ ์ • ๊ฐ€์ด๋“œ (Brave/Gemini/Grok/Tavily/SerpAPI ๋“ฑ)

โ€ขAI Expert

๋‚œ์ด๋„: ์ค‘๊ธ‰ | ์†Œ์š” ์‹œ๊ฐ„: 20๋ถ„ | ํ•™์Šต ๋ชฉํ‘œ: ์‹ค์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋งž์ถฐ OpenClaw์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ฒ€์ƒ‰ Provider๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ• ์Šต๋“

๋Œ€์ƒ ๋…์ž

  • OpenClaw ๊ธฐ์ดˆ ๊ตฌ์ถ•์„ ์™„๋ฃŒํ•˜๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž
  • 10๊ฐœ์˜ Provider ์ค‘ ๋ฌด์—‡์„ ์„ ํƒํ•ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผ ์ค‘์ธ ์—”์ง€๋‹ˆ์–ด
  • ํŠน์ • ์‹œ๋‚˜๋ฆฌ์˜ค(RAG / ์—ฌ๋ก  ๋ชจ๋‹ˆํ„ฐ๋ง / ์ด์ปค๋จธ์Šค ์ถ”์  ๋“ฑ)์—์„œ ๊ฒ€์ƒ‰ ๋™์ž‘์„ ์‹ฌ์ธต์ ์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ์šฉ์ž

ํ•ต์‹ฌ ์˜์กด์„ฑ

  • OpenClaw (์ตœ์‹  ๋ฒ„์ „)
  • Node.js 18+
  • ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฒ€์ƒ‰ Provider API Key

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

openclaw/
โ”œโ”€โ”€ config.yaml     # ๋ชจ๋“  Provider ์„ค์ •์ด ์—ฌ๊ธฐ์— ์œ„์น˜ํ•จ
โ””โ”€โ”€ .env            # API Key ์ €์žฅ์†Œ (์ €์žฅ์†Œ์— ์ปค๋ฐ‹ ๊ธˆ์ง€)

1. OpenClaw ๊ฒ€์ƒ‰ ๋Šฅ๋ ฅ ๊ฐœ์š”

OpenClaw์˜ Agentic Loop์—์„œ ๊ฒ€์ƒ‰ ๋„๊ตฌ๋Š” "์‹ค์‹œ๊ฐ„ ์ธ์ง€ ๊ณ„์ธต" ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ์ž์‹ ์˜ ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จํ•  ๋•Œ, ๋Šฅ๋™์ ์œผ๋กœ ๊ฒ€์ƒ‰ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ •๋ณด๋ฅผ ๋ณด์ถฉํ•œ ๋’ค ๋‹ค์Œ ํ–‰๋™์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์งˆ๋ฌธ
   โ†“
์—์ด์ „ํŠธ ์‚ฌ๊ณ : ์ตœ์‹  ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ๊ฐ€?
   โ†“ ์˜ˆ
๊ฒ€์ƒ‰ Provider ํ˜ธ์ถœ โ†’ ๊ฒฐ๊ณผ ํš๋“
   โ†“
์ •๋ณด ํ†ตํ•ฉ โ†’ ๋‹ต๋ณ€ ์ƒ์„ฑ

[!TIP]
๊ฒ€์ƒ‰ Provider๊ฐ€ ์—†์œผ๋ฉด OpenClaw๋Š” ๋ชจ๋ธ์˜ ํ•™์Šต ๋ฐ์ดํ„ฐ์—๋งŒ ์˜์กดํ•˜๊ฒŒ ๋˜์–ด, "์ตœ์‹  ๋ฒ„์ „์ด ๋ฌด์—‡์ธ๊ฐ€", "์˜ค๋Š˜์˜ ๋‰ด์Šค"์™€ ๊ฐ™์€ ์งˆ๋ฌธ์— ์ž˜๋ชป๋œ ๋‹ต๋ณ€(ํ• ๋ฃจ์‹œ๋„ค์ด์…˜)์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์„ค์ •์€ ์—์ด์ „ํŠธ๋ฅผ ์ง„์ •์œผ๋กœ "์‚ด์•„์žˆ๊ฒŒ" ๋งŒ๋“œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ OpenClaw๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ 10๊ฐœ ๊ฒ€์ƒ‰ Provider๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

์œ ํ˜•ProviderํŠน์ง•๋ฌด๋ฃŒ ํ• ๋‹น๋Ÿ‰์‹œ์ž‘ ๊ฐ€๊ฒฉ
๊ณต์‹Perplexity๊ตฌ์กฐํ™”๋œ ๊ฒฐ๊ณผ, ์‹œ๊ฐ„/๋„๋ฉ”์ธ ํ•„ํ„ฐ๋ง์—†์Œ$1/M tokens
๊ณต์‹Brave Search๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ์šฐ์„ , ์ง€์—ญ ๊ฒ€์ƒ‰~1,000ํšŒ/์›”$5/1k
๊ณต์‹GeminiGoogle ์ƒํƒœ๊ณ„, ์ž๋™ Grounding๋ฌด๋ฃŒ ํ• ๋‹น๋Ÿ‰ ์ถฉ๋ถ„Prompt๋‹น ๊ณผ๊ธˆ
๊ณต์‹Grok์›น + X ํ”Œ๋žซํผ ์ด์ค‘ ๊ฒ€์ƒ‰์—†์Œ$10/1k ๋„๊ตฌ ํ˜ธ์ถœ
๊ณต์‹Kimi256K ์ดˆ์žฅ๋ฌธ ์ปจํ…์ŠคํŠธ์—†์Œ$0.60/M tokens
์ œ3์žTavilyLLM ์ตœ์ ํ™”, ๊ตฌ์กฐํ™”๋œ ์ถœ๋ ฅ1,000ํšŒ/์›”์‚ฌ์šฉ๋Ÿ‰ ๊ณผ๊ธˆ
์ œ3์žSerper.dev๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ์ €๋ ดํ•œ Google SERP๊ฐ€์ž… ์‹œ 2,500ํšŒ ์ œ๊ณต$0.30/1k
์ œ3์žSerpAPI๋‹ค์ค‘ ์—”์ง„ ๋ณด์žฅ, ์Šคํฌ๋ฆฐ์ƒท ์ง€์›250ํšŒ/์›”$7.50/1k
์ œ3์žExa์‹œ๋งจํ‹ฑ ์‹ ๊ฒฝ๋ง ๊ฒ€์ƒ‰๋ฌด๋ฃŒ ์ฒดํ—˜์‚ฌ์šฉ๋Ÿ‰ ๊ณผ๊ธˆ
์ œ3์žDataForSEO๊ธฐ์—…์šฉ, 10๊ฐœ ์ด์ƒ์˜ ์—”์ง„$1 ์ฒดํ—˜ ๋จธ๋‹ˆ$0.60/1k

2. ์„ ์ • ํ•ต์‹ฌ ์ฐจ์›

Provider๋ฅผ ์„ ํƒํ•˜๊ธฐ ์ „ ๋‹ค์Œ 4๊ฐ€์ง€๋ฅผ ๋จผ์ € ๊ณ ๋ คํ•˜์„ธ์š”:

์ฐจ์›ํ•ต์‹ฌ ์งˆ๋ฌธ์˜์‚ฌ๊ฒฐ์ • ์˜ํ–ฅ
์‹œ์˜์„ฑ๊ฒฐ๊ณผ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ตœ์‹ ์ด์–ด์•ผ ํ•˜๋Š”๊ฐ€? ์‹ค์‹œ๊ฐ„ / ์ฃผ ๋‹จ์œ„ / ์›” ๋‹จ์œ„?๋‰ด์Šค ๋ถ€๋ฌธ์€ ์‹ค์‹œ๊ฐ„ ์ธ๋ฑ์‹ฑ ํ•„์ˆ˜
ํ’ˆ์งˆ์›๋ณธ ๋งํฌ ๋ชฉ๋ก์ด ํ•„์š”ํ•œ๊ฐ€, ์ „์ฒ˜๋ฆฌ๋œ ์š”์•ฝ์ด ํ•„์š”ํ•œ๊ฐ€?AI ์—์ด์ „ํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ์š”์•ฝํ˜• ์šฐ์„ 
๋น„์šฉ์›”ํ‰๊ท  ํ˜ธ์ถœ ์˜ˆ์ƒ๋Ÿ‰์€ ์–ผ๋งˆ์ธ๊ฐ€?๊ณ ๋นˆ๋„ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋น„์šฉ ์ ˆ๊ฐ ํšจ์œจ ๊ทน๋Œ€ํ™”
๊ธฐ๋Šฅ๋„๋ฉ”์ธ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ / ์œ„์น˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ / ํŠน์ • ์—”์ง„์ด ํ•„์š”ํ•œ๊ฐ€?๋ฒ„ํ‹ฐ์ปฌ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ๊ธฐ๋Šฅ ์ฐจ์ด๊ฐ€ ํ•ต์‹ฌ

3. 10๋Œ€ ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ์„ ์ • ๊ฐ€์ด๋“œ

์‹œ๋‚˜๋ฆฌ์˜ค 1: ์ฝ”๋“œ ๋ฌธ๋‹ต ์—์ด์ „ํŠธ

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ์‚ฌ์šฉ์ž๊ฐ€ "์ด ์—๋Ÿฌ ์–ด๋–ป๊ฒŒ ๊ณ ์ณ์š”", "์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ตœ์‹  API๋Š” ๋ญ์˜ˆ์š”"๋ผ๊ณ  ๋ฌผ์„ ๋•Œ, ๋‹ต๋ณ€์€ ์ฃผ๋กœ GitHub, Stack Overflow, ๊ณต์‹ ๋ฌธ์„œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ: Perplexity + searchDomainFilter

์ด์œ ๋Š” Perplexity์˜ sonar ๋ชจ๋ธ์ด ๊ธฐ์ˆ  ์ฝ˜ํ…์ธ  ์ดํ•ด๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์œผ๋ฉฐ, ๋„๋ฉ”์ธ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ถŒ์œ„ ์žˆ๋Š” ๊ธฐ์ˆ  ์‚ฌ์ดํŠธ์˜ ๊ฒฐ๊ณผ๋งŒ ๊ฐ•์ œ๋กœ ๊ฐ€์ ธ์™€ ์ €ํ’ˆ์งˆ ๋ธ”๋กœ๊ทธ์˜ ๊ฐ„์„ญ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: perplexity
      maxResults: 5
      perplexity:
        apiKey:
          source: env
          provider: default
          id: PERPLEXITY_API_KEY
        model: sonar                # ๊ฐ€๋ณ๊ณ  ๋น ๋ฆ„, ์ถฉ๋ถ„ํ•œ ์„ฑ๋Šฅ
        searchRecencyFilter: month  # ์ตœ๊ทผ ํ•œ ๋‹ฌ ๋‚ด ์ฝ˜ํ…์ธ ๋กœ ์˜ค๋ž˜๋œ ๋ฌธ์„œ ํ•„ํ„ฐ๋ง
        searchDomainFilter:
          - "github.com"
          - "stackoverflow.com"
          - "docs.python.org"
          - "developer.mozilla.org"
          - "pkg.go.dev"

ํšจ๊ณผ: ์—์ด์ „ํŠธ๊ฐ€ ์ฝ”๋“œ ๊ด€๋ จ ๋‹ต๋ณ€ ์‹œ ์ธ์šฉ ์ถœ์ฒ˜๊ฐ€ ๋ชจ๋‘ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ  ์‚ฌ์ดํŠธ๋กœ ์ œํ•œ๋˜์–ด ์‹ ๋ขฐ๋„๊ฐ€ ๋Œ€ํญ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.


์‹œ๋‚˜๋ฆฌ์˜ค 2: ๋‰ด์Šค ์š”์•ฝ ๋ด‡

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ๋งค์ผ ์•„์นจ ํŠน์ • ๋ถ„์•ผ(AI / ํ…Œํฌ / ๊ธˆ์œต)์˜ ์ตœ์‹  ๋‰ด์Šค๋ฅผ ์ˆ˜์ง‘ํ•˜๋ฉฐ, ์‹œ์˜์„ฑ์ด ์ตœ์šฐ์„  ์ˆœ์œ„์ž…๋‹ˆ๋‹ค.

์ถ”์ฒœ: Serper.dev (type: news)

Serper๋Š” ์ „์šฉ News ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ Google News์˜ ์‹ค์‹œ๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ์ง์ ‘ ๊ฐ€์ ธ์˜ค๋ฉฐ, ์‘๋‹ต ์†๋„๊ฐ€ 1โ€“2์ดˆ๋กœ ๋งค์šฐ ๋น ๋ฅด๊ณ  ๊ฐ€๊ฒฉ๋„ ๊ฐ€์žฅ ์ €๋ ดํ•œ ํŽธ์— ์†ํ•ฉ๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: serper
      maxResults: 10
      cacheTtlMinutes: 30       # ๋‰ด์Šค ์บ์‹œ 30๋ถ„, ๋™์ผ ์‹œ๊ฐ„๋Œ€ ๋ฐ˜๋ณต ํ˜ธ์ถœ ์‹œ API ๋‚ญ๋น„ ๋ฐฉ์ง€
      serper:
        apiKey:
          source: env
          provider: default
          id: SERPER_API_KEY
        type: news              # News ์—”๋“œํฌ์ธํŠธ๋กœ ์ „ํ™˜
        num: 10                 # ๋งคํšŒ 10๊ฐœ ์ˆ˜์ง‘

[!TIP]
๋‰ด์Šค ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ cacheTtlMinutes๋ฅผ 30๋ถ„์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋‰ด์Šค๋Š” 30๋ถ„ ๋‚ด์— ํฌ๊ฒŒ ๋ณ€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฐ˜๋ณต ํ˜ธ์ถœ์€ ๋‚ญ๋น„์ž…๋‹ˆ๋‹ค.


์‹œ๋‚˜๋ฆฌ์˜ค 3: ํ•™์ˆ  ์—ฐ๊ตฌ ์—์ด์ „ํŠธ

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ์—ฐ๊ตฌ์›์„ ๋„์™€ ๋…ผ๋ฌธ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํŠน์ • ์—ฐ๊ตฌ ๋ฐฉํ–ฅ์˜ ์ตœ์‹  ์ง„์ฒ™ ์ƒํ™ฉ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœ ํ‚ค์›Œ๋“œ ๋งค์นญ์ด ์•„๋‹Œ ์˜๋ฏธ(์‹œ๋งจํ‹ฑ) ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถ”์ฒœ: Exa (์‹œ๋งจํ‹ฑ ๊ฒ€์ƒ‰ + ๋„๋ฉ”์ธ ํ•„ํ„ฐ๋ง)

Exa๋Š” ์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ "์–‘์ž ์ปดํ“จํŒ…์˜ ์•”ํ˜ธํ•™ ์‘์šฉ"๊ณผ ๊ฐ™์€ ์‹œ๋งจํ‹ฑ ์ฟผ๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋ฉฐ, ๋‹จ์ˆœํžˆ ํ‚ค์›Œ๋“œ๋งŒ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋งฅ๋ฝ์ƒ ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: exa
      maxResults: 8
      exa:
        apiKey:
          source: env
          provider: default
          id: EXA_API_KEY
        endpoint: auto          # ์†๋„์™€ ํ’ˆ์งˆ์˜ ์ž๋™ ๊ท ํ˜•
        includeDomains:
          - "arxiv.org"
          - "semanticscholar.org"
          - "pubmed.ncbi.nlm.nih.gov"
          - "nature.com"
          - "science.org"
        startPublishedDate: "2024-01-01"   # 2024๋…„ ์ดํ›„ ๋…ผ๋ฌธ๋งŒ ๊ฒ€์ƒ‰

์ผ๋ฐ˜ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰๊ณผ ๋น„๊ต: ๋™์ผํ•œ ์ฟผ๋ฆฌ์—์„œ Exa๋Š” ์˜๋ฏธ์ ์œผ๋กœ๋Š” ์—ฐ๊ด€๋˜์ง€๋งŒ ์ œ๋ชฉ์— ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๋Š” ๋…ผ๋ฌธ์„ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์–ด ์žฌํ˜„์œจ(Recall)์ด ์›”๋“ฑํžˆ ๋†’์Šต๋‹ˆ๋‹ค.


์‹œ๋‚˜๋ฆฌ์˜ค 4: X/Twitter ์—ฌ๋ก  ๋ชจ๋‹ˆํ„ฐ๋ง

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ํŠน์ • ๋ธŒ๋žœ๋“œ, ์ œํ’ˆ, ์ฃผ์ œ์— ๋Œ€ํ•œ X ํ”Œ๋žซํผ์˜ ์‹ค์‹œ๊ฐ„ ํ† ๋ก ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์›น ๊ฒ€์ƒ‰์œผ๋กœ๋Š” X์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๋Œ€๋กœ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ: Grok (x_search ํ™œ์„ฑํ™”)

์ด๊ฒƒ์€ Grok๋งŒ์˜ ๋…๋ณด์ ์ธ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ Provider๊ฐ€ ํ•  ์ˆ˜ ์—†๋Š” X ํ”Œ๋žซํผ ์ฝ˜ํ…์ธ ๋ฅผ ์ง์ ‘ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: grok
      grok:
        apiKey:
          source: env
          provider: default
          id: XAI_API_KEY
        model: grok-4-1-fast    # Agentic ๊ฒ€์ƒ‰์— ์ตœ์ ํ™”๋œ ๋ชจ๋ธ
        inlineCitations: true
        tools:
          - type: x_search
            fromDate: "2025-01-01"      # ํŠน์ • ๋‚ ์งœ ์ดํ›„์˜ ๊ฒŒ์‹œ๋ฌผ๋งŒ
            allowedXHandles:            # ์„ ํƒ ์‚ฌํ•ญ: ํŠน์ • ๊ณ„์ •๋งŒ ์ถ”์ 
              - "sama"
              - "karpathy"
              - "ylecun"
          - type: web_search            # ์›น ๊ฒ€์ƒ‰๋„ ํ•จ๊ป˜ ์ผœ์„œ ๋ฐฐ๊ฒฝ ์ •๋ณด ๋ณด์ถฉ
            enableImageUnderstanding: true

[!WARNING]
web_search์™€ x_search๋Š” ๋„๊ตฌ ํ˜ธ์ถœ๋‹น ๊ฐ๊ฐ $10/1000์ž…๋‹ˆ๋‹ค. ๊ณ ๋นˆ๋„ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” cacheTtlMinutes๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ˜๋ณต ์‹คํ–‰์„ ํ”ผํ•˜์„ธ์š”.


์‹œ๋‚˜๋ฆฌ์˜ค 5: ์ด์ปค๋จธ์Šค ๊ฐ€๊ฒฉ ์ถ”์ 

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ๊ฒฝ์Ÿ์‚ฌ์˜ Google Shopping ๊ฐ€๊ฒฉ ๋ณ€๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ํŠน์ • ์ƒํ’ˆ์˜ ์ตœ์ €๊ฐ€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

์ถ”์ฒœ: SerpAPI (engine: google_shopping)

SerpAPI๋Š” ํ˜„์žฌ Google Shopping ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”๋œ ์ถœ๋ ฅ์œผ๋กœ ๊ฐ€์žฅ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” Provider๋กœ, ๊ฐ€๊ฒฉ, ํŒ๋งค์ฒ˜, ํ‰์  ๋“ฑ์˜ ํ•„๋“œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: serpapi
      maxResults: 20
      cacheTtlMinutes: 60       # ๊ฐ€๊ฒฉ ๋ฐ์ดํ„ฐ 1์‹œ๊ฐ„ ์บ์‹œ
      serpapi:
        apiKey:
          source: env
          provider: default
          id: SERPAPI_API_KEY
        engine: google_shopping  # ์‡ผํ•‘ ์—”์ง„์œผ๋กœ ์ „ํ™˜
        gl: us                   # ๋ฏธ๊ตญ ์‹œ์žฅ
        hl: en
        # ์„ ํƒ ์‚ฌํ•ญ: ์ง€๋ฆฌ์  ์œ„์น˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜
        location: "New York, New York, United States"

๋ฐ˜ํ™˜ ๋ฐ์ดํ„ฐ ์˜ˆ์‹œ (SerpAPI ๊ตฌ์กฐํ™” ์ถœ๋ ฅ):

{
  "shopping_results": [
    {
      "title": "Product Name",
      "price": "$29.99",
      "source": "Amazon",
      "rating": 4.5,
      "reviews": 1234,
      "link": "https://..."
    }
  ]
}

์‹œ๋‚˜๋ฆฌ์˜ค 6: SEO ์ฝ˜ํ…์ธ  ์ƒ์„ฑ

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ํ‚ค์›Œ๋“œ์˜ SERP ๊ตฌ์กฐ(์ œ๋ชฉ, ์š”์•ฝ, ๊ฒฝ์Ÿ ๊ธฐ์‚ฌ)๋ฅผ ๋Œ€๋Ÿ‰์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ์ฝ˜ํ…์ธ  ํŒ€์˜ ์ฃผ์ œ ์ „๋žต์„ ๋•์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ: DataForSEO (mode: normal)

DataForSEO์˜ normal ๋ชจ๋“œ๋Š” ํ(Queue) ๋ฐฉ์‹(์•ฝ 5๋ถ„ ํ›„ ๋ฐ˜ํ™˜)์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๊ฐ€๊ฒฉ์ด ํšŒ๋‹น $0.0006๋กœ ์‹ค์‹œ๊ฐ„ ๋ชจ๋“œ๋ณด๋‹ค 3๋ฐฐ ์ด์ƒ ์ €๋ ดํ•ฉ๋‹ˆ๋‹ค. SEO ๋ถ„์„์€ ์‹ค์‹œ๊ฐ„์ผ ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ normal ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์šฉ์„ ๋Œ€ํญ ์ ˆ๊ฐํ•˜์„ธ์š”.

tools:
  web:
    search:
      enabled: true
      provider: dataforseo
      maxResults: 10
      cacheTtlMinutes: 1440     # SEO ๋ฐ์ดํ„ฐ๋Š” ๋ณ€ํ™”๊ฐ€ ๋А๋ฆฌ๋ฏ€๋กœ 24์‹œ๊ฐ„ ์บ์‹œ
      dataforseo:
        login:
          source: env
          provider: default
          id: DATAFORSEO_LOGIN
        password:
          source: env
          provider: default
          id: DATAFORSEO_PASSWORD
        engine: google
        mode: normal            # ํ ๋ชจ๋“œ, ํšŒ๋‹น $0.0006 (live๋Š” $0.002)
        locationCode: 2840      # 2840 = ๋ฏธ๊ตญ; 2826 = ์˜๊ตญ; 2392 = ์ผ๋ณธ
        languageCode: en

[!TIP]
DataForSEO๋Š” locationCode ์ˆซ์ž๋กœ ์ง€์—ญ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์ฝ”๋“œ: ๋ฏธ๊ตญ 2840, ์˜๊ตญ 2826, ๋…์ผ 2276, ์ผ๋ณธ 2392. ๊ณต์‹ ์ง€์—ญ ๋ฆฌ์ŠคํŠธ์—์„œ ์ „์ฒด ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์‹œ๋‚˜๋ฆฌ์˜ค 7: ๊ธฐ์—… ๋‚ด๋ถ€ ์ง€์‹ ๊ฒ€์ƒ‰

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ์‚ฌ๋‚ด Wiki, ๊ธฐ์ˆ  ๋ฌธ์„œ ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์—์ด์ „ํŠธ๊ฐ€ ์ด๋Ÿฌํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์Šค์—์„œ ์šฐ์„ ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ฌด๊ด€ํ•œ ์™ธ๋ถ€ ์‚ฌ์ดํŠธ๋Š” ์ฐจ๋‹จํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ: Brave Search + Goggles

Brave์˜ Goggles ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒ€์ƒ‰ ์ˆœ์œ„ ๊ทœ์น™์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๋ฌธ์„œ ์‚ฌ์ดํŠธ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๋†’์ด๊ณ  ๊ฒฝ์Ÿ์‚ฌ ์‚ฌ์ดํŠธ๋Š” ๋‚ฎ์ถ”๊ฑฐ๋‚˜ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: brave
      maxResults: 8
      brave:
        apiKey:
          source: env
          provider: default
          id: BRAVE_API_KEY
        # Goggles URL: search.brave.com/goggles์—์„œ ์ƒ์„ฑ ๋ฐ ๊ฒŒ์‹œ ํ›„ ํš๋“
        goggles_id: "https://raw.githubusercontent.com/your-org/goggles/main/internal-docs.goggle"
        freshness: pm           # ์ตœ๊ทผ ํ•œ ๋‹ฌ ๋‚ด ์ฝ˜ํ…์ธ  ๊ฒ€์ƒ‰

Goggles ์„ค์ • ์˜ˆ์‹œ (.goggle ํŒŒ์ผ ๋‚ด์šฉ):

# ๊ธฐ์—… ๋‚ด๋ถ€ ๋ฌธ์„œ ์šฐ์„ ์ˆœ์œ„ ์ตœ๊ณ 
$boost=10,site=docs.yourcompany.com
$boost=10,site=wiki.yourcompany.com

# ๊ฒฝ์Ÿ์‚ฌ ์‚ฌ์ดํŠธ ๊ฐ€์ค‘์น˜ ํ•˜๋ฝ
$downrank=5,site=competitor.com

# ์ €ํ’ˆ์งˆ ์ŠคํŒธ ์‚ฌ์ดํŠธ ์ฐจ๋‹จ
$discard,site=spamsite.example

์‹œ๋‚˜๋ฆฌ์˜ค 8: ๋‹ค๊ตญ์–ด ์‹œ์žฅ ์กฐ์‚ฌ

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ๊ธ€๋กœ๋ฒŒ ์‹œ์žฅ ๋ถ„์„์„ ์œ„ํ•ด ๊ฐ ๊ตญ๊ฐ€/์–ธ์–ด ํ™˜๊ฒฝ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ํ˜„์ง€ ๊ฒฝ์Ÿ ์ƒํ™ฉ์„ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถ”์ฒœ: SerpAPI (location + hl + gl ์กฐํ•ฉ)

SerpAPI๋Š” ์ •๋ฐ€ํ•œ ์ง€๋ฆฌ์  ์œ„์น˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ง€์›ํ•˜์—ฌ ํŠน์ • ๋„์‹œ์˜ ์‚ฌ์šฉ์ž์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: serpapi
      serpapi:
        apiKey:
          source: env
          provider: default
          id: SERPAPI_API_KEY
        engine: google
        # ์˜ˆ: ๋…์ผ ๋ฒ ๋ฅผ๋ฆฐ ์‚ฌ์šฉ์ž ์‹œ๋ฎฌ๋ ˆ์ด์…˜
        location: "Berlin, Berlin, Germany"
        hl: de          # ์ธํ„ฐํŽ˜์ด์Šค ์–ธ์–ด: ๋…์ผ์–ด
        gl: de          # ์ง€์—ญ: ๋…์ผ

๋‹ค๊ตญ์–ด ์‹œ์žฅ ์„ค์ • ์ „๋žต: ๊ฐ ์—์ด์ „ํŠธ ์ž‘์—…์— location / hl / gl ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋™์ ์œผ๋กœ ์ „๋‹ฌํ•˜์—ฌ ํ•˜๋‚˜์˜ Provider๋กœ ๊ธ€๋กœ๋ฒŒ ์‹œ์žฅ์„ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์‹œ์žฅlocationhlgl
๋ฏธ๊ตญNew York, New York, United Statesenus
์˜๊ตญLondon, England, United Kingdomengb
๋…์ผBerlin, Berlin, Germanydede
์ผ๋ณธTokyo, Tokyo, Japanjajp
ํ”„๋ž‘์ŠคParis, Ile-de-France, Francefrfr
๋ธŒ๋ผ์งˆSรฃo Paulo, Sรฃo Paulo, Brazilptbr

์‹œ๋‚˜๋ฆฌ์˜ค 9: ๊ณ ๋นˆ๋„ ์ €๋น„์šฉ ๋Œ€๋Ÿ‰ ์ž‘์—…

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ์—์ด์ „ํŠธ๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๊ฒ€์ƒ‰์„ ํŠธ๋ฆฌ๊ฑฐํ•ด์•ผ ํ•˜๋ฉฐ(์˜ˆ: ๋ช‡ ๋ถ„ ๊ฐ„๊ฒฉ ํ‚ค์›Œ๋“œ ๋ชจ๋‹ˆํ„ฐ๋ง), ๋น„์šฉ์ด ๊ฐ€์žฅ ํฐ ๊ณ ๋ ค ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์ถ”์ฒœ: Serper.dev ๋Œ€๋Ÿ‰ ์š”๊ธˆ์ œ + ๊ณต๊ฒฉ์ ์ธ ์บ์‹œ ์ „๋žต

Serper ๋Œ€๋Ÿ‰ ๊ตฌ๋งค ์‹œ 1,000ํšŒ๋‹น $0.30๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋ฉฐ, ํ•ฉ๋ฆฌ์ ์ธ ์บ์‹œ๋ฅผ ์ ์šฉํ•˜๋ฉด ์—…๊ณ„ ์ตœ์ € ์ˆ˜์ค€์œผ๋กœ ์šด์˜ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: serper
      maxResults: 5             # ์ตœ์†Œํ•œ์˜ ํ•„์š”๋Ÿ‰๋งŒ ์„ค์ •
      timeoutSeconds: 15        # ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋น ๋ฅธ ์‹คํŒจ ์œ ๋„
      cacheTtlMinutes: 120      # 2์‹œ๊ฐ„ ์บ์‹œ, ๋™์ผ ์ฟผ๋ฆฌ ์ค‘๋ณต ๋ฐฉ์ง€
      serper:
        apiKey:
          source: env
          provider: default
          id: SERPER_API_KEY
        type: search
        num: 5

๋น„์šฉ ๊ณ„์‚ฐ ๋น„๊ต (์›” 10,000ํšŒ ๊ฒ€์ƒ‰ ๊ธฐ์ค€):

Provider๋‹จ๊ฐ€์›” ๋น„์šฉ
SerpAPI$7.50/1k$75
Perplexity sonar-pro$6/M tokens (์•ฝ $3/1k)$30
Serper.dev$0.30/1k$3
Tavily basic~ํšŒ๋‹น $0.004$40

2์‹œ๊ฐ„ ์บ์‹œ๋ฅผ ์ ์šฉํ•˜๋ฉด ์‹ค์ œ ์œ ํšจ ํ˜ธ์ถœ๋Ÿ‰์€ ์›๋ณธ์˜ 30%โ€“50%๋กœ ์ค„์–ด๋“ค์–ด ์‹ค์ œ ๋น„์šฉ์€ ๋” ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.


์‹œ๋‚˜๋ฆฌ์˜ค 10: $0 ์˜ˆ์‚ฐ์œผ๋กœ ์‹œ์ž‘

์š”๊ตฌ์‚ฌํ•ญ ํŠน์ง•: ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋‚˜ ์ดˆ๊ธฐ ๊ฒ€์ฆ ๋‹จ๊ณ„๋กœ ์ง€์ถœ์„ ์›์น˜ ์•Š์ง€๋งŒ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ธธ ์›ํ•ฉ๋‹ˆ๋‹ค.

์ „๋žต: ์„ธ ๊ฐ€์ง€ ๋ฌด๋ฃŒ ํ• ๋‹น๋Ÿ‰ ๊ต์ฐจ ์‚ฌ์šฉ

Provider๋ฌด๋ฃŒ ํ• ๋‹น๋Ÿ‰ํ•ฉ๊ณ„
Brave Search~1,000ํšŒ/์›”
Tavily1,000ํšŒ/์›”
SerpAPI250ํšŒ/์›”
ํ•ฉ๊ณ„~2,250ํšŒ/์›”

์„ค์ • ๋ฐฉ๋ฒ•์€ ์„ธ ๊ฐ€์ง€ API Key๋ฅผ ๋ชจ๋‘ ์ค€๋น„ํ•˜๊ณ , OpenClaw์˜ ๊ธฐ๋ณธ Provider๋ฅผ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ฒƒ์œผ๋กœ ์ง€์ •ํ•œ ๋’ค ํ• ๋‹น๋Ÿ‰์ด ์†Œ์ง„๋˜๋ฉด ์ˆ˜๋™/์ž๋™์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: tavily          # ๋ฉ”์ธ: ๋งค์›” 1000ํšŒ ๋ฌด๋ฃŒ
      maxResults: 5
      cacheTtlMinutes: 60       # ๋ฌด๋ฃŒ ํ• ๋‹น๋Ÿ‰ ํšจ์œจ ๊ทน๋Œ€ํ™”
      tavily:
        apiKey:
          source: env
          provider: default
          id: TAVILY_API_KEY
        searchDepth: basic      # 1 credit ์†Œ๋ชจ๋˜๋Š” basic ์‚ฌ์šฉ (advanced๋Š” 2 credits)
        maxResults: 5
        includeAnswer: true

ํ• ๋‹น๋Ÿ‰์ด ๊ฑฐ์˜ ์†Œ์ง„๋˜๋ฉด provider: brave๋กœ ํ•œ ์ค„๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

[!TIP]
Tavily Dashboard์—์„œ ์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ๋Ÿ‰์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์•Œ๋žŒ์„ ์„ค์ •ํ•˜์—ฌ ํ•œ๋„ ๋„๋‹ฌ ์ „ ๋ฏธ๋ฆฌ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

4. ์‹œ๋‚˜๋ฆฌ์˜ค โ†’ Provider ํ€ต ์š”์•ฝํ‘œ

์‹œ๋‚˜๋ฆฌ์˜ค์ถ”์ฒœ Providerํ•ต์‹ฌ ์„ค์ • ํŒŒ๋ผ๋ฏธํ„ฐ์›” ๋น„์šฉ ์ถ”์ • (1kํšŒ)
์ฝ”๋“œ ๋ฌธ๋‹ต ์—์ด์ „ํŠธPerplexitysearchDomainFilter, model: sonar~$1
๋‰ด์Šค ์š”์•ฝ ๋ด‡Serper.devtype: news, cacheTtlMinutes: 30$0.30โ€“$1
ํ•™์ˆ  ์—ฐ๊ตฌ ์—์ด์ „ํŠธExaincludeDomains, endpoint: auto์‚ฌ์šฉ๋Ÿ‰ ๊ณผ๊ธˆ
X/Twitter ์—ฌ๋ก  ๋ชจ๋‹ˆํ„ฐ๋งGrokx_search, allowedXHandles$10/1k ํ˜ธ์ถœ
์ด์ปค๋จธ์Šค ๊ฐ€๊ฒฉ ์ถ”์ SerpAPIengine: google_shopping, gl$7.50
SEO ์ฝ˜ํ…์ธ  ์ƒ์„ฑDataForSEOmode: normal, locationCode$0.60
๊ธฐ์—… ์ง€์‹ ๊ฒ€์ƒ‰Brave + Gogglesgoggles_id$5/1k
๋‹ค๊ตญ์–ด ์‹œ์žฅ ์กฐ์‚ฌSerpAPIlocation, hl, gl$7.50
๊ณ ๋นˆ๋„ ์ €๋น„์šฉ ๋ฐฐ์น˜Serper.devcacheTtlMinutes: 120$0.30โ€“$1
์˜ˆ์‚ฐ $0 ์‹œ์ž‘Tavily / Brave ๊ต์ฒดsearchDepth: basic, ์บ์‹œ$0

5. ์‹ฌํ™”: ๋‹ค์ค‘ Provider ์˜ˆ๋น„(Fallback) ์ „๋žต

์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฉ”์ธ Provider ์˜ค๋ฅ˜๋‚˜ ํ• ๋‹น๋Ÿ‰ ์†Œ์ง„ ์‹œ ์ž๋™์œผ๋กœ ์ „ํ™˜๋˜๋Š” ์˜ˆ๋น„ ์ „๋žต์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

tools:
  web:
    search:
      enabled: true
      provider: perplexity      # ๋ฉ”์ธ Provider
      maxResults: 5
      timeoutSeconds: 20        # 20์ดˆ ํ›„ ์˜ˆ๋น„ ๋กœ์ง ํŠธ๋ฆฌ๊ฑฐ
      perplexity:
        apiKey:
          source: env
          provider: default
          id: PERPLEXITY_API_KEY
        model: sonar

      # ์˜ˆ๋น„ Provider (๋ฉ”์ธ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ์‹œ ์ž๋™ ์ „ํ™˜)
      fallback:
        provider: serper
        serper:
          apiKey:
            source: env
            provider: default
            id: SERPER_API_KEY
          type: search
          num: 5

์˜ˆ๋น„ ๋กœ์ง์ด ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ์ƒํ™ฉ:

  • ๋ฉ”์ธ Provider๊ฐ€ 429(์†๋„ ์ œํ•œ ์ดˆ๊ณผ) ๋ฐ˜ํ™˜ ์‹œ
  • ๋ฉ”์ธ Provider ์‘๋‹ต ์‹œ๊ฐ„ ์ดˆ๊ณผ (timeoutSeconds ์„ค์ •๊ฐ’)
  • ๋ฉ”์ธ Provider๊ฐ€ 5xx ์—๋Ÿฌ(์„œ๋ฒ„ ์˜ค๋ฅ˜) ๋ฐ˜ํ™˜ ์‹œ

6. ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

Q1: Provider๋ฅผ ์„ค์ •ํ–ˆ์ง€๋งŒ ์—์ด์ „ํŠธ๊ฐ€ ๊ฒ€์ƒ‰์„ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š์Œ

์›์ธ: ์—์ด์ „ํŠธ ํ”„๋กฌํ”„ํŠธ์— ๊ฒ€์ƒ‰ ๋„๊ตฌ ์‚ฌ์šฉ ์ง€์นจ์ด ์—†๊ฑฐ๋‚˜, ๋ชจ๋ธ์ด ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์ด ํ•„์š” ์—†๋‹ค๊ณ  ํŒ๋‹จํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ: ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ง€์นจ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

์ตœ์‹  ์ •๋ณด๊ฐ€ ๋ถˆํ™•์‹คํ•  ๊ฒฝ์šฐ ๋Šฅ๋™์ ์œผ๋กœ ๊ฒ€์ƒ‰ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ํš๋“ํ•˜๊ณ , ํ•™์Šต ๋ฐ์ดํ„ฐ์— ์˜์กดํ•œ ์ถ”์ธก์„ ํ•˜์ง€ ๋งˆ์„ธ์š”.

Q2: Perplexity searchDomainFilter๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

์›์ธ: ๋„๋ฉ”์ธ ํ˜•์‹์— https:// ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ํฌํ•จํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ:

# ์ž˜๋ชป๋œ ์˜ˆ
searchDomainFilter:
  - "https://github.com"

# ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ
searchDomainFilter:
  - "github.com"

Q3: Serper.dev ๊ฒฐ๊ณผ๊ฐ€ Google ์ง์ ‘ ๊ฒ€์ƒ‰๊ณผ ๋‹ค๋ฆ„

์›์ธ: Serper๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฏธ๊ตญ ์ง€์—ญ ๊ฒ€์ƒ‰์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์ง€์—ญ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•˜๋ฉด gl ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ:

serper:
  type: search
  gl: kr    # ํ•œ๊ตญ ๊ฒฐ๊ณผ
  hl: ko

Q4: Grok x_search์—์„œ X ํ”Œ๋žซํผ ์ฝ˜ํ…์ธ ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์Œ

์›์ธ: ์ด์ „ ๋ฐฉ์‹์ธ search_parameters ์„ค์ •์€ 2025๋…„ 12์›”๋ถ€๋กœ ํ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด tools ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ: ์‹œ๋‚˜๋ฆฌ์˜ค 4์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ tools: [{type: x_search}] ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๊ณ  OpenClaw๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.

Q5: DataForSEO normal ๋ชจ๋“œ์—์„œ ์‘๋‹ต์ด ๋„ˆ๋ฌด ๋Šฆ์Œ

์›์ธ: normal ๋ชจ๋“œ๋Š” ํ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ํ‰๊ท  3โ€“5๋ถ„์ด ์†Œ์š”๋˜๋ฉฐ ์ด๋Š” ์ •์ƒ์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ: ์‹ค์‹œ๊ฐ„ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•˜๋ฉด mode: live๋กœ ์ „ํ™˜ํ•˜์„ธ์š” ($0.002, ์•ฝ 3๋ฐฐ ๋น„์Œˆ). ๋Œ€๋Ÿ‰ SEO ๋ถ„์„์€ 5๋ถ„ ์ •๋„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Q6: ๋ฌด๋ฃŒ ํ• ๋‹น๋Ÿ‰ ์†Œ์ง„ ํ›„ ์—์ด์ „ํŠธ ์—๋Ÿฌ ๋ฐœ์ƒ

์›์ธ: ์˜ˆ๋น„ Provider๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์•„ ๋‹จ์ผ Provider ์‹คํŒจ ์‹œ ์ „์ฒด ์š”์ฒญ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ: 5์ ˆ์˜ fallback ์„ค์ •์„ ์ ์šฉํ•˜๊ฑฐ๋‚˜ OpenClaw ์•Œ๋ฆผ์—์„œ ํ• ๋‹น๋Ÿ‰ ๊ฒฝ๊ณ ๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฏธ๋ฆฌ ๊ต์ฒดํ•˜์„ธ์š”.

7. ํ–ฅํ›„ ๋ฐœ์ „ ๋ฐฉํ–ฅ

  • ์ฟผ๋ฆฌ ์œ ํ˜•๋ณ„ ์ง€๋Šฅํ˜• ๋ผ์šฐํŒ…: ์ฝ”๋“œ ์งˆ๋ฌธ์€ Perplexity, ๋‰ด์Šค๋Š” Serper, ํ•™์ˆ ์€ Exa๋กœ ๋ณด๋‚ด๋„๋ก ์—์ด์ „ํŠธ ํ”„๋กฌํ”„ํŠธ ์ตœ์ ํ™”
  • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ 2์ฐจ ์ฒ˜๋ฆฌ: Firecrawl๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์š”์•ฝ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ „์ฒด ํŽ˜์ด์ง€ ๋ณธ๋ฌธ ํฌ๋กค๋ง
  • ์‚ฌ์šฉ๋Ÿ‰ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ž๋™ ์ „ํ™˜: ๊ฐ Provider์˜ ์‚ฌ์šฉ๋Ÿ‰ API๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ํ• ๋‹น๋Ÿ‰ 20% ์ž”์—ฌ ์‹œ ์ž๋™ ์ „ํ™˜
  • ๊ฒฐ๊ณผ ํ’ˆ์งˆ ํ‰๊ฐ€: ๋™์ผ ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ๊ฐ Provider์˜ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ์ตœ์  ์„ค์ • ๊ณ ๋„ํ™”

์ถ”๊ฐ€ ์ž๋ฃŒ:

OpenClaw ๊ฒ€์ƒ‰ Provider ์„ ์ • ๊ฐ€์ด๋“œ (Brave/Gemini/Grok/Tavily/SerpAPI ๋“ฑ)