#1658

Add toolbox and keep each conversation's tool list fixed

Draftfazxeswants to merge intofrom

Summary

  • Send the same tools with every request in a conversation: the built-in tools and a new toolbox tool. Selecting an MCP tool no longer adds it to the tool list.
  • Replace the skill list and the MCP server block in the prompt with a short toolbox menu that names each skill, MCP server, and built-in tool kept in toolbox.
  • Open a skill, an MCP server, or a tool with toolbox to get its instructions, its tools, or its definition.
  • Run a tool by name with toolbox. The run goes through the same permission checks, auto mode review holds, and subagent profile limits as a direct call, and the transcript and ACP clients show it as that tool.
  • Search skills, MCP tools, and the built-in tools kept in toolbox with toolbox.
  • Stop sending skill, capability_search, and mcp_select_tool to the model, and keep install_skill in toolbox by default.
  • Point a direct call of an MCP tool fx didn't send at toolbox run, without changing the tools.
  • Keep the menu as first sent for the whole conversation, and add a note to the turn naming what toolbox holds when a skill or MCP server is added or removed.
  • Fit the menu within skill_catalog_bytes, at most 32 KiB, and skill_description_bytes by shortening descriptions, then listing fewer entries, with a Ctrl+O notice.
  • Add the tool_placement setting, in ~/.fx/settings.json and workspace entries, to move built-in tools into toolbox or out of it.
  • Add fx config set, unset, and get for tool_placement.<tool>.
  • Add the --tool-placement <tool=toolbox|direct> launch flag to change placement for one run.
  • Give a subagent toolbox when its profile lists the tools toolbox replaces.
  • Count skills and MCP tools used through toolbox in compaction's record of what a conversation used.
  • Label a streaming toolbox call by what it opens, runs, or searches.

Docs: vercel-labs/fx-web#255

Activity

1
vercel-internal-security-reviewer[bot]8d ago

This pull request is a draft

Merging is unavailable until it is marked ready for review.