Add dynamic subagent delegation and Tavily web search - #100
Merged
Conversation
Features are accumulating toward a release whose timing is not decided yet, so the changelog gets an Unreleased section rather than a version. That is the Keep a Changelog convention this file already declares, and it avoids repeating what happened between 1.0.9 and 1.1.0: four months of work reconstructed from git history after the fact, and invisible to anyone watching in the meantime. Naming a version becomes a rename plus a date whenever the release is called. Covers the dynamic subagent delegation tool and the switch of google_search to Tavily with a DuckDuckGo fallback, both merged in #99. The release workflow is unaffected: its awk matches a specific version heading and stops at the next one, so an Unreleased section above cannot leak into release notes. Verified against both existing versions, and the tag trigger is v*, which Unreleased cannot match. Also documents TAVILY_API_KEY. tavily-python is already a declared dependency and the search path reads the variable, but nothing told anyone it exists — so google_search silently used the DuckDuckGo fallback with no hint that a key would change that. 865 tests, OK. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ToCUNy2SqwvfTq4a6xfSk1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces two new features to MATE:
Dynamic subagent delegation — orchestrator agents can now spawn ephemeral subagents and run them in parallel within a single turn. Subagents execute in-memory via
InMemorySessionServiceand an ADKRunner, create no database rows, and are equipped only with tools needed for their subtask. Only distilled results return to the parent, keeping raw search and tool output out of the root agent's context window. Token usage is recorded against the parent session and user. This feature is configurable per agent from the dashboard.Real-time web search via Tavily API — the
google_searchtool now uses the Tavily API whenTAVILY_API_KEYis set, and falls back to DuckDuckGo when the key is not provided.Changes Made
documents/DYNAMIC_SUBAGENTS.mdTAVILY_API_KEYconfiguration with fallback behavior documentationTAVILY_API_KEYto the environment variables reference tableImplementation Notes
documents/DYNAMIC_SUBAGENTS.mdfor detailed feature documentationhttps://claude.ai/code/session_01ToCUNy2SqwvfTq4a6xfSk1