Skip to content

Tool mappers silently drop unsupported WebSearch config fields #231

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions