Skip to content

Tool mappers silently drop unsupported WebSearch config fields #231

@Kamilbenkirane

Description

@Kamilbenkirane

Priority: High
Related: #199
Replaces: #223

All tool mappers silently drop WebSearch config fields the underlying API doesn't support. No warning, no error — the user thinks they're filtering domains but nothing happens.

Current behavior per provider:

Provider allowed_domains blocked_domains max_uses
Anthropic mapped mapped mapped
Google dropped mapped (as exclude_domains) dropped
OpenResponses/OpenAI mapped (as filters.allowed_domains) dropped dropped
Groq dropped dropped dropped
Moonshot dropped dropped dropped

Fix: Emit UnsupportedParameterWarning (not an error) when a non-None WebSearch field is dropped.

This follows celeste's existing pattern from PR #212 — warn and drop, don't error. Celeste is a primitive SDK (like Anthropic SDK, OpenAI SDK), not a framework. Primitives don't gatekeep — they normalize what they can and warn when something is lost. Users who want strict behavior can promote via warnings.filterwarnings("error", category=UnsupportedParameterWarning).

Example warning message:

WebSearch.blocked_domains is not supported by OpenResponses and will be ignored.
If this is now supported, please file an issue. Workaround: use a raw dict tool
(e.g. tools=[{"type": "web_search", "filters": {"blocked_domains": [...]}}]).

Files:

  • src/celeste/protocols/openresponses/tools.py (WebSearchMapper — warn on blocked_domains, max_uses)
  • src/celeste/providers/google/generate_content/tools.py (WebSearchMapper — warn on allowed_domains, max_uses)
  • src/celeste/providers/groq/chat/tools.py (WebSearchMapper — warn on all 3)
  • src/celeste/providers/moonshot/chat/tools.py (WebSearchMapper — warn on all 3)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions