Repository navigation
feat(providers/anthropic): support the computer_toolset_20260801 computer use toolset - #80
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
ibetitsmike
added a commit
to coder/coder
that referenced
this pull request
Oct 29, 2026
Claude 5.5 models accept computer use only through the GA toolset computer_toolset_20260801, so computer use subagents on those models failed on their first request. Bump the coder/fantasy pin to coder/fantasy#80 and pick the Anthropic tool version from the chat's model. For the toolset, follow its batch contract: actions answer with text, the last computer call of a step attaches a screenshot, cursor_position returns the position, key honors repeat, and zoom stays disabled. For every Anthropic version, run a step's computer calls serially, skip the rest of a step after a failed call, and read wait and hold_key durations as seconds.
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.
Problem
Claude 5.5 and later models on the Claude API accept computer use only through the generally available
computer_toolset_20260801toolset. Sendingcomputer_20251124fails with'claude-opus-5-5' does not support tool types: computer_20251124.Change
ComputerUseToolset20260801is a newComputerUseToolVersion. Callers keep the existing contract: a tool call namedcomputerwith a{"action": ..., ...}input. The provider maps that to and from the toolset wire format.{"type":"computer_toolset_20260801"}, plusconfigs.zoom.enabledwhenEnableZoomis set andcache_controlwhen set. Nonameor display fields, which the API rejects. No beta header and nobeta=truequery.tool_useblock with"toolset_name": "computer"is reported as toolcomputerwith input = member input plus"action": <member name>. Batches (several members in one response) come out as separate calls in order. In Stream, member deltas are not forwarded raw; the merged input is emitted once as a single delta at block close, so deltas, end, and the tool call agree.openToolBlockindex-drift handling is unchanged.computertool_use is replayed as{name: <action>, input: <input minus action>, toolset_name: "computer"}, and every matching tool_result getstoolset_name: "computer". A call with no stringactionis replayed as thescreenshotmember (it takes no input), so tool_use and tool_result stay paired, and a CallWarning is emitted. Withcomputer_20251124,computer_20250124, or no computer tool, replay is byte-for-byte unchanged.ComputerUseToolVersionForModel(modelID)returns the version the Claude API accepts: Claude 4.8 and later (all 5.x) get the toolset; Opus 4.5 to 4.7 and Sonnet 4.6 getcomputer_20251124; Sonnet 4.5, Haiku 4.5, and older getcomputer_20250124. IDs without a parseable version (for exampleclaude-mythos-preview) get the toolset. Bedrock does not offer the toolset, so this mapping is for the Claude API only.ComputerUseInputgainsRepeatfor the toolsetkeymember.Tests
New
computer_toolset_test.gocovers the version table (real IDs, including Vertex@date,anthropic/andus.anthropic.prefixes), the tool JSON and no beta flag, Generate mapping with no beta header or query, a Stream batch of two members next to a regular tool, and the exact replayed request JSON for the toolset, the missing-action fallback, and unchangedcomputer_20251124replay. I mutated each behavior and confirmed the matching test fails.go build ./...,go vet ./providers/anthropic/...,go test ./... -count=1,go test -race ./providers/anthropic/,gofumpt -l, andgolangci-lint run ./providers/anthropic/...pass.