web search extension · .NET 10
dmon-websearch
An out-of-tree extension that gives dmon a web_search tool — implemented as an "agent-in-a-tool" that runs its own provider-grounded search and returns a digested, cited answer.
Agent-in-a-tool
To the primary agent it's an ordinary AIFunction; internally it runs its own scoped, single-turn IChatClient against a configured model.
Provider-grounded
Uses HostedWebSearchTool against a configured model (default gemini-2.5-flash) and returns a digested, cited answer.
Keeps context clean
Raw pages never reach the primary context — the sub-agent digests results so the primary stays focused and cheap.
Provider-agnostic primary
The primary agent stays provider-agnostic — web search works even when the primary is a local Ollama model.
Gated by the permission model
web_search is gated via IDmonExtension.Evaluate, following dmon's conservative permission model.
Reference extension
dmon's first real out-of-tree extension — it exercises the published contract surface (Dmon.Extensions, Dmon.Abstractions).
What it is
dmon-websearch is an out-of-tree extension package for
dmon — a .NET-native coding agent. It
provides a web_search tool to dmon’s primary agent.
The extension implements the agent-in-a-tool pattern: to the primary agent it is
an ordinary AIFunction, but internally it runs its own scoped, single-turn
IChatClient against a configured model (default gemini/gemini-2.5-flash) with
provider-grounded web search enabled (HostedWebSearchTool), and returns a
digested, cited answer. This keeps the primary agent provider-agnostic — it works
even when the primary is a local Ollama model — and keeps raw pages out of the
primary context.
Relationship to dmon-core
It consumes the contract packages Dmon.Extensions (the IDmonExtension contract)
and Dmon.Abstractions (IProviderFactory, ProviderConfig) as NuGet package
references. The binding architecture decisions (ADRs) live in
dmon-core and govern how this extension
loads, authenticates, and gates egress.
See the repository for configuration and the full ADR mapping.