OpenClaw ๊ฒ์ Provider ์ ์ ๊ฐ์ด๋ (Brave/Gemini/Grok/Tavily/SerpAPI ๋ฑ)
๋์ด๋: ์ค๊ธ | ์์ ์๊ฐ: 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 |
| ๊ณต์ | Gemini | Google ์ํ๊ณ, ์๋ Grounding | ๋ฌด๋ฃ ํ ๋น๋ ์ถฉ๋ถ | Prompt๋น ๊ณผ๊ธ |
| ๊ณต์ | Grok | ์น + X ํ๋ซํผ ์ด์ค ๊ฒ์ | ์์ | $10/1k ๋๊ตฌ ํธ์ถ |
| ๊ณต์ | Kimi | 256K ์ด์ฅ๋ฌธ ์ปจํ ์คํธ | ์์ | $0.60/M tokens |
| ์ 3์ | Tavily | LLM ์ต์ ํ, ๊ตฌ์กฐํ๋ ์ถ๋ ฅ | 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๋ก ๊ธ๋ก๋ฒ ์์ฅ์ ์ปค๋ฒํ ์ ์์ต๋๋ค:
| ์์ฅ | location | hl | gl |
|---|---|---|---|
| ๋ฏธ๊ตญ | New York, New York, United States | en | us |
| ์๊ตญ | London, England, United Kingdom | en | gb |
| ๋ ์ผ | Berlin, Berlin, Germany | de | de |
| ์ผ๋ณธ | Tokyo, Tokyo, Japan | ja | jp |
| ํ๋์ค | Paris, Ile-de-France, France | fr | fr |
| ๋ธ๋ผ์ง | Sรฃo Paulo, Sรฃo Paulo, Brazil | pt | br |
์๋๋ฆฌ์ค 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ํ/์ | |
| Tavily | 1,000ํ/์ | |
| SerpAPI | 250ํ/์ | |
| ํฉ๊ณ | ~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ํ) |
|---|---|---|---|
| ์ฝ๋ ๋ฌธ๋ต ์์ด์ ํธ | Perplexity | searchDomainFilter, model: sonar | ~$1 |
| ๋ด์ค ์์ฝ ๋ด | Serper.dev | type: news, cacheTtlMinutes: 30 | $0.30โ$1 |
| ํ์ ์ฐ๊ตฌ ์์ด์ ํธ | Exa | includeDomains, endpoint: auto | ์ฌ์ฉ๋ ๊ณผ๊ธ |
| X/Twitter ์ฌ๋ก ๋ชจ๋ํฐ๋ง | Grok | x_search, allowedXHandles | $10/1k ํธ์ถ |
| ์ด์ปค๋จธ์ค ๊ฐ๊ฒฉ ์ถ์ | SerpAPI | engine: google_shopping, gl | $7.50 |
| SEO ์ฝํ ์ธ ์์ฑ | DataForSEO | mode: normal, locationCode | $0.60 |
| ๊ธฐ์ ์ง์ ๊ฒ์ | Brave + Goggles | goggles_id | $5/1k |
| ๋ค๊ตญ์ด ์์ฅ ์กฐ์ฌ | SerpAPI | location, hl, gl | $7.50 |
| ๊ณ ๋น๋ ์ ๋น์ฉ ๋ฐฐ์น | Serper.dev | cacheTtlMinutes: 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์ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ์ฌ ์๋๋ฆฌ์ค๋ณ ์ต์ ์ค์ ๊ณ ๋ํ
์ถ๊ฐ ์๋ฃ: