Waterschap Brabantse Delta · R&D-lab · runbook
sonar-pro — de enige tier (met sonar-reasoning-pro) die tool-calling ondersteunt..env als EDDY_PERPLEXITY_API_KEY (de naam die de compose uitleest).Het anthropic-endpoint van Eddy draaide via de eddy-claude-bridge: die
leende een persoonlijk Claude-abonnement (Max/Team, OAuth) in plaats van een reguliere API-sleutel.
Dat valt buiten het bedoelde gebruik van de leverancier (risico voor dát account) en is aan de
limieten van een consumentenabonnement gebonden. Een eigen Perplexity-account geeft het waterschap
grip: eigen contract, geen ToS-risico, en een model dat als los onderdeel te vervangen is.
Eddy is een tool-gebruikende agent: elk antwoord kan een MCP-tool aanroepen (Z-info,
documenten, kaarten). Het model moet dus OpenAI-stijl tool_calls kunnen teruggeven op
het /chat/completions-endpoint. Getest tegen api.perplexity.ai op 2026-07-06:
tool_calls-antwoord; de rest weigert tools.| Model | Tool-calling | Uitkomst |
|---|---|---|
| sonar-pro | ✅ ja | 200 · correct tool_calls |
| sonar-reasoning-pro | ✅ ja | 200 · correct tool_calls |
| sonar | ❌ nee | 400 · "Tool calling is not supported" |
| sonar-reasoning | ❌ nee | 400 · "Tool calling is not supported" |
let op Zet de Eddy-agent nooit op
sonar of sonar-reasoning — dan vallen alle MCP-tools stil en wordt Eddy
een gewone webzoek-chat. Gebruik sonar-pro (default).
main gemerged (eddy#9, infra#24).| Bestand | Wijziging |
|---|---|
eddy/librechat/librechat.yaml | Perplexity als OpenAI-compatibel custom-endpoint (baseURL https://api.perplexity.ai, sleutel ${PERPLEXITY_API_KEY}, modellen sonar-pro/sonar-reasoning-pro). |
infra/stacks/eddy/compose.yml | Passthrough PERPLEXITY_API_KEY: ${EDDY_PERPLEXITY_API_KEY} naar de librechat-container. |
infra/cloud/.env (hub, niet in git) | EDDY_PERPLEXITY_API_KEY=pplx-… |
Eddy #9 (librechat.yaml) en infra #24 (compose-passthrough) staan op main.
Op de hub, in ~/infra/cloud/.env. Naam = EDDY_PERPLEXITY_API_KEY
(dat is de naam die de compose uitleest). Een tweede naam EDDY_PERPLEXITY_KEY
met dezelfde waarde is onschadelijk maar wordt niet gelezen.
EDDY_PERPLEXITY_API_KEY=pplx-…
De hub deployt infra vanaf feat/nextcloud; die branch mist infra#24
nog. Haal alléén die wijziging binnen (cherry-pick) of merge main erin, zodat
stacks/eddy/compose.yml de PERPLEXITY_API_KEY-regel bevat.
cd ~/infra && git cherry-pick <infra#24-sha> grep -n PERPLEXITY stacks/eddy/compose.yml # verifieer
De hub-~/eddy staat op main maar loopt achter op eddy#9. De eddy-stack
mount deze librechat.yaml, dus die moet het Perplexity-endpoint bevatten.
cd ~/eddy && git pull --ff-only grep -n Perplexity librechat/librechat.yaml # verifieer
Recreëert de librechat-container zodat die de nieuwe librechat.yaml én de nieuwe
env-variabele oppikt.
cd ~/infra/cloud && ./stack eddy up -d
Het model van de Eddy-agent (agent_gobe34Z5dkTOJ5cmWcSjW) staat in Mongo, niet in
de yaml. Zet het in de LibreChat Agent Builder om: endpoint → Perplexity, model →
sonar-pro, opslaan. (Alternatief: direct in eddy-mongo.)
Open Eddy op eddy.wbd-rd.nl en stel een vraag die een tool
vereist, bijv. een niveau/debiet van een gemaal. Als Eddy de Z-info-tool aanroept en met echte
meetdata + grafiek antwoordt, werkt de tool-lus op het nieuwe model. Controleer daarnaast dat het
Perplexity-endpoint in de modelkiezer verschijnt en dat de eddy-claude-bridge
geen verkeer meer krijgt.
EDDY_PERPLEXITY_API_KEY; een afwijkende
naam (bijv. EDDY_PERPLEXITY_KEY) wordt genegeerd.infra vanaf feat/nextcloud, niet
main; wijzigingen op main landen pas na cherry-pick/merge.De eddy-claude-bridge en het anthropic-endpoint blijven voorlopig staan.
Terugrollen = het agent-model in de Agent Builder terugzetten op claude-haiku-4-5
(endpoint anthropic). Geen herbouw nodig; dit is precies waarom het model uitwisselbaar is.
docs/decisions.md besluit 7, en librechat/librechat.yaml.
git.wbd-rd.nl/RnD/eddy ↗
geraadpleegd 2026-07-06stacks/eddy/compose.yml + cloud/ deploy-helper.
git.wbd-rd.nl/RnD/infra ↗
geraadpleegd 2026-07-06api.perplexity.ai/chat/completions.
test 2026-07-06