find_capability misses FileStoreBlock for "save file output"
find_capability("save file output") should return FileStoreBlock. It doesn't return it at all — the top five are web-request blocks:
SendAuthenticatedWebRequestBlock, SendWebRequestBlock,
ReadSpreadsheetBlock, bash_exec, SaveCampaignSequencesBlock
This came out of the tier-0 retrieval benchmark on #14568. Of the 17 block cases where the registry loses to the recorded find_block results, 13 are labelled with blocks that are not in the CI index at all (their provider OAuth is unconfigured), and are now skipped. Of the four genuine ranking losses, three are defensible — a different pick inside the right neighbourhood:
| query | wanted | returned |
|---|---|---|
| Discord send edit message | ReplyToDiscordMessageBlock |
four Discord send/DM/file/embed blocks, wanted one at rank 6 |
| combine values into list | CreateListBlock |
ConcatenateListsBlock, ZipListsBlock, CombineTextsBlock, wanted one at rank 7 |
| text formatter template block | TextReplaceBlock |
FillTextTemplateBlock first, arguably the better answer |
save file output is the one that is simply wrong: nothing in the top five stores a file, and FileStoreBlock is in the index. Worth understanding why the query's tokens ("save", "file", "output") don't reach it — "output" likely pulls toward request/response blocks, and "save"/"store" may not be matching through the stemmer.
Repro, from autogpt_platform/backend:
from backend.copilot.capabilities.index import CapabilityIndex
from backend.copilot.capabilities.registry import build_entries
from backend.copilot.tools import TOOL_GROUPS, TOOL_REGISTRY
index = CapabilityIndex(build_entries(TOOL_REGISTRY, TOOL_GROUPS))
print(index.search("save file output").names[:5])
Source: Significant-Gravitas/AutoGPT