SurfSense/surfsense_backend/app/agents/multi_agent_chat
CREDO23 482aefc32a refactor(agents): SRP main-agent tool registry, decoupled from BUILTIN_TOOLS
The main agent only exposes 4 SurfSense tools (web_search, scrape_webpage,
update_memory, create_automation) and delegates connectors/MCP/deliverables
to subagents. Yet it built those 4 by importing and iterating the 900-line,
connector-laden shared BUILTIN_TOOLS via build_tools_async.

Introduce app/agents/multi_agent_chat/main_agent/tools/registry.py owning
just those 4 factories, and switch runtime/factory.py to build_main_agent_tools.
Binding order is preserved (scrape_webpage, web_search, create_automation,
update_memory) to match prior behavior exactly.

shared/tools/registry.py BUILTIN_TOOLS is intentionally unchanged: it remains
the app-wide tool *metadata* catalog used by action_log (revert/dedup
resolvers for subagent-executed connector tools) and the /agent/tools
listing endpoint.

Verified: full unit suite green (2431 passed, 1 skipped); import-all guard ok.
2026-06-04 19:01:44 +02:00
..
main_agent refactor(agents): SRP main-agent tool registry, decoupled from BUILTIN_TOOLS 2026-06-04 19:01:44 +02:00
shared refactor(agents): colocate middleware into vertical slices 2026-06-04 18:13:47 +02:00
subagents refactor(agents): colocate middleware into vertical slices 2026-06-04 18:13:47 +02:00
__init__.py fix(stream): route every agent (re)build through one helper to prevent factory drift 2026-05-05 23:35:23 +02:00
constants.py multi_agent_chat/subagents: dict-keyed middleware_stack + always-on KB 2026-05-12 18:04:54 +02:00