docs(rfd): Add RFD 107 discoverable tools - #1142
Open
JeanMertz wants to merge 3 commits into
Open
Conversation
RFD 107 proposes a third tool enablement state. A `discoverable` tool sits in the catalogue and is permitted, but its definition is withheld from the model until a `search_tools` builtin finds it, at which point a `ConfigDelta` promotes it to offered for the rest of the conversation. This keeps a large MCP catalogue out of the context window without hiding capability from the user, and it works on every provider; only cache preservation across a discovery is Anthropic-specific. The design turns on two boundaries. The single `Vec<ToolDefinition>` that today serves the provider array, the `describe_tools` docs map, executor eligibility, and MCP startup splits into a catalogue and an offered subset, because a discoverable tool has to be searchable and callable while staying out of the provider's tools array. Promotion crosses the boundary RFD 078 closed against builtin config mutation, so it travels a host-owned channel carrying only tool names rather than `outcome.config`, and is folded against the state at its own position so it cannot silently revert a disable the user approved earlier in the same cycle. RFD 105 gains a paragraph recording why deferring tool search is not neutral: its initial directive offers every enabled tool and withdraws every disabled one, leaving discovery nowhere to operate until the third state exists. The relationship is recorded as `Extends` on both RFD 081, whose enablement model 107 widens, and RFD 078. Signed-off-by: Jean Mertz <git@jeanmertz.com>
Signed-off-by: Jean Mertz <git@jeanmertz.com>
Signed-off-by: Jean Mertz <git@jeanmertz.com>
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.
RFD 107 proposes a third tool enablement state. A
discoverabletool sits in the catalogue and is permitted, but its definition is withheld from the model until asearch_toolsbuiltin finds it, at which point aConfigDeltapromotes it to offered for the rest of the conversation. This keeps a large MCP catalogue out of the context window without hiding capability from the user, and it works on every provider; only cache preservation across a discovery is Anthropic-specific.The design turns on two boundaries. The single
Vec<ToolDefinition>that today serves the provider array, thedescribe_toolsdocs map, executor eligibility, and MCP startup splits into a catalogue and an offered subset, because a discoverable tool has to be searchable and callable while staying out of the provider's tools array. Promotion crosses the boundary RFD 078 closed against builtin config mutation, so it travels a host-owned channel carrying only tool names rather thanoutcome.config, and is folded against the state at its own position so it cannot silently revert a disable the user approved earlier in the same cycle.RFD 105 gains a paragraph recording why deferring tool search is not neutral: its initial directive offers every enabled tool and withdraws every disabled one, leaving discovery nowhere to operate until the third state exists. The relationship is recorded as
Extendson both RFD 081, whose enablement model 107 widens, and RFD 078.