feat: parallel tool calling minimax provider [LET-7647] (#9613)
* feat: parallel tool calling minimax provider * stage publish api
This commit is contained in:
@@ -31649,6 +31649,88 @@
|
||||
"type": "array",
|
||||
"title": "Isolated Block Ids",
|
||||
"description": "IDs of blocks that are isolated (specific to this conversation, overriding agent defaults)."
|
||||
},
|
||||
"model": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Model",
|
||||
"description": "The model handle for this conversation (overrides agent's model). Format: provider/model-name."
|
||||
},
|
||||
"model_settings": {
|
||||
"anyOf": [
|
||||
{
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/OpenAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/AnthropicModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GoogleAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GoogleVertexModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/AzureModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/XAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/ZAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GroqModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/DeepseekModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/TogetherModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/BedrockModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/OpenRouterModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/ChatGPTOAuthModelSettings"
|
||||
}
|
||||
],
|
||||
"discriminator": {
|
||||
"propertyName": "provider_type",
|
||||
"mapping": {
|
||||
"anthropic": "#/components/schemas/AnthropicModelSettings",
|
||||
"azure": "#/components/schemas/AzureModelSettings",
|
||||
"bedrock": "#/components/schemas/BedrockModelSettings",
|
||||
"chatgpt_oauth": "#/components/schemas/ChatGPTOAuthModelSettings",
|
||||
"deepseek": "#/components/schemas/DeepseekModelSettings",
|
||||
"google_ai": "#/components/schemas/GoogleAIModelSettings",
|
||||
"google_vertex": "#/components/schemas/GoogleVertexModelSettings",
|
||||
"groq": "#/components/schemas/GroqModelSettings",
|
||||
"openai": "#/components/schemas/OpenAIModelSettings",
|
||||
"openrouter": "#/components/schemas/OpenRouterModelSettings",
|
||||
"together": "#/components/schemas/TogetherModelSettings",
|
||||
"xai": "#/components/schemas/XAIModelSettings",
|
||||
"zai": "#/components/schemas/ZAIModelSettings"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Model Settings",
|
||||
"description": "The model settings for this conversation (overrides agent's model settings)."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
@@ -32960,6 +33042,88 @@
|
||||
],
|
||||
"title": "Isolated Block Labels",
|
||||
"description": "List of block labels that should be isolated (conversation-specific) rather than shared across conversations. New blocks will be created as copies of the agent's blocks with these labels."
|
||||
},
|
||||
"model": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Model",
|
||||
"description": "The model handle for this conversation (overrides agent's model). Format: provider/model-name."
|
||||
},
|
||||
"model_settings": {
|
||||
"anyOf": [
|
||||
{
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/OpenAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/AnthropicModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GoogleAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GoogleVertexModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/AzureModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/XAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/ZAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GroqModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/DeepseekModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/TogetherModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/BedrockModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/OpenRouterModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/ChatGPTOAuthModelSettings"
|
||||
}
|
||||
],
|
||||
"discriminator": {
|
||||
"propertyName": "provider_type",
|
||||
"mapping": {
|
||||
"anthropic": "#/components/schemas/AnthropicModelSettings",
|
||||
"azure": "#/components/schemas/AzureModelSettings",
|
||||
"bedrock": "#/components/schemas/BedrockModelSettings",
|
||||
"chatgpt_oauth": "#/components/schemas/ChatGPTOAuthModelSettings",
|
||||
"deepseek": "#/components/schemas/DeepseekModelSettings",
|
||||
"google_ai": "#/components/schemas/GoogleAIModelSettings",
|
||||
"google_vertex": "#/components/schemas/GoogleVertexModelSettings",
|
||||
"groq": "#/components/schemas/GroqModelSettings",
|
||||
"openai": "#/components/schemas/OpenAIModelSettings",
|
||||
"openrouter": "#/components/schemas/OpenRouterModelSettings",
|
||||
"together": "#/components/schemas/TogetherModelSettings",
|
||||
"xai": "#/components/schemas/XAIModelSettings",
|
||||
"zai": "#/components/schemas/ZAIModelSettings"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Model Settings",
|
||||
"description": "The model settings for this conversation (overrides agent's model settings)."
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
@@ -47553,6 +47717,88 @@
|
||||
],
|
||||
"title": "Summary",
|
||||
"description": "A summary of the conversation."
|
||||
},
|
||||
"model": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Model",
|
||||
"description": "The model handle for this conversation (overrides agent's model). Format: provider/model-name."
|
||||
},
|
||||
"model_settings": {
|
||||
"anyOf": [
|
||||
{
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/OpenAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/AnthropicModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GoogleAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GoogleVertexModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/AzureModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/XAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/ZAIModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/GroqModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/DeepseekModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/TogetherModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/BedrockModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/OpenRouterModelSettings"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/ChatGPTOAuthModelSettings"
|
||||
}
|
||||
],
|
||||
"discriminator": {
|
||||
"propertyName": "provider_type",
|
||||
"mapping": {
|
||||
"anthropic": "#/components/schemas/AnthropicModelSettings",
|
||||
"azure": "#/components/schemas/AzureModelSettings",
|
||||
"bedrock": "#/components/schemas/BedrockModelSettings",
|
||||
"chatgpt_oauth": "#/components/schemas/ChatGPTOAuthModelSettings",
|
||||
"deepseek": "#/components/schemas/DeepseekModelSettings",
|
||||
"google_ai": "#/components/schemas/GoogleAIModelSettings",
|
||||
"google_vertex": "#/components/schemas/GoogleVertexModelSettings",
|
||||
"groq": "#/components/schemas/GroqModelSettings",
|
||||
"openai": "#/components/schemas/OpenAIModelSettings",
|
||||
"openrouter": "#/components/schemas/OpenRouterModelSettings",
|
||||
"together": "#/components/schemas/TogetherModelSettings",
|
||||
"xai": "#/components/schemas/XAIModelSettings",
|
||||
"zai": "#/components/schemas/ZAIModelSettings"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Model Settings",
|
||||
"description": "The model settings for this conversation (overrides agent's model settings)."
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
|
||||
@@ -930,8 +930,8 @@ class LettaAgentV3(LettaAgentV2):
|
||||
or len([t for t in self.agent_state.tool_rules if t.type != "requires_approval"]) == 0
|
||||
)
|
||||
|
||||
# Anthropic/Bedrock parallel tool use
|
||||
if self.agent_state.llm_config.model_endpoint_type in ["anthropic", "bedrock"]:
|
||||
# Anthropic/Bedrock/MiniMax parallel tool use (MiniMax uses Anthropic-compatible API)
|
||||
if self.agent_state.llm_config.model_endpoint_type in ["anthropic", "bedrock", "minimax"]:
|
||||
if (
|
||||
isinstance(request_data.get("tool_choice"), dict)
|
||||
and "disable_parallel_tool_use" in request_data["tool_choice"]
|
||||
|
||||
@@ -104,6 +104,8 @@ class MiniMaxProvider(Provider):
|
||||
max_tokens=model["max_output"],
|
||||
# MiniMax models support native thinking, similar to Claude's extended thinking
|
||||
put_inner_thoughts_in_kwargs=True,
|
||||
# MiniMax models support parallel tool calling via Anthropic-compatible API
|
||||
parallel_tool_calls=True,
|
||||
provider_name=self.name,
|
||||
provider_category=self.provider_category,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user