Support developer-controlled built-in tool sets via builtinTools option
#150
Replies: 1 comment 1 reply
-
|
i like this direction, but i’d be pretty explicit about what layer it is. imo
so if i’d also want this to fail loudly when the requested tool set and sandbox do not match. e.g. the merge semantics are the part i’d pin down early:
that keeps harness/session/call-level overrides understandable. merging arrays across three scopes can get surprising fast. this also fits the explicit-sandbox direction from #57: tool visibility and environment capability become two separate knobs, which is the right split. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
builtinToolsto harness, session, and per-call options so developers can choose which built-in tools are visible to a model turn.builtinToolsis omitted:read,write,edit,bash,grep,glob, andtaskare all available.read,grep, andglob.Motivation
Flue already lets agent code attach custom tools at the harness and call scopes. This gives built-in tools the same shape.
Some agents do not need the full built-in tool set. A support agent backed by an R2 knowledge base may need to search and read files, but it may not need shell execution, file writes, file edits, or task spawning. A CI triage agent might make the opposite tradeoff.
Letting developers choose the built-in tools for an agent narrows the model's action space, can make tool selection more accurate, and avoids sending tool schemas the agent will not use. That can reduce token use, latency, and cost. It also gives application authors one guardrail among many against unwanted actions. Sandboxing is still the deeper isolation layer.
Test plan
pnpm install --frozen-lockfilepnpm run check:typesinpackages/runtimepnpm run buildinpackages/runtimepnpm run buildinpackages/cligit diff --checkOriginal implementation from #142 by @alanzabihi
Beta Was this translation helpful? Give feedback.
All reactions