When a tool provider yields no model-visible tools (e.g. an MCP server whose tools are all app-only, after the visibility filtering in #594), BedrockLLMAgent still sends toolConfig: {"tools": []} — which Bedrock rejects (toolConfig.tools requires ≥1 entry) — and AnthropicAgent attaches an empty tools: [].
Guard both: only attach the tool config when it produces a non-empty tool list. Additive robustness fix; the only behavior change is not sending an empty tool list. (OpenAI agent has no tool_config path.)
When a tool provider yields no model-visible tools (e.g. an MCP server whose tools are all app-only, after the visibility filtering in #594),
BedrockLLMAgentstill sendstoolConfig: {"tools": []}— which Bedrock rejects (toolConfig.toolsrequires ≥1 entry) — andAnthropicAgentattaches an emptytools: [].Guard both: only attach the tool config when it produces a non-empty tool list. Additive robustness fix; the only behavior change is not sending an empty tool list. (OpenAI agent has no tool_config path.)