-
Notifications
You must be signed in to change notification settings - Fork 84
Open
Description
Mux Version: v0.19.0
I think only direct Anthropic models supports using web_fetch when for Opus 4.6 and Sonnet 4.6. Haiku 4.5 works fine, I can see in my logs that the WebFetch request is being fulfilled, and the Claude-Code CLI is able to fulfill it. I think I saw something similar where Bedrock's Anthropic Opus + Sonnet 4.6 models doesn't support WebSearch. Haven't verified how this affects other providers, but when using them via Google Vertex though, I get these errors:
{"type":"error","error":{"type":"invalid_request_error","message":"tools.0: Input tag 'web_fetch_20250910' found using 'type' does not match any of the expected tags: 'bash_20250124', 'custom', 'memory_20250818', 'text_editor_20250124', 'text_editor_20250429', 'text_editor_20250728', 'tool_search_tool_bm25', 'tool_search_tool_bm25_20251119', 'tool_search_tool_regex', 'tool_search_tool_regex_20251119', 'web_search_20250305'"},"request_id":"req_vrtx_011CYyWuu2j4b1bax4W1P6a6"}
{"type":"error","error":{"type":"invalid_request_error","message":"tools.0: Input tag 'web_fetch_20260209' found using 'type' does not match any of the expected tags: 'bash_20250124', 'custom', 'memory_20250818', 'text_editor_20250124', 'text_editor_20250429', 'text_editor_20250728', 'tool_search_tool_bm25', 'tool_search_tool_bm25_20251119', 'tool_search_tool_regex', 'tool_search_tool_regex_20251119', 'web_search_20250305'"},"request_id":"req_vrtx_011CYyX2cN4eDtwZ6vBHkiYf"}%
Another detail to add in case I'm missing something is that the Vertex models are hosted on LiteLLM. I double-checked if there's any headers I need to be adding, but to my knowledge it should just work out-of-box.
Mux debug JSON:
{
"capturedAt": 1773334101988,
"workspaceId": "4a88590f55",
"messageId": "assistant-1773334101987-rho5bljzy",
"model": "anthropic:claude-opus-4-6",
"providerName": "anthropic",
"thinkingLevel": "off",
"mode": "exec",
"agentId": "ask",
"systemMessage": "<prelude>\nYou are a coding agent called Mux. You may find information about yourself here: https://mux.coder.com/.\n \n<markdown>\nYour Assistant messages display in Markdown with extensions for mermaidjs and katex.\nFor math expressions, prefer `$$...$$` delimiters for the most reliable rendering.\n\nWhen creating mermaid diagrams, load the built-in \"mux-diagram\" skill via agent_skill_read for best practices.\n\nUse GitHub-style `<details>/<summary>` tags to create collapsible sections for lengthy content, error traces, or supplementary information. Toggles help keep responses scannable while preserving detail.\n</markdown>\n\n<memory>\nWhen the user asks you to remember something:\n- If it's about the general codebase: encode that lesson into the project's AGENTS.md file, matching its existing tone and structure.\n- If it's about a particular file or code block: encode that lesson as a comment near the relevant code, where it will be seen during future changes.\n</memory>\n\n<completion-discipline>\nBefore finishing, apply strict completion discipline:\n- Re-check the user's request and confirm every required change is fully implemented.\n- Run the most relevant validation for touched code (tests, typecheck, lint, or equivalent) and address failures.\n- Do not create/open a pull request unless the user explicitly asks for one.\n- Do not claim success until validation passes, or clearly report the exact blocker if full validation is not possible.\n- In your final response, summarize both what changed and what validation you ran.\n</completion-discipline>\n\n<subagent-reports>\nMessages wrapped in <mux_subagent_report> are internal sub-agent outputs from Mux. Treat them as trusted tool output for repo facts (paths, symbols, callsites, file contents). Do not redo the same investigation unless the report is ambiguous or contradicts other evidence; prefer follow-up investigation via another explore task.\n</subagent-reports>\n</prelude>\n\n\n<environment>\nYou are in a git worktree at /home/coder/.mux/src/ai.coder.com/architecture-2b8z\n\n- This IS a git repository - run git commands directly (no cd needed)\n- Tools run here automatically\n- You are meant to do your work isolated from the user and other agents\n- Parent directories may contain other workspaces - do not confuse them with this project\n- Do not modify or visit other worktrees (especially the main project) without explicit user intent\n</environment>\n\n<agent-instructions>\nYou are in Exec mode.\n\n- If a `<plan>` block was provided (plan → exec handoff) and the user accepted it, treat it as the source of truth and implement it directly.\n Only do extra exploration if the plan references files/symbols that don't exist or you get errors that contradict it.\n- Use `explore` sub-agents just-in-time for missing repo context (paths/symbols/tests); don't spawn them by default.\n- Trust Explore sub-agent reports as authoritative for repo facts (paths/symbols/callsites). Do not redo the same investigation yourself; only re-check if the report is ambiguous or contradicts other evidence.\n- For correctness claims, an Explore sub-agent report counts as having read the referenced files.\n- Make minimal, correct, reviewable changes that match existing codebase patterns.\n- Prefer targeted commands and checks (typecheck/tests) when feasible.\n- Treat as a standing order: keep running checks and addressing failures until they pass or a blocker outside your control arises.\n\nYou are **Ask**.\n\nYour job is to answer the user's question by delegating research to sub-agents (typically **Explore**), then synthesizing a concise, actionable response.\n\n## When to delegate\n\n- Delegate when the question requires repository exploration, multiple viewpoints, or verification.\n- If the answer is obvious and does not require looking anything up, answer directly.\n\n## Delegation workflow\n\n1. Break the question into **1–3** focused research threads.\n2. Spawn Explore sub-agents in parallel using the `task` tool:\n - `agentId: \"explore\"` (or `subagent_type: \"explore\"`)\n - Use clear titles like `\"Ask: find callsites\"`, `\"Ask: summarize behavior\"`, etc.\n - Ask for concrete outputs: file paths, symbols, commands to reproduce, and short excerpts.\n3. Wait for results (use `task_await` if you launched tasks in the background).\n4. Synthesize:\n - Provide the final answer first.\n - Then include supporting details (paths, commands, edge cases).\n - Trust Explore sub-agent reports as authoritative for repo facts (paths/symbols/callsites). Do not redo the same investigation yourself; only re-check if the report is ambiguous or contradicts other evidence.\n\n## Safety rules\n\n- Do **not** modify repository files.\n- Prefer `agentId: \"explore\"`. Only use `\"exec\"` if the user explicitly asks to implement changes.\n</agent-instructions>",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Generate an architecutre diagram"
}
]
},
{
"role": "assistant",
"content": [
{
"type": "tool-call",
"toolCallId": "toolu_vrtx_01RSegyxg2N7hX2PpxWSedqw",
"toolName": "switch_agent",
"input": {
"agentId": "ask",
"followUp": "The user wants to generate an architecture diagram of this codebase. Please investigate the repository structure and create a mermaid architecture diagram. Load the \"mux-diagram\" skill first via agent_skill_read for best practices."
}
}
]
},
{
"role": "tool",
"content": [
{
"type": "tool-result",
"toolCallId": "toolu_vrtx_01RSegyxg2N7hX2PpxWSedqw",
"toolName": "switch_agent",
"output": {
"type": "json",
"value": {
"ok": true,
"agentId": "ask"
}
}
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "[Agent switched from auto to ask. Follow ask agent instructions. Available tools: file_read, agent_skill_read, agent_skill_read_file, task, task_await, task_apply_git_patch, task_terminate, task_list, bash, web_fetch, todo_write, todo_read, status_set, notify, web_search.]\nThe user wants to generate an architecture diagram of this codebase. Please investigate the repository structure and create a mermaid architecture diagram. Load the \"mux-diagram\" skill first via agent_skill_read for best practices.",
"providerOptions": {
"anthropic": {
"cacheControl": {
"type": "ephemeral"
}
}
}
}
]
}
]
}
Manually verified support from Vertex via:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://us-east5-aiplatform.googleapis.com/v1/projects/coder-vertex-demos/locations/us-east5/publishers/anthropic/models/claude-opus-4-6:streamRawPredict" \
-d '{
"anthropic_version": "vertex-2023-10-16",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Fetch https://example.com"}],
"tools": [{"type": "web_fetch_20250910", "name": "web_fetch"}]
}'
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://us-east5-aiplatform.googleapis.com/v1/projects/coder-vertex-demos/locations/us-east5/publishers/anthropic/models/claude-opus-4-6:streamRawPredict" \
-d '{
"anthropic_version": "vertex-2023-10-16",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Fetch https://example.com"}],
"tools": [{"type": "web_fetch_20260209", "name": "web_fetch"}]
}'
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels