Problem
diagnose_service and diagnose_pvc were added to all three surfaces, including small_agent. Measured cost on the small profile today:
|
tools |
schema |
| current |
16 |
8,107 chars |
| without the two |
14 |
7,046 chars |
That is +14% tools and +15% schema, retransmitted on every request. diagnose_pvc now has the longest description of all 16 tools (233 chars), and the four diagnose_* tools occupy the top four places by description length.
This was never costed against the small profile's design premise.
Why it matters
The small profile exists to shrink the surface for 3B-14B local models. Its own module docstring cites BFCL: small models are competitive on simple single-function calls but fall behind sharply on multi-function selection, and degrade with context length well below their advertised windows. Its budgets are sized for a ~4k-token serving context.
Adding two tools to that surface may be a net win — a single bounded call can replace a multi-step read sequence, which is exactly what a small model is bad at — or a net loss, because the selection space grew and every request pays for the schema. Both are plausible. Neither has been measured.
Published work says the schema is the high-leverage variable, so this is not a rounding error: EasyTool and Tool Documentation both find tool-description quality dominates prompt preamble for tool-selection accuracy.
Proposal
Fold this into the matched baseline-versus-diagnostic evaluation already planned in #176, as a third arm rather than a separate study:
- baseline — ordinary read tools only
- diagnostic (full surface) — current
small surface, 16 tools
- diagnostic (full/mcp only) — the two tools removed from
small_agent, 14 tools
Metrics that decide it: tool-selection accuracy on tasks where the diagnostic tool is not the right answer (does the bigger surface cause misselection?), evidence coverage, tool-call count, and tokens per turn.
Outcomes:
- arm 3 wins → restrict
surfaces to _FULL_AND_MCP, a one-line registry change;
- arm 2 wins → keep as-is, and the cost is justified by measurement rather than assumed;
- no measurable difference → keep as-is and record that the surface size is not the binding constraint at this scale.
Not urgent
Nothing is broken. This is a question the evaluation should answer while it is already set up to answer the adjacent one. Blocked on the same eval-harness gaps that block #176: the Service scenarios seed legacy Endpoints while diagnose_service reads EndpointSlice, and no bundled scenario exercises either tool.
Context: #191 (closed as not planned), #213, #216.
Problem
diagnose_serviceanddiagnose_pvcwere added to all three surfaces, includingsmall_agent. Measured cost on thesmallprofile today:That is +14% tools and +15% schema, retransmitted on every request.
diagnose_pvcnow has the longest description of all 16 tools (233 chars), and the fourdiagnose_*tools occupy the top four places by description length.This was never costed against the
smallprofile's design premise.Why it matters
The
smallprofile exists to shrink the surface for 3B-14B local models. Its own module docstring cites BFCL: small models are competitive on simple single-function calls but fall behind sharply on multi-function selection, and degrade with context length well below their advertised windows. Its budgets are sized for a ~4k-token serving context.Adding two tools to that surface may be a net win — a single bounded call can replace a multi-step read sequence, which is exactly what a small model is bad at — or a net loss, because the selection space grew and every request pays for the schema. Both are plausible. Neither has been measured.
Published work says the schema is the high-leverage variable, so this is not a rounding error: EasyTool and Tool Documentation both find tool-description quality dominates prompt preamble for tool-selection accuracy.
Proposal
Fold this into the matched baseline-versus-diagnostic evaluation already planned in #176, as a third arm rather than a separate study:
smallsurface, 16 toolssmall_agent, 14 toolsMetrics that decide it: tool-selection accuracy on tasks where the diagnostic tool is not the right answer (does the bigger surface cause misselection?), evidence coverage, tool-call count, and tokens per turn.
Outcomes:
surfacesto_FULL_AND_MCP, a one-line registry change;Not urgent
Nothing is broken. This is a question the evaluation should answer while it is already set up to answer the adjacent one. Blocked on the same eval-harness gaps that block #176: the Service scenarios seed legacy
Endpointswhilediagnose_servicereadsEndpointSlice, and no bundled scenario exercises either tool.Context: #191 (closed as not planned), #213, #216.