feat: olostep as alternative to tavily#148
Conversation
|
Nice addition — the branching is clean and Tavily is genuinely backward-compatible. A few things worth tightening before merge: 1. Validate
|
|
Thanks for the thorough review! I've pushed fixes addressing all the feedback:
Left out of scope (as you noted):
Ready for merge when you are! |
|
@jhkchan The requested changes have been made. I hope the olostep integration can be merged now :) |
|
Hi @umerkay — thanks for the olostep PR! The only failing check (Security Audit) is unrelated to your change — it's flagging CVEs in Let me know if you'd like me to push the rebase for you instead — happy to. |
|
@alan5543 I've merged the main branch into my work. There were some conflicts that I have resolved and run the local checks again. All looks good to merge. :) |
Summary
Adds Olostep's
/searchesendpoint as an optional alternative to Tavily for web search in QA external knowledge retrieval. The provider is selectable via theWEB_SEARCH_PROVIDERenvironment variable (default:tavilyfor full backward compatibility).OLOSTEP_API_KEYandWEB_SEARCH_PROVIDERconfig vars; provider branching insearch_external_knowledge()tavily; all existing installs unaffected unless explicitly reconfiguredCloses #
Test plan
make lintpasses locally (Python syntax validation)Manual verification:
python -m py_compile src/beever_atlas/infra/config.py python -m py_compile src/beever_atlas/agents/tools/external_tools.py python -c "from beever_atlas.agents.tools.external_tools import search_with_olostep; print('OK')"Screenshots (UI changes)
N/A — configuration-only feature.
Breaking changes
WEB_SEARCH_PROVIDERdefaults to'tavily'. Existing.envfiles without this var continue to work unchanged.Commit trailers checklist
Constraint:— Olostep SDK does not expose a/searchesnamespace; direct HTTP viahttpxrequiredRejected:— Considered pip-installingolosteppackage; rejected per requirements (HTTP-only integration)Directive:— Provider branching added around, not inside, existing Tavily call; Tavily logic remains unchanged to reduce regression riskConfidence:— high (straightforward provider pattern; no shared state or complex branching logic)Scope-risk:— narrow (new code paths only execute whenWEB_SEARCH_PROVIDER=olostep; all other code untouched)Not-tested:— Live API calls to Olostep endpoints not tested (requires valid credentials); mocked in CI onlygit commit -s) per DCO