feat: 웹검색에 Ollama Cloud API 폴백 추가 + ollama_web_search 이중화

- searchOllama()를 예전 tool_calls 방식에서 "코드가 검색 먼저 실행 →
  모델은 결과만 요약" 방식으로 교체 (모델이 검색 스킵하고 환각 답변하던
  버그 수정)
- ollama.com/api/web_search 기반 새 provider(ollama_cloud) 추가,
  web_search 폴백 순서: searxng → ollama_cloud → ddg → tavily →
  google → brave
- web_search와 ollama_web_search가 searchForSynthesis() 공통 헬퍼로
  같은 폴백 체인을 공유하도록 통합 (기존엔 ollama_web_search가 DDG
  단일 의존이라 SearXNG 이중화 혜택을 못 받았음)
- search.ollama_api_key 설정 필드 추가 (config.json, types.ts,
  settings.ts REST 라우트). 실제 키 값은 vault:search.ollama_api_key
  참조로 저장 — 평문은 config.json에도 git 히스토리에도 남기지 않음
  (.smallclaw/vault/ AES-256-GCM 암호화 저장소, gitignore 대상)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
kim
2026-07-12 00:08:20 +09:00
co-authored by Claude Sonnet 5
parent cec930c69c
commit e356573228
4 changed files with 102 additions and 60 deletions
+2 -1
View File
@@ -265,7 +265,8 @@
"search_rigor": "verified",
"google_cx": "",
"ollama_model": "",
"searxng_url": "http://localhost:8888"
"searxng_url": "http://localhost:8888",
"ollama_api_key": "vault:search.ollama_api_key"
},
"agent_policy": {
"force_web_for_fresh": true,