|
77 | 77 | "definitions": { |
78 | 78 | "ProviderConfig": { |
79 | 79 | "type": "object", |
80 | | - "description": "Configuration for a custom model provider. Can be used for custom gateways", |
| 80 | + "description": "Configuration for a model provider. Defines reusable defaults that models can inherit by referencing the provider name. Supports any provider type (openai, anthropic, google, amazon-bedrock, etc.).", |
81 | 81 | "properties": { |
| 82 | + "provider": { |
| 83 | + "type": "string", |
| 84 | + "description": "The underlying provider type. Defaults to \"openai\" when not set. Supported values: openai, anthropic, google, amazon-bedrock, dmr, and any built-in alias (requesty, azure, xai, ollama, mistral, etc.).", |
| 85 | + "examples": [ |
| 86 | + "openai", |
| 87 | + "anthropic", |
| 88 | + "google", |
| 89 | + "amazon-bedrock" |
| 90 | + ] |
| 91 | + }, |
82 | 92 | "api_type": { |
83 | 93 | "type": "string", |
84 | | - "description": "The API schema type to use. Determines which API schema to use.", |
| 94 | + "description": "The API schema type to use. Only applicable for OpenAI-compatible providers.", |
85 | 95 | "enum": [ |
86 | 96 | "openai_chatcompletions", |
87 | 97 | "openai_responses" |
|
94 | 104 | }, |
95 | 105 | "base_url": { |
96 | 106 | "type": "string", |
97 | | - "description": "Base URL for the provider's API endpoint (required)", |
| 107 | + "description": "Base URL for the provider's API endpoint. Required for OpenAI-compatible providers, optional for native providers.", |
98 | 108 | "format": "uri", |
99 | 109 | "examples": [ |
100 | 110 | "https://router.example.com/v1" |
101 | 111 | ] |
102 | 112 | }, |
103 | 113 | "token_key": { |
104 | 114 | "type": "string", |
105 | | - "description": "Environment variable name containing the API token. If not set, requests will be sent without authentication.", |
| 115 | + "description": "Environment variable name containing the API token. If not set, requests will use the default token for the provider type.", |
106 | 116 | "examples": [ |
107 | | - "CUSTOM_PROVIDER_API_KEY" |
| 117 | + "CUSTOM_PROVIDER_API_KEY", |
| 118 | + "ANTHROPIC_API_KEY" |
| 119 | + ] |
| 120 | + }, |
| 121 | + "temperature": { |
| 122 | + "type": "number", |
| 123 | + "description": "Default sampling temperature for models using this provider.", |
| 124 | + "minimum": 0, |
| 125 | + "maximum": 2 |
| 126 | + }, |
| 127 | + "max_tokens": { |
| 128 | + "type": "integer", |
| 129 | + "description": "Default maximum number of tokens for models using this provider." |
| 130 | + }, |
| 131 | + "top_p": { |
| 132 | + "type": "number", |
| 133 | + "description": "Default top-p (nucleus) sampling parameter.", |
| 134 | + "minimum": 0, |
| 135 | + "maximum": 1 |
| 136 | + }, |
| 137 | + "frequency_penalty": { |
| 138 | + "type": "number", |
| 139 | + "description": "Default frequency penalty.", |
| 140 | + "minimum": -2, |
| 141 | + "maximum": 2 |
| 142 | + }, |
| 143 | + "presence_penalty": { |
| 144 | + "type": "number", |
| 145 | + "description": "Default presence penalty.", |
| 146 | + "minimum": -2, |
| 147 | + "maximum": 2 |
| 148 | + }, |
| 149 | + "parallel_tool_calls": { |
| 150 | + "type": "boolean", |
| 151 | + "description": "Whether to enable parallel tool calls by default." |
| 152 | + }, |
| 153 | + "provider_opts": { |
| 154 | + "type": "object", |
| 155 | + "description": "Provider-specific options passed through to the underlying client.", |
| 156 | + "additionalProperties": true |
| 157 | + }, |
| 158 | + "track_usage": { |
| 159 | + "type": "boolean", |
| 160 | + "description": "Whether to track token usage by default." |
| 161 | + }, |
| 162 | + "thinking_budget": { |
| 163 | + "description": "Default reasoning effort/budget for models using this provider. Can be an integer token count or a string effort level.", |
| 164 | + "oneOf": [ |
| 165 | + { |
| 166 | + "type": "integer", |
| 167 | + "description": "Token budget for reasoning" |
| 168 | + }, |
| 169 | + { |
| 170 | + "type": "string", |
| 171 | + "description": "Effort level (e.g., \"low\", \"medium\", \"high\", \"none\", \"adaptive\")" |
| 172 | + } |
108 | 173 | ] |
109 | 174 | } |
110 | 175 | }, |
111 | | - "required": [ |
112 | | - "base_url" |
113 | | - ], |
114 | 176 | "additionalProperties": false |
115 | 177 | }, |
116 | 178 | "AgentConfig": { |
|
359 | 421 | "cooldown": { |
360 | 422 | "type": "string", |
361 | 423 | "description": "Duration to stick with a successful fallback model before retrying the primary. Only applies after a non-retryable error (e.g., 429 rate limit). Use Go duration format (e.g., '1m', '30s', '2m30s'). Default is '1m'.", |
362 | | - "pattern": "^([0-9]+(ns|us|µs|ms|s|m|h))+$", |
| 424 | + "pattern": "^([0-9]+(ns|us|\u00b5s|ms|s|m|h))+$", |
363 | 425 | "default": "1m", |
364 | 426 | "examples": [ |
365 | 427 | "1m", |
|
758 | 820 | }, |
759 | 821 | "instruction": { |
760 | 822 | "type": "string", |
761 | | - "description": "Custom instruction for this MCP server's tools. By default, setting this field replaces the toolset's built-in instructions entirely. To enrich (rather than replace) the original instructions, include the placeholder {ORIGINAL_INSTRUCTIONS} in your text — it will be substituted with the toolset's built-in instructions at runtime. For example: '{ORIGINAL_INSTRUCTIONS}\nAlways prefer JSON output.' will prepend the original instructions and append your extra guidance." |
| 823 | + "description": "Custom instruction for this MCP server's tools. By default, setting this field replaces the toolset's built-in instructions entirely. To enrich (rather than replace) the original instructions, include the placeholder {ORIGINAL_INSTRUCTIONS} in your text \u2014 it will be substituted with the toolset's built-in instructions at runtime. For example: '{ORIGINAL_INSTRUCTIONS}\nAlways prefer JSON output.' will prepend the original instructions and append your extra guidance." |
762 | 824 | }, |
763 | 825 | "name": { |
764 | 826 | "type": "string", |
|
874 | 936 | }, |
875 | 937 | "instruction": { |
876 | 938 | "type": "string", |
877 | | - "description": "Custom instruction for this toolset. By default, setting this field replaces the toolset's built-in instructions entirely. To enrich (rather than replace) the original instructions, include the placeholder {ORIGINAL_INSTRUCTIONS} in your text — it will be substituted with the toolset's built-in instructions at runtime. For example: '{ORIGINAL_INSTRUCTIONS}\nAlways prefer JSON output.' will prepend the original instructions and append your extra guidance." |
| 939 | + "description": "Custom instruction for this toolset. By default, setting this field replaces the toolset's built-in instructions entirely. To enrich (rather than replace) the original instructions, include the placeholder {ORIGINAL_INSTRUCTIONS} in your text \u2014 it will be substituted with the toolset's built-in instructions at runtime. For example: '{ORIGINAL_INSTRUCTIONS}\nAlways prefer JSON output.' will prepend the original instructions and append your extra guidance." |
878 | 940 | }, |
879 | 941 | "toon": { |
880 | 942 | "type": "string", |
|
0 commit comments