Skip to content

Add Keenable web search provider (keyless by default) - #5889

Open
ilya-bogin-keenable wants to merge 3 commits into
Mintplex-Labs:masterfrom
keenableai:feat/keenable-web-search
Open

Add Keenable web search provider (keyless by default)#5889
ilya-bogin-keenable wants to merge 3 commits into
Mintplex-Labs:masterfrom
keenableai:feat/keenable-web-search

Conversation

@ilya-bogin-keenable

Copy link
Copy Markdown

Adds Keenable as a web search provider for agent skills, alongside the existing
Tavily/Brave/SearXNG/DuckDuckGo/etc. providers.

The difference from the other providers is that it doesn't require an API key.
By default it uses Keenable's keyless public endpoint, so it works out of the
box (like DuckDuckGo). Setting an API key switches to the authenticated endpoint
and lifts the rate limits.

Changes

  • web-browsing.js: _keenableSearch provider + switch case. Maps results to
    the common {title, link, snippet} shape and reports citations like the others.
  • updateENV.js / systemSettings.js: AGENT_KEENABLE_API_KEY and
    AGENT_KEENABLE_API_URL, plus the agent_search_provider validation allowlist.
  • Frontend: provider entry in the web-search selector + an options form
    (optional API key, optional base URL) + icon.
  • .env.example (server + docker).

Config

  • API key: optional. Blank = keyless free tier; set it to lift limits.
  • AGENT_KEENABLE_API_URL: optional base-URL override (HTTPS enforced; defaults
    to https://api.keenable.ai).

Verified the provider against the public endpoint (keyless) and the frontend
forms parse/build clean.

Keenable is a web search API built for AI agents. Unlike the other providers,
it works without an API key by default (keyless public endpoint); setting
AGENT_KEENABLE_API_KEY uses the authenticated endpoint and lifts rate limits.

- web-browsing.js: _keenableSearch provider + switch case
- updateENV.js / systemSettings.js: AGENT_KEENABLE_API_KEY + AGENT_KEENABLE_API_URL
- agent_search_provider validation allowlist
- frontend: provider entry + options form (optional key, base URL) + icon
- .env.example (server + docker)
@timothycarambat timothycarambat added the Integration Request Request for support of a new LLM, Embedder, or Vector database label Jun 22, 2026
@timothycarambat

Copy link
Copy Markdown
Member

@ilya-bogin-keenable

Copy link
Copy Markdown
Author

Thanks, opened #6077 as the tracking issue for this.

@ilya-bogin-keenable

Copy link
Copy Markdown
Author

@timothycarambat the tracking issue is up: #6077 (opened the same day you asked, via the [FEAT]: template). Is there anything else you need from me before this can get a review?

Quick recap in case it helps: it adds Keenable as a web-search provider for the agent web-browsing skill, and it is the only one there that works with no API key (keyless endpoint by default; a key only lifts rate limits). 8 files / +174, purely additive, no behaviour change for the existing providers. Rebased on master and MERGEABLE.

Keenable returns both fields on every result: snippet carries the page text
and description is the page's meta description, which is empty for most
pages, so the agent received citations with an empty snippet. Keenable also
returns whole pages, so the text is collapsed and capped at 500 chars.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked Integration Request Request for support of a new LLM, Embedder, or Vector database

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants