diff --git a/README.md b/README.md index 23e7cb5c48..0db94d2ded 100644 --- a/README.md +++ b/README.md @@ -380,13 +380,13 @@ This creates `~/.picoclaw/config.json` and the workspace directory. { "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4" + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra" // api_key is now loaded from .security.yml } ] diff --git a/cmd/picoclaw/internal/auth/helpers.go b/cmd/picoclaw/internal/auth/helpers.go index 10bb3a11cb..6664c20202 100644 --- a/cmd/picoclaw/internal/auth/helpers.go +++ b/cmd/picoclaw/internal/auth/helpers.go @@ -18,7 +18,7 @@ import ( const ( supportedProvidersMsg = "supported providers: openai, anthropic, google-antigravity, antigravity" - defaultAnthropicModel = "claude-sonnet-4.6" + defaultAnthropicModel = "claude-sonnet-5" ) func authLoginCmd(provider string, useDeviceCode bool, useOauth bool, noBrowser bool) error { @@ -69,14 +69,14 @@ func authLoginOpenAI(useDeviceCode bool, noBrowser bool) error { // If no openai in ModelList, add it if !foundOpenAI { appCfg.ModelList = append(appCfg.ModelList, &config.ModelConfig{ - ModelName: "gpt-5.4", - Model: "openai/gpt-5.4", + ModelName: "gpt-5.6-terra", + Model: "openai/gpt-5.6-terra", AuthMethod: "oauth", }) } // Update default model to use OpenAI - appCfg.Agents.Defaults.ModelName = "gpt-5.4" + appCfg.Agents.Defaults.ModelName = "gpt-5.6-terra" if err = config.SaveConfig(internal.GetConfigPath(), appCfg); err != nil { return fmt.Errorf("could not update config: %w", err) @@ -87,7 +87,7 @@ func authLoginOpenAI(useDeviceCode bool, noBrowser bool) error { if cred.AccountID != "" { fmt.Printf("Account: %s\n", cred.AccountID) } - fmt.Println("Default model set to: gpt-5.4") + fmt.Println("Default model set to: gpt-5.6-terra") return nil } @@ -308,13 +308,13 @@ func authLoginPasteToken(provider string) error { } if !found { appCfg.ModelList = append(appCfg.ModelList, &config.ModelConfig{ - ModelName: "gpt-5.4", - Model: "openai/gpt-5.4", + ModelName: "gpt-5.6-terra", + Model: "openai/gpt-5.6-terra", AuthMethod: "token", }) } // Update default model - appCfg.Agents.Defaults.ModelName = "gpt-5.4" + appCfg.Agents.Defaults.ModelName = "gpt-5.6-terra" } if err := config.SaveConfig(internal.GetConfigPath(), appCfg); err != nil { return fmt.Errorf("could not update config: %w", err) diff --git a/cmd/picoclaw/internal/model/command.go b/cmd/picoclaw/internal/model/command.go index c412993a0b..8958acdc95 100644 --- a/cmd/picoclaw/internal/model/command.go +++ b/cmd/picoclaw/internal/model/command.go @@ -29,7 +29,7 @@ available list online and pick one), use the 'add' subcommand: Examples: picoclaw model # Show current default model picoclaw model gpt-5.2 # Set gpt-5.2 as default - picoclaw model claude-sonnet-4.6 # Set claude-sonnet-4.6 as default + picoclaw model claude-sonnet-5 # Set claude-sonnet-5 as default picoclaw model local-model # Set local VLLM server as default picoclaw model add -b URL -k KEY # Add a model from a custom endpoint diff --git a/cmd/picoclaw/internal/status/helpers_test.go b/cmd/picoclaw/internal/status/helpers_test.go index f037b6bfa8..0b76c13324 100644 --- a/cmd/picoclaw/internal/status/helpers_test.go +++ b/cmd/picoclaw/internal/status/helpers_test.go @@ -48,7 +48,7 @@ func TestStatusCmd_RecognizesProviderFieldWithoutModelPrefix(t *testing.T) { cfg := &config.Config{ Agents: config.AgentsConfig{ Defaults: config.AgentDefaults{ - ModelName: "gpt-5.4", + ModelName: "gpt-5.6-terra", Workspace: workspace, Provider: "openai", MaxTokens: 65536, @@ -57,9 +57,9 @@ func TestStatusCmd_RecognizesProviderFieldWithoutModelPrefix(t *testing.T) { }, ModelList: []*config.ModelConfig{ { - ModelName: "gpt-5.4", + ModelName: "gpt-5.6-terra", Provider: "openai", - Model: "gpt-5.4", + Model: "gpt-5.6-terra", APIBase: "https://api.openai.com/v1", APIKeys: config.SimpleSecureStrings("test-key"), Enabled: true, diff --git a/config/config.example.json b/config/config.example.json index de12d84cce..694ea676fc 100644 --- a/config/config.example.json +++ b/config/config.example.json @@ -4,7 +4,7 @@ "defaults": { "workspace": "~/.picoclaw/workspace", "restrict_to_workspace": true, - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "max_tokens": 8192, "context_window": 131072, "temperature": 0.7, @@ -32,22 +32,22 @@ }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "api_base": "https://api.openai.com/v1" }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"], "api_base": "https://api.anthropic.com/v1", "thinking_level": "high" }, { "_comment": "Anthropic Messages API - use native format for direct Anthropic API access", - "model_name": "claude-opus-4-6", - "model": "anthropic-messages/claude-opus-4-6", + "model_name": "claude-opus-4-8", + "model": "anthropic-messages/claude-opus-4-8", "api_keys": ["sk-ant-your-key"], "api_base": "https://api.anthropic.com" }, @@ -59,7 +59,7 @@ }, { "model_name": "deepseek", - "model": "deepseek/deepseek-chat", + "model": "deepseek/deepseek-v4-flash", "api_keys": ["sk-your-deepseek-key"] }, { @@ -78,7 +78,7 @@ }, { "model_name": "longcat", - "model": "longcat/LongCat-Flash-Thinking", + "model": "longcat/LongCat-2.0", "api_keys": ["your-longcat-api-key"] }, { @@ -94,14 +94,14 @@ "api_base": "https://your-resource.openai.azure.com" }, { - "model_name": "loadbalanced-gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "loadbalanced-gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-key1"], "api_base": "https://api1.example.com/v1" }, { - "model_name": "loadbalanced-gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "loadbalanced-gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-key2"], "api_base": "https://api2.example.com/v1" } diff --git a/docs/design/provider-refactoring.md b/docs/design/provider-refactoring.md index e754a63911..8a5017ed71 100644 --- a/docs/design/provider-refactoring.md +++ b/docs/design/provider-refactoring.md @@ -49,7 +49,7 @@ Each OpenAI-compatible Provider requires: "agents": { "defaults": { "provider": "deepseek", // need to know provider name - "model": "deepseek-chat" + "model": "deepseek-v4-flash" } } } @@ -66,7 +66,7 @@ Problem: Agent needs to know both `provider` and `model`, adding complexity. Inspired by [LiteLLM](https://docs.litellm.ai/docs/proxy/configs) design: 1. **Model-centric**: Users care about models, not providers -2. **Protocol prefix**: Use `protocol/model_name` format, e.g., `openai/gpt-5.4`, `anthropic/claude-sonnet-4.6` +2. **Protocol prefix**: Use `protocol/model_name` format, e.g., `openai/gpt-5.6-terra`, `anthropic/claude-sonnet-5` 3. **Configuration-driven**: Adding new Providers only requires config changes, no code changes ### 2.2 New Configuration Structure @@ -75,19 +75,19 @@ Inspired by [LiteLLM](https://docs.litellm.ai/docs/proxy/configs) design: { "model_list": [ { - "model_name": "deepseek-chat", - "model": "openai/deepseek-chat", + "model_name": "deepseek-v4-flash", + "model": "openai/deepseek-v4-flash", "api_base": "https://api.deepseek.com/v1", "api_keys": ["sk-xxx"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-xxx"] }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-xxx"] }, { @@ -105,7 +105,7 @@ Inspired by [LiteLLM](https://docs.litellm.ai/docs/proxy/configs) design: "agents": { "defaults": { - "model": "deepseek-chat", + "model": "deepseek-v4-flash", "max_tokens": 8192, "temperature": 0.7 } @@ -128,7 +128,7 @@ type Config struct { type ModelConfig struct { // Required ModelName string `json:"model_name"` // user-facing name (alias) - Model string `json:"model"` // protocol/model, e.g., openai/gpt-5.4 + Model string `json:"model"` // protocol/model, e.g., openai/gpt-5.6-terra // Common config APIBase string `json:"api_base,omitempty"` @@ -177,14 +177,14 @@ Identify protocol via prefix in `model` field: "agents": { "defaults": { - "model": "deepseek-chat" + "model": "deepseek-v4-flash" }, "coder": { - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "system_prompt": "You are a coding assistant..." }, "translator": { - "model": "claude-sonnet-4.6" + "model": "claude-sonnet-5" } } } @@ -200,7 +200,7 @@ Each Agent only needs to specify `model` (corresponds to `model_name` in `model_ model_list: - model_name: gpt-4o litellm_params: - model: openai/gpt-5.4 + model: openai/gpt-5.6-terra api_key: xxx - model_name: my-custom litellm_params: @@ -259,7 +259,7 @@ func (c *Config) GetModelConfig(modelName string) (*ModelConfig, error) { "agents": { "defaults": { "provider": "deepseek", - "model": "deepseek-chat" + "model": "deepseek-v4-flash" } } } @@ -270,15 +270,15 @@ func (c *Config) GetModelConfig(modelName string) (*ModelConfig, error) { { "model_list": [ { - "model_name": "deepseek-chat", - "model": "openai/deepseek-chat", + "model_name": "deepseek-v4-flash", + "model": "openai/deepseek-v4-flash", "api_base": "https://api.deepseek.com/v1", "api_key": "sk-xxx" } ], "agents": { "defaults": { - "model": "deepseek-chat" + "model": "deepseek-v4-flash" } } } diff --git a/docs/guides/configuration.fr.md b/docs/guides/configuration.fr.md index dcacc1874e..f79ed2c2ff 100644 --- a/docs/guides/configuration.fr.md +++ b/docs/guides/configuration.fr.md @@ -398,8 +398,8 @@ Configurez plusieurs endpoints pour le même nom de modèle — PicoClaw effectu ```json { "model_list": [ - { "model_name": "gpt-5.4", "model": "openai/gpt-5.4", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, - { "model_name": "gpt-5.4", "model": "openai/gpt-5.4", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } + { "model_name": "gpt-5.6-terra", "model": "openai/gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, + { "model_name": "gpt-5.6-terra", "model": "openai/gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } ] } ``` @@ -422,9 +422,9 @@ Exemple d'activation : { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "streaming": { "enabled": true diff --git a/docs/guides/configuration.it.md b/docs/guides/configuration.it.md index 213ca10757..457ddd22a3 100644 --- a/docs/guides/configuration.it.md +++ b/docs/guides/configuration.it.md @@ -45,9 +45,9 @@ Esempio di attivazione: { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "streaming": { "enabled": true diff --git a/docs/guides/configuration.ja.md b/docs/guides/configuration.ja.md index 7dd6764479..0157983b3e 100644 --- a/docs/guides/configuration.ja.md +++ b/docs/guides/configuration.ja.md @@ -399,8 +399,8 @@ HEARTBEAT_OK を返信 ユーザーが直接結果を受信 ```json { "model_list": [ - { "model_name": "gpt-5.4", "model": "openai/gpt-5.4", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, - { "model_name": "gpt-5.4", "model": "openai/gpt-5.4", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } + { "model_name": "gpt-5.6-terra", "model": "openai/gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, + { "model_name": "gpt-5.6-terra", "model": "openai/gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } ] } ``` @@ -423,9 +423,9 @@ Pico WebUI が最初に完全対応した channel です。Pico は既存の `me { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "streaming": { "enabled": true diff --git a/docs/guides/configuration.md b/docs/guides/configuration.md index 8ac866880f..9949d7c7b9 100644 --- a/docs/guides/configuration.md +++ b/docs/guides/configuration.md @@ -661,10 +661,10 @@ PicoClaw supports separating sensitive data (API keys, tokens, secrets) from you 1. Create `~/.picoclaw/.security.yml` with your API keys: ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-proj-your-actual-openai-key" - claude-sonnet-4.6: + claude-sonnet-5: api_keys: - "sk-ant-your-actual-anthropic-key" channels: @@ -688,9 +688,9 @@ chmod 600 ~/.picoclaw/.security.yml { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4" + "model": "gpt-5.6-terra" // api_key loaded from .security.yml } ], @@ -752,15 +752,15 @@ For complete documentation, see [`../security/security_configuration.md`](../sec "api_keys": ["sk-your-api-key"] }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"] }, { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { @@ -772,7 +772,7 @@ For complete documentation, see [`../security/security_configuration.md`](../sec ], "agents": { "defaults": { - "model": "gpt-5.4" + "model": "gpt-5.6-terra" } } } @@ -784,10 +784,10 @@ For complete documentation, see [`../security/security_configuration.md`](../sec Resolution rules: -- Prefer explicit `"provider": "openai", "model": "gpt-5.4"`. +- Prefer explicit `"provider": "openai", "model": "gpt-5.6-terra"`. - If `provider` is set, PicoClaw sends `model` unchanged. - If `provider` is omitted, PicoClaw treats the first `/` segment in `model` as the provider and everything after that first `/` as the runtime model ID. -- This means `"model": "openrouter/openai/gpt-5.4"` still works as a compatibility form and sends `openai/gpt-5.4` to OpenRouter. +- This means `"model": "openrouter/openai/gpt-5.6-terra"` still works as a compatibility form and sends `openai/gpt-5.6-terra` to OpenRouter. #### Streaming Configuration @@ -803,9 +803,9 @@ Opt-in example: { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "streaming": { "enabled": true @@ -850,9 +850,9 @@ For model-specific TTS request fields such as custom speech `voice` names or ```json { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4" + "model": "gpt-5.6-terra" // api_key: set in .security.yml } ``` @@ -921,9 +921,9 @@ Pair this with: ```json { - "model_name": "deepseek-chat", + "model_name": "deepseek-v4-flash", "provider": "deepseek", - "model": "deepseek-chat" + "model": "deepseek-v4-flash" // api_key: set in .security.yml } ``` @@ -935,9 +935,9 @@ Pair this with: ```json { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6" + "model": "claude-sonnet-5" // api_key: set in .security.yml } ``` @@ -1015,7 +1015,7 @@ Configure multiple endpoints for the same model name — PicoClaw will automatic ```yaml # .security.yml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-proj-key-1" - "sk-proj-key-2" @@ -1026,9 +1026,9 @@ model_list: { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api.openai.com/v1" // api_keys loaded from .security.yml } @@ -1042,16 +1042,16 @@ model_list: { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } diff --git a/docs/guides/configuration.ms.md b/docs/guides/configuration.ms.md index 4448829a06..3213b001f0 100644 --- a/docs/guides/configuration.ms.md +++ b/docs/guides/configuration.ms.md @@ -45,9 +45,9 @@ Contoh mengaktifkan streaming: { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "streaming": { "enabled": true diff --git a/docs/guides/configuration.pt-br.md b/docs/guides/configuration.pt-br.md index bb5d14131f..639c52a77e 100644 --- a/docs/guides/configuration.pt-br.md +++ b/docs/guides/configuration.pt-br.md @@ -399,8 +399,8 @@ Configure múltiplos endpoints para o mesmo nome de modelo — PicoClaw fará ro ```json { "model_list": [ - { "model_name": "gpt-5.4", "model": "openai/gpt-5.4", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, - { "model_name": "gpt-5.4", "model": "openai/gpt-5.4", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } + { "model_name": "gpt-5.6-terra", "model": "openai/gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, + { "model_name": "gpt-5.6-terra", "model": "openai/gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } ] } ``` @@ -423,9 +423,9 @@ Exemplo de ativação: { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "streaming": { "enabled": true diff --git a/docs/guides/configuration.vi.md b/docs/guides/configuration.vi.md index 516ebe9fea..ac6e3128c7 100644 --- a/docs/guides/configuration.vi.md +++ b/docs/guides/configuration.vi.md @@ -399,8 +399,8 @@ Cấu hình nhiều endpoint cho cùng tên mô hình — PicoClaw sẽ tự đ ```json { "model_list": [ - { "model_name": "gpt-5.4", "model": "openai/gpt-5.4", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, - { "model_name": "gpt-5.4", "model": "openai/gpt-5.4", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } + { "model_name": "gpt-5.6-terra", "model": "openai/gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, + { "model_name": "gpt-5.6-terra", "model": "openai/gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } ] } ``` @@ -423,9 +423,9 @@ Ví dụ bật streaming: { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "streaming": { "enabled": true diff --git a/docs/guides/configuration.zh.md b/docs/guides/configuration.zh.md index 1d04a0d481..a85e7a86aa 100644 --- a/docs/guides/configuration.zh.md +++ b/docs/guides/configuration.zh.md @@ -548,15 +548,15 @@ Agent 读取 HEARTBEAT.md "api_keys": ["sk-your-api-key"] }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"] }, { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { @@ -568,7 +568,7 @@ Agent 读取 HEARTBEAT.md ], "agents": { "defaults": { - "model": "gpt-5.4" + "model": "gpt-5.6-terra" } } } @@ -576,10 +576,10 @@ Agent 读取 HEARTBEAT.md 解析规则: -- 推荐显式写成 `"provider": "openai", "model": "gpt-5.4"`。 +- 推荐显式写成 `"provider": "openai", "model": "gpt-5.6-terra"`。 - 如果设置了 `provider`,PicoClaw 会将 `model` 原样发送。 - 如果未设置 `provider`,PicoClaw 会把 `model` 第一个 `/` 之前的字段当作 provider,并把第一个 `/` 之后的全部内容当作最终模型 ID。 -- 这意味着 `"model": "openrouter/openai/gpt-5.4"` 这样的兼容写法仍然可用,并会把 `openai/gpt-5.4` 发送给 OpenRouter。 +- 这意味着 `"model": "openrouter/openai/gpt-5.6-terra"` 这样的兼容写法仍然可用,并会把 `openai/gpt-5.6-terra` 发送给 OpenRouter。 #### 流式输出配置 @@ -595,9 +595,9 @@ Provider 流式输出采用双开关,默认关闭。只有当前 channel 的 ` { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "streaming": { "enabled": true @@ -637,9 +637,9 @@ Telegram 旧环境变量仍兼容:`PICOCLAW_CHANNELS_TELEGRAM_STREAMING_ENABLE ```json { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-..."] } ``` @@ -679,9 +679,9 @@ Telegram 旧环境变量仍兼容:`PICOCLAW_CHANNELS_TELEGRAM_STREAMING_ENABLE ```json { - "model_name": "deepseek-chat", + "model_name": "deepseek-v4-flash", "provider": "deepseek", - "model": "deepseek-chat", + "model": "deepseek-v4-flash", "api_keys": ["sk-..."] } ``` @@ -693,9 +693,9 @@ Telegram 旧环境变量仍兼容:`PICOCLAW_CHANNELS_TELEGRAM_STREAMING_ENABLE ```json { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["sk-ant-your-key"] } ``` @@ -772,16 +772,16 @@ Telegram 旧环境变量仍兼容:`PICOCLAW_CHANNELS_TELEGRAM_STREAMING_ENABLE { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } diff --git a/docs/guides/docker.fr.md b/docs/guides/docker.fr.md index e174298ac8..9507354fb7 100644 --- a/docs/guides/docker.fr.md +++ b/docs/guides/docker.fr.md @@ -82,7 +82,7 @@ picoclaw onboard "agents": { "defaults": { "workspace": "~/.picoclaw/workspace", - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "max_tokens": 8192, "temperature": 0.7, "max_tool_iterations": 20 @@ -96,14 +96,14 @@ picoclaw onboard "api_base":"https://ark.cn-beijing.volces.com/api/coding/v3" }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["your-api-key"], "request_timeout": 300 }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["your-anthropic-key"] } ], diff --git a/docs/guides/docker.ja.md b/docs/guides/docker.ja.md index 19199aaac0..21966f163e 100644 --- a/docs/guides/docker.ja.md +++ b/docs/guides/docker.ja.md @@ -84,7 +84,7 @@ picoclaw onboard "agents": { "defaults": { "workspace": "~/.picoclaw/workspace", - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "max_tokens": 8192, "temperature": 0.7, "max_tool_iterations": 20 @@ -98,14 +98,14 @@ picoclaw onboard "api_base":"https://ark.cn-beijing.volces.com/api/coding/v3" }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["your-api-key"], "request_timeout": 300 }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["your-anthropic-key"] } ], diff --git a/docs/guides/docker.md b/docs/guides/docker.md index e2e472fbf8..8060b1bf26 100644 --- a/docs/guides/docker.md +++ b/docs/guides/docker.md @@ -85,7 +85,7 @@ picoclaw onboard "agents": { "defaults": { "workspace": "~/.picoclaw/workspace", - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "max_tokens": 8192, "temperature": 0.7, "max_tool_iterations": 20 @@ -100,16 +100,16 @@ picoclaw onboard "api_base":"https://ark.cn-beijing.volces.com/api/coding/v3" }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["your-api-key"], "request_timeout": 300 }, { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["your-anthropic-key"] } ], diff --git a/docs/guides/docker.ms.md b/docs/guides/docker.ms.md index 5a426cb99e..cf5ff19860 100644 --- a/docs/guides/docker.ms.md +++ b/docs/guides/docker.ms.md @@ -81,7 +81,7 @@ picoclaw onboard "agents": { "defaults": { "workspace": "~/.picoclaw/workspace", - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "max_tokens": 8192, "temperature": 0.7, "max_tool_iterations": 20 @@ -95,14 +95,14 @@ picoclaw onboard "api_base":"https://ark.cn-beijing.volces.com/api/coding/v3" }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["your-api-key"], "request_timeout": 300 }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["your-anthropic-key"] } ], diff --git a/docs/guides/docker.pt-br.md b/docs/guides/docker.pt-br.md index ab71af8e64..ff4708cbcc 100644 --- a/docs/guides/docker.pt-br.md +++ b/docs/guides/docker.pt-br.md @@ -82,7 +82,7 @@ picoclaw onboard "agents": { "defaults": { "workspace": "~/.picoclaw/workspace", - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "max_tokens": 8192, "temperature": 0.7, "max_tool_iterations": 20 @@ -96,14 +96,14 @@ picoclaw onboard "api_base":"https://ark.cn-beijing.volces.com/api/coding/v3" }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["your-api-key"], "request_timeout": 300 }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["your-anthropic-key"] } ], diff --git a/docs/guides/docker.vi.md b/docs/guides/docker.vi.md index e91450bb05..cb85e9de45 100644 --- a/docs/guides/docker.vi.md +++ b/docs/guides/docker.vi.md @@ -82,7 +82,7 @@ picoclaw onboard "agents": { "defaults": { "workspace": "~/.picoclaw/workspace", - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "max_tokens": 8192, "temperature": 0.7, "max_tool_iterations": 20 @@ -96,14 +96,14 @@ picoclaw onboard "api_base":"https://ark.cn-beijing.volces.com/api/coding/v3" }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["your-api-key"], "request_timeout": 300 }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["your-anthropic-key"] } ], diff --git a/docs/guides/docker.zh.md b/docs/guides/docker.zh.md index 855375d9c2..58b21ce5f4 100644 --- a/docs/guides/docker.zh.md +++ b/docs/guides/docker.zh.md @@ -84,7 +84,7 @@ picoclaw onboard "agents": { "defaults": { "workspace": "~/.picoclaw/workspace", - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "max_tokens": 8192, "temperature": 0.7, "max_tool_iterations": 20 @@ -99,16 +99,16 @@ picoclaw onboard "api_base":"https://ark.cn-beijing.volces.com/api/coding/v3" }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["your-api-key"], "request_timeout": 300 }, { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["your-anthropic-key"] } ], diff --git a/docs/guides/providers.fr.md b/docs/guides/providers.fr.md index a16d7c8074..d4bf7f6792 100644 --- a/docs/guides/providers.fr.md +++ b/docs/guides/providers.fr.md @@ -76,13 +76,13 @@ Cette conception permet également le **support multi-agents** avec une sélecti "api_keys": ["sk-your-api-key"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-openai-key"] }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { @@ -93,7 +93,7 @@ Cette conception permet également le **support multi-agents** avec une sélecti ], "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } } } @@ -104,7 +104,7 @@ Cette conception permet également le **support multi-agents** avec une sélecti | Champ | Type | Requis | Description | |-------|------|--------|-------------| | `model_name` | string | Oui | Nom unique pour référencer ce modèle dans la config agent | -| `model` | string | Oui | Identifiant fournisseur/modèle (ex : `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | +| `model` | string | Oui | Identifiant fournisseur/modèle (ex : `openai/gpt-5.6-terra`, `azure/gpt-5.6-terra`, `anthropic/claude-sonnet-5`) | | `api_keys` | string[] | Oui* | Clé(s) API pour l'authentification. Plusieurs clés permettent la rotation par requête. Non requis pour les fournisseurs locaux (Ollama, LM Studio, VLLM) | | `api_base` | string | Non | Remplace l'URL de base API par défaut | | `proxy` | string | Non | URL du proxy HTTP pour cette entrée de modèle | @@ -126,8 +126,8 @@ Lorsque le streaming est désactivé, omettez le bloc `streaming`. Écrire `"str ```json { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-..."] } ``` @@ -156,8 +156,8 @@ Lorsque le streaming est désactivé, omettez le bloc `streaming`. Écrire `"str ```json { - "model_name": "deepseek-chat", - "model": "deepseek/deepseek-chat", + "model_name": "deepseek-v4-flash", + "model": "deepseek/deepseek-v4-flash", "api_keys": ["sk-..."] } ``` @@ -166,8 +166,8 @@ Lorsque le streaming est désactivé, omettez le bloc `streaming`. Écrire `"str ```json { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"] } ``` @@ -237,14 +237,14 @@ Configurez plusieurs endpoints pour le même nom de modèle — PicoClaw effectu { "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } diff --git a/docs/guides/providers.ja.md b/docs/guides/providers.ja.md index 75ee28a57b..d10f07c532 100644 --- a/docs/guides/providers.ja.md +++ b/docs/guides/providers.ja.md @@ -77,13 +77,13 @@ "api_keys": ["sk-your-api-key"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-openai-key"] }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { @@ -94,7 +94,7 @@ ], "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } } } @@ -105,7 +105,7 @@ | フィールド | 型 | 必須 | 説明 | |-----------|------|------|------| | `model_name` | string | はい | agent 設定でこのモデルを参照するための一意の名前 | -| `model` | string | はい | ベンダー/モデル識別子(例:`openai/gpt-5.4`、`azure/gpt-5.4`、`anthropic/claude-sonnet-4.6`) | +| `model` | string | はい | ベンダー/モデル識別子(例:`openai/gpt-5.6-terra`、`azure/gpt-5.6-terra`、`anthropic/claude-sonnet-5`) | | `api_keys` | string[] | はい* | 認証キー。複数キーでリクエストごとのローテーションが可能。ローカル provider(Ollama、LM Studio、VLLM)には不要 | | `api_base` | string | いいえ | デフォルトの API エンドポイント URL を上書き | | `proxy` | string | いいえ | このモデルエントリの HTTP プロキシ URL | @@ -127,8 +127,8 @@ ```json { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-..."] } ``` @@ -168,8 +168,8 @@ ```json { - "model_name": "deepseek-chat", - "model": "deepseek/deepseek-chat", + "model_name": "deepseek-v4-flash", + "model": "deepseek/deepseek-v4-flash", "api_keys": ["sk-..."] } ``` @@ -178,8 +178,8 @@ ```json { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"] } ``` @@ -249,14 +249,14 @@ PicoClaw はリクエスト送信前に外側の `litellm/` プレフィック { "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } diff --git a/docs/guides/providers.md b/docs/guides/providers.md index 978a16dd48..375466cd88 100644 --- a/docs/guides/providers.md +++ b/docs/guides/providers.md @@ -90,15 +90,15 @@ This design also enables **multi-agent support** with flexible provider selectio "api_keys": ["sk-your-api-key"] }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"] }, { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { @@ -110,7 +110,7 @@ This design also enables **multi-agent support** with flexible provider selectio ], "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } } } @@ -177,10 +177,10 @@ Examples: | Config | Resolved Provider | Model Sent Upstream | | --- | --- | --- | -| `"provider": "openai", "model": "gpt-5.4"` | `openai` | `gpt-5.4` | -| `"model": "openai/gpt-5.4"` | `openai` | `gpt-5.4` | -| `"provider": "openrouter", "model": "openai/gpt-5.4"` | `openrouter` | `openai/gpt-5.4` | -| `"model": "openrouter/openai/gpt-5.4"` | `openrouter` | `openai/gpt-5.4` | +| `"provider": "openai", "model": "gpt-5.6-terra"` | `openai` | `gpt-5.6-terra` | +| `"model": "openai/gpt-5.6-terra"` | `openai` | `gpt-5.6-terra` | +| `"provider": "openrouter", "model": "openai/gpt-5.6-terra"` | `openrouter` | `openai/gpt-5.6-terra` | +| `"model": "openrouter/openai/gpt-5.6-terra"` | `openrouter` | `openai/gpt-5.6-terra` | #### Voice Transcription @@ -251,9 +251,9 @@ Notes that matter: ```json { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-..."] } ``` @@ -307,9 +307,9 @@ Notes that matter: ```json { - "model_name": "deepseek-chat", + "model_name": "deepseek-v4-flash", "provider": "deepseek", - "model": "deepseek-chat", + "model": "deepseek-v4-flash", "api_keys": ["sk-..."] } ``` @@ -318,9 +318,9 @@ Notes that matter: ```json { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["sk-ant-your-key"] } ``` @@ -423,16 +423,16 @@ Configure multiple endpoints for the same model name—PicoClaw will automatical { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } @@ -459,7 +459,7 @@ It also applies cooldown tracking per candidate to avoid immediately retrying a { "model_name": "deepseek-backup", "provider": "deepseek", - "model": "deepseek-chat", + "model": "deepseek-v4-flash", "api_keys": ["sk-backup-1"] }, { diff --git a/docs/guides/providers.pt-br.md b/docs/guides/providers.pt-br.md index ed99a27dde..b634fb6e60 100644 --- a/docs/guides/providers.pt-br.md +++ b/docs/guides/providers.pt-br.md @@ -76,13 +76,13 @@ Este design também permite **suporte multi-agente** com seleção flexível de "api_keys": ["sk-your-api-key"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-openai-key"] }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { @@ -93,7 +93,7 @@ Este design também permite **suporte multi-agente** com seleção flexível de ], "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } } } @@ -104,7 +104,7 @@ Este design também permite **suporte multi-agente** com seleção flexível de | Campo | Tipo | Obrigatório | Descrição | |-------|------|-------------|-----------| | `model_name` | string | Sim | Nome único para referenciar este modelo na config do agent | -| `model` | string | Sim | Identificador fornecedor/modelo (ex: `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | +| `model` | string | Sim | Identificador fornecedor/modelo (ex: `openai/gpt-5.6-terra`, `azure/gpt-5.6-terra`, `anthropic/claude-sonnet-5`) | | `api_keys` | string[] | Sim* | Chave(s) API para autenticação. Múltiplas chaves permitem rotação por requisição. Não necessário para providers locais (Ollama, LM Studio, VLLM) | | `api_base` | string | Não | Substitui a URL base da API padrão | | `proxy` | string | Não | URL do proxy HTTP para esta entrada de modelo | @@ -126,8 +126,8 @@ Quando streaming estiver desativado, omita o bloco `streaming`. Escrever `"strea ```json { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-..."] } ``` @@ -156,8 +156,8 @@ Quando streaming estiver desativado, omita o bloco `streaming`. Escrever `"strea ```json { - "model_name": "deepseek-chat", - "model": "deepseek/deepseek-chat", + "model_name": "deepseek-v4-flash", + "model": "deepseek/deepseek-v4-flash", "api_keys": ["sk-..."] } ``` @@ -166,8 +166,8 @@ Quando streaming estiver desativado, omita o bloco `streaming`. Escrever `"strea ```json { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"] } ``` @@ -237,14 +237,14 @@ Configure múltiplos endpoints para o mesmo nome de modelo — o PicoClaw fará { "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } diff --git a/docs/guides/providers.vi.md b/docs/guides/providers.vi.md index 402e09fbac..067a91a83b 100644 --- a/docs/guides/providers.vi.md +++ b/docs/guides/providers.vi.md @@ -76,13 +76,13 @@ Thiết kế này cũng cho phép **hỗ trợ đa agent** với lựa chọn pr "api_keys": ["sk-your-api-key"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-openai-key"] }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { @@ -93,7 +93,7 @@ Thiết kế này cũng cho phép **hỗ trợ đa agent** với lựa chọn pr ], "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } } } @@ -104,7 +104,7 @@ Thiết kế này cũng cho phép **hỗ trợ đa agent** với lựa chọn pr | Trường | Kiểu | Bắt buộc | Mô tả | |--------|------|----------|------| | `model_name` | string | Có | Tên duy nhất để tham chiếu model này trong cấu hình agent | -| `model` | string | Có | Định danh nhà cung cấp/model (ví dụ: `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | +| `model` | string | Có | Định danh nhà cung cấp/model (ví dụ: `openai/gpt-5.6-terra`, `azure/gpt-5.6-terra`, `anthropic/claude-sonnet-5`) | | `api_keys` | string[] | Có* | Khóa API xác thực. Nhiều khóa cho phép xoay vòng theo yêu cầu. Không cần thiết cho provider nội bộ (Ollama, LM Studio, VLLM) | | `api_base` | string | Không | Ghi đè URL endpoint API mặc định | | `proxy` | string | Không | URL proxy HTTP cho entry model này | @@ -126,8 +126,8 @@ Khi không dùng streaming, hãy bỏ qua block `streaming`. Viết `"streaming" ```json { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-..."] } ``` @@ -156,8 +156,8 @@ Khi không dùng streaming, hãy bỏ qua block `streaming`. Viết `"streaming" ```json { - "model_name": "deepseek-chat", - "model": "deepseek/deepseek-chat", + "model_name": "deepseek-v4-flash", + "model": "deepseek/deepseek-v4-flash", "api_keys": ["sk-..."] } ``` @@ -166,8 +166,8 @@ Khi không dùng streaming, hãy bỏ qua block `streaming`. Viết `"streaming" ```json { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_keys": ["sk-ant-your-key"] } ``` @@ -237,14 +237,14 @@ Cấu hình nhiều endpoint cho cùng tên mô hình — PicoClaw sẽ tự đ { "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } diff --git a/docs/guides/providers.zh.md b/docs/guides/providers.zh.md index c63927142f..4d8c5306cd 100644 --- a/docs/guides/providers.zh.md +++ b/docs/guides/providers.zh.md @@ -85,15 +85,15 @@ "api_keys": ["sk-your-api-key"] }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"] }, { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { @@ -105,7 +105,7 @@ ], "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } } } @@ -145,10 +145,10 @@ PicoClaw 按下面的规则解析 `provider` 和最终发给上游的模型 ID | 配置 | 解析后的 Provider | 实际发送的模型 ID | | --- | --- | --- | -| `"provider": "openai", "model": "gpt-5.4"` | `openai` | `gpt-5.4` | -| `"model": "openai/gpt-5.4"` | `openai` | `gpt-5.4` | -| `"provider": "openrouter", "model": "openai/gpt-5.4"` | `openrouter` | `openai/gpt-5.4` | -| `"model": "openrouter/openai/gpt-5.4"` | `openrouter` | `openai/gpt-5.4` | +| `"provider": "openai", "model": "gpt-5.6-terra"` | `openai` | `gpt-5.6-terra` | +| `"model": "openai/gpt-5.6-terra"` | `openai` | `gpt-5.6-terra` | +| `"provider": "openrouter", "model": "openai/gpt-5.6-terra"` | `openrouter` | `openai/gpt-5.6-terra` | +| `"model": "openrouter/openai/gpt-5.6-terra"` | `openrouter` | `openai/gpt-5.6-terra` | #### 语音转录 @@ -184,9 +184,9 @@ PicoClaw 按下面的规则解析 `provider` 和最终发给上游的模型 ID ```json { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-..."] } ``` @@ -217,9 +217,9 @@ PicoClaw 按下面的规则解析 `provider` 和最终发给上游的模型 ID ```json { - "model_name": "deepseek-chat", + "model_name": "deepseek-v4-flash", "provider": "deepseek", - "model": "deepseek-chat", + "model": "deepseek-v4-flash", "api_keys": ["sk-..."] } ``` @@ -228,9 +228,9 @@ PicoClaw 按下面的规则解析 `provider` 和最终发给上游的模型 ID ```json { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "auth_method": "oauth" } ``` @@ -317,16 +317,16 @@ PicoClaw 按下面的规则解析 `provider` 和最终发给上游的模型 ID { "model_list": [ { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api1.example.com/v1", "api_keys": ["sk-key1"] }, { - "model_name": "gpt-5.4", + "model_name": "gpt-5.6-terra", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_base": "https://api2.example.com/v1", "api_keys": ["sk-key2"] } @@ -353,7 +353,7 @@ PicoClaw 按下面的规则解析 `provider` 和最终发给上游的模型 ID { "model_name": "deepseek-backup", "provider": "deepseek", - "model": "deepseek-chat", + "model": "deepseek-v4-flash", "api_keys": ["sk-backup-1"] }, { diff --git a/docs/guides/routing-guide.md b/docs/guides/routing-guide.md index a47984324e..3924040d18 100644 --- a/docs/guides/routing-guide.md +++ b/docs/guides/routing-guide.md @@ -70,7 +70,7 @@ This guide explains how to configure both for real deployments. { "model_name": "gpt-main", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-main"] }, { diff --git a/docs/guides/routing-guide.zh.md b/docs/guides/routing-guide.zh.md index 713cbeb043..5ab55db21e 100644 --- a/docs/guides/routing-guide.zh.md +++ b/docs/guides/routing-guide.zh.md @@ -70,7 +70,7 @@ PicoClaw 里用户能直接感知到的“路由”主要有两部分: { "model_name": "gpt-main", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-main"] }, { diff --git a/docs/migration/model-list-migration.md b/docs/migration/model-list-migration.md index 4fb37c5806..3263e889bc 100644 --- a/docs/migration/model-list-migration.md +++ b/docs/migration/model-list-migration.md @@ -40,7 +40,7 @@ The new `model_list` configuration offers several advantages: "agents": { "defaults": { "provider": "openai", - "model": "gpt-5.4" + "model": "gpt-5.6-terra" } } } @@ -55,20 +55,20 @@ The new `model_list` configuration offers several advantages: { "model_name": "gpt4", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-your-openai-key"], "api_base": "https://api.openai.com/v1" }, { - "model_name": "claude-sonnet-4.6", + "model_name": "claude-sonnet-5", "provider": "anthropic", - "model": "claude-sonnet-4.6", + "model": "claude-sonnet-5", "api_keys": ["sk-ant-your-key"] }, { "model_name": "deepseek", "provider": "deepseek", - "model": "deepseek-chat", + "model": "deepseek-v4-flash", "api_keys": ["sk-your-deepseek-key"] } ], @@ -89,7 +89,7 @@ Preferred format: ```json { "provider": "openai", - "model": "gpt-5.4" + "model": "gpt-5.6-terra" } ``` @@ -97,7 +97,7 @@ Legacy compatibility format: ```json { - "model": "openai/gpt-5.4" + "model": "openai/gpt-5.6-terra" } ``` @@ -110,8 +110,8 @@ Examples: | Config | Resolved Provider | Model Sent Upstream | |--------|-------------------|---------------------| -| `"provider": "openai", "model": "gpt-5.4"` | `openai` | `gpt-5.4` | -| `"model": "openai/gpt-5.4"` | `openai` | `gpt-5.4` | +| `"provider": "openai", "model": "gpt-5.6-terra"` | `openai` | `gpt-5.6-terra` | +| `"model": "openai/gpt-5.6-terra"` | `openai` | `gpt-5.6-terra` | | `"provider": "openrouter", "model": "google/gemini-2.0-flash-exp:free"` | `openrouter` | `google/gemini-2.0-flash-exp:free` | | `"model": "openrouter/google/gemini-2.0-flash-exp:free"` | `openrouter` | `google/gemini-2.0-flash-exp:free` | @@ -146,7 +146,7 @@ There are two ways to configure load balancing: { "model_name": "gpt4", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-key1", "sk-key2", "sk-key3"], "api_base": "https://api.openai.com/v1" } @@ -173,21 +173,21 @@ model_list: { "model_name": "gpt4", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-key1"], "api_base": "https://api1.example.com/v1" }, { "model_name": "gpt4", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-key2"], "api_base": "https://api2.example.com/v1" }, { "model_name": "gpt4", "provider": "openai", - "model": "gpt-5.4", + "model": "gpt-5.6-terra", "api_keys": ["sk-key3"], "api_base": "https://api3.example.com/v1" } diff --git a/docs/project/README.fr.md b/docs/project/README.fr.md index 9c231404e5..86a102201b 100644 --- a/docs/project/README.fr.md +++ b/docs/project/README.fr.md @@ -370,13 +370,13 @@ Cela crée `~/.picoclaw/config.json` et le répertoire workspace. "version": 3, "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-api-key"] } ] diff --git a/docs/project/README.id.md b/docs/project/README.id.md index 8d95142564..49bb9d7dad 100644 --- a/docs/project/README.id.md +++ b/docs/project/README.id.md @@ -366,13 +366,13 @@ Ini membuat `~/.picoclaw/config.json` dan direktori workspace. "version": 3, "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-api-key"] } ] diff --git a/docs/project/README.it.md b/docs/project/README.it.md index 1be3fdc5a1..8979798697 100644 --- a/docs/project/README.it.md +++ b/docs/project/README.it.md @@ -366,13 +366,13 @@ Questo crea `~/.picoclaw/config.json` e la directory workspace. "version": 3, "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-api-key"] } ] diff --git a/docs/project/README.ja.md b/docs/project/README.ja.md index 988ddfbe60..4f559a87e3 100644 --- a/docs/project/README.ja.md +++ b/docs/project/README.ja.md @@ -367,13 +367,13 @@ picoclaw onboard "version": 3, "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-api-key"] } ] diff --git a/docs/project/README.ko.md b/docs/project/README.ko.md index 058dc41592..bc79b85ab5 100644 --- a/docs/project/README.ko.md +++ b/docs/project/README.ko.md @@ -365,13 +365,13 @@ picoclaw onboard { "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", // api_key는 이제 .security.yml에서 로드됩니다. } ] diff --git a/docs/project/README.ms.md b/docs/project/README.ms.md index 4428726785..e7e34d9ca1 100644 --- a/docs/project/README.ms.md +++ b/docs/project/README.ms.md @@ -362,13 +362,13 @@ Ini mencipta `~/.picoclaw/config.json` dan direktori ruang kerja. { "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4" + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra" } ] } diff --git a/docs/project/README.pt-br.md b/docs/project/README.pt-br.md index f8a6d91417..2b25e98d83 100644 --- a/docs/project/README.pt-br.md +++ b/docs/project/README.pt-br.md @@ -367,13 +367,13 @@ Isso cria `~/.picoclaw/config.json` e o diretório workspace. "version": 3, "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-api-key"] } ] diff --git a/docs/project/README.vi.md b/docs/project/README.vi.md index 1e592dee0e..6b4d66fef8 100644 --- a/docs/project/README.vi.md +++ b/docs/project/README.vi.md @@ -367,13 +367,13 @@ Lệnh này tạo `~/.picoclaw/config.json` và thư mục workspace. "version": 3, "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-api-key"] } ] diff --git a/docs/project/README.zh.md b/docs/project/README.zh.md index b030d55c10..b5fffa61ff 100644 --- a/docs/project/README.zh.md +++ b/docs/project/README.zh.md @@ -367,13 +367,13 @@ picoclaw onboard "version": 3, "agents": { "defaults": { - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_keys": ["sk-your-api-key"] } ] diff --git a/docs/reference/config-versioning.md b/docs/reference/config-versioning.md index 871c6f5138..7e13f657da 100644 --- a/docs/reference/config-versioning.md +++ b/docs/reference/config-versioning.md @@ -231,8 +231,8 @@ Old config (version 3): "version": 3, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4" + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra" } ] } @@ -257,8 +257,8 @@ New config (version 3): "version": 3, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "new_option": true } ] diff --git a/docs/security/security_configuration.md b/docs/security/security_configuration.md index 4b5e4fe619..6e56b2d483 100644 --- a/docs/security/security_configuration.md +++ b/docs/security/security_configuration.md @@ -37,11 +37,11 @@ The security configuration works through **direct field mapping**, NOT through ` # All models MUST use `api_keys` (plural) array format # Even a single key must be provided as an array with one element model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-proj-your-actual-openai-key-1" - "sk-proj-your-actual-openai-key-2" # Optional: Multiple keys for failover - claude-sonnet-4.6: + claude-sonnet-5: api_keys: - "sk-ant-your-actual-anthropic-key" # Single key in array format @@ -149,8 +149,8 @@ You can now remove sensitive fields from `config.json` since they're loaded from { "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api.openai.com/v1", "api_keys": ["sk-your-actual-api-key-here"] } @@ -170,8 +170,8 @@ You can now remove sensitive fields from `config.json` since they're loaded from { "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api.openai.com/v1" // api_key is now loaded from .security.yml } @@ -209,7 +209,7 @@ model_list: **Mapping:** - Field `api_keys` (array) maps to the model's API keys - The `` must match the `model_name` field in `config.json` -- Supports indexed names (e.g., "gpt-5.4:0") - the system will also try the base name ("gpt-5.4") +- Supports indexed names (e.g., "gpt-5.6-terra:0") - the system will also try the base name ("gpt-5.6-terra") ### Channels @@ -295,7 +295,7 @@ skills: Use array format with one element: ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-your-key" ``` @@ -305,7 +305,7 @@ model_list: Use array format with multiple elements: ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-your-key-1" - "sk-your-key-2" @@ -363,14 +363,14 @@ The system supports intelligent model name matching in `.security.yml`: **config.json:** ```json { - "model_name": "gpt-5.4:0" + "model_name": "gpt-5.6-terra:0" } ``` **.security.yml (exact match with index):** ```yaml model_list: - gpt-5.4:0: + gpt-5.6-terra:0: api_keys: ["key-1"] ``` @@ -379,14 +379,14 @@ model_list: **config.json:** ```json { - "model_name": "gpt-5.4:0" + "model_name": "gpt-5.6-terra:0" } ``` **.security.yml (base name without index):** ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: ["key-1", "key-2"] ``` @@ -480,18 +480,18 @@ Returns the path to `.security.yml` relative to the config file. "agents": { "defaults": { "workspace": "~/picoclaw-workspace", - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api.openai.com/v1" }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_base": "https://api.anthropic.com/v1" } ], @@ -515,11 +515,11 @@ Returns the path to `.security.yml` relative to the config file. ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-proj-actual-openai-key-1" - "sk-proj-actual-openai-key-2" - claude-sonnet-4.6: + claude-sonnet-5: api_keys: - "sk-ant-actual-anthropic-key" @@ -561,7 +561,7 @@ go test ./pkg/config -run TestSecurityConfig - Ensure the model name in `config.json` matches exactly in `.security.yml` - Check that the `model_list` section exists in `.security.yml` -- For models with indexed names (e.g., "gpt-5.4:0"), ensure the exact name is used or check the base name without index +- For models with indexed names (e.g., "gpt-5.6-terra:0"), ensure the exact name is used or check the base name without index - Verify the YAML structure is correct (proper indentation) ### Multiple API Keys Not Working @@ -660,7 +660,7 @@ SaveConfig(path, config) Encrypted keys are stored as: ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "enc://encrypted-base64-string" ``` diff --git a/pkg/config/config.go b/pkg/config/config.go index df232f771a..57bfcaa9e3 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -778,7 +778,7 @@ func (c ModelStreamingConfig) IsZero() bool { // ModelConfig represents a model-centric provider configuration. // It allows adding new providers (especially OpenAI-compatible ones) via configuration only. // The Model field may be either a plain model identifier or a provider-prefixed -// identifier such as "openai/gpt-5.4" or "nvidia/z-ai/glm-5.1". +// identifier such as "openai/gpt-5.6-terra" or "nvidia/z-ai/glm-5.1". // Supported providers include openai, anthropic, antigravity, claude-cli, // codex-cli, github-copilot, and named OpenAI-compatible protocols such as // groq, deepseek, modelscope, and novita. diff --git a/pkg/config/config_old.go b/pkg/config/config_old.go index c196204270..e5f6c4a4ff 100644 --- a/pkg/config/config_old.go +++ b/pkg/config/config_old.go @@ -42,7 +42,7 @@ func v0ProvidersMapToModelList(providers map[string]any, userProvider, userModel { jsonKeys: []string{"openai", "gpt"}, protocol: "openai", - defModel: "openai/gpt-5.4", + defModel: "openai/gpt-5.6-terra", extractFn: func(prov map[string]any) map[string]any { entry := make(map[string]any) if v, ok := prov["api_key"]; ok && v != "" { @@ -69,7 +69,7 @@ func v0ProvidersMapToModelList(providers map[string]any, userProvider, userModel { jsonKeys: []string{"anthropic", "claude"}, protocol: "anthropic", - defModel: "anthropic/claude-sonnet-4.6", + defModel: "anthropic/claude-sonnet-5", extractFn: func(prov map[string]any) map[string]any { entry := make(map[string]any) if v, ok := prov["api_key"]; ok && v != "" { @@ -303,7 +303,7 @@ func v0ProvidersMapToModelList(providers map[string]any, userProvider, userModel { jsonKeys: []string{"deepseek"}, protocol: "deepseek", - defModel: "deepseek/deepseek-chat", + defModel: "deepseek/deepseek-v4-flash", extractFn: func(prov map[string]any) map[string]any { entry := make(map[string]any) if v, ok := prov["api_key"]; ok && v != "" { @@ -387,7 +387,7 @@ func v0ProvidersMapToModelList(providers map[string]any, userProvider, userModel { jsonKeys: []string{"github_copilot", "copilot"}, protocol: "github-copilot", - defModel: "github-copilot/gpt-5.4", + defModel: "github-copilot/gpt-5.6-terra", extractFn: func(prov map[string]any) map[string]any { entry := make(map[string]any) if v, ok := prov["api_key"]; ok && v != "" { @@ -504,7 +504,7 @@ func v0ProvidersMapToModelList(providers map[string]any, userProvider, userModel { jsonKeys: []string{"longcat"}, protocol: "longcat", - defModel: "longcat/LongCat-Flash-Thinking", + defModel: "longcat/LongCat-2.0", extractFn: func(prov map[string]any) map[string]any { entry := make(map[string]any) if v, ok := prov["api_key"]; ok && v != "" { diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index 30e7077fb2..08005c171f 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -2867,7 +2867,7 @@ func TestDefaultConfig_MinimaxExtraBody(t *testing.T) { var minimaxCfg *ModelConfig for i := range cfg.ModelList { - if cfg.ModelList[i].Provider == "minimax" && cfg.ModelList[i].Model == "MiniMax-M2.5" { + if cfg.ModelList[i].Provider == "minimax" && cfg.ModelList[i].Model == "MiniMax-M3" { minimaxCfg = cfg.ModelList[i] break } diff --git a/pkg/config/defaults.go b/pkg/config/defaults.go index 96ce5f0f48..b38ea873d7 100644 --- a/pkg/config/defaults.go +++ b/pkg/config/defaults.go @@ -70,33 +70,33 @@ func DefaultConfig() *Config { // Zhipu AI (智谱) - https://open.bigmodel.cn/usercenter/apikeys { - ModelName: "glm-4.7", + ModelName: "glm-5.2", Provider: "zhipu", - Model: "glm-4.7", + Model: "glm-5.2", APIBase: "https://open.bigmodel.cn/api/paas/v4", }, // OpenAI - https://platform.openai.com/api-keys { - ModelName: "gpt-5.4", + ModelName: "gpt-5.6-terra", Provider: "openai", - Model: "gpt-5.4", + Model: "gpt-5.6-terra", APIBase: "https://api.openai.com/v1", }, // Anthropic Claude - https://console.anthropic.com/settings/keys { - ModelName: "claude-sonnet-4.6", + ModelName: "claude-sonnet-5", Provider: "anthropic", - Model: "claude-sonnet-4-6", + Model: "claude-sonnet-5", APIBase: "https://api.anthropic.com/v1", }, // DeepSeek - https://platform.deepseek.com/ { - ModelName: "deepseek-chat", + ModelName: "deepseek-v4-flash", Provider: "deepseek", - Model: "deepseek-chat", + Model: "deepseek-v4-flash", APIBase: "https://api.deepseek.com/v1", }, @@ -126,17 +126,17 @@ func DefaultConfig() *Config { // Qwen (通义千问) - https://dashscope.console.aliyun.com/apiKey { - ModelName: "qwen-plus", + ModelName: "qwen3.7-plus", Provider: "qwen", - Model: "qwen-plus", + Model: "qwen3.7-plus", APIBase: "https://dashscope.aliyuncs.com/compatible-mode/v1", }, // Moonshot (月之暗面) - https://platform.moonshot.cn/console/api-keys { - ModelName: "moonshot-v1-8k", + ModelName: "kimi-k3", Provider: "moonshot", - Model: "moonshot-v1-8k", + Model: "kimi-k3", APIBase: "https://api.moonshot.cn/v1", }, @@ -156,9 +156,9 @@ func DefaultConfig() *Config { APIBase: "https://openrouter.ai/api/v1", }, { - ModelName: "openrouter-gpt-5.4", + ModelName: "openrouter-gpt-5.6-terra", Provider: "openrouter", - Model: "openai/gpt-5.4", + Model: "openai/gpt-5.6-terra", APIBase: "https://openrouter.ai/api/v1", }, @@ -218,9 +218,9 @@ func DefaultConfig() *Config { // GitHub Copilot - https://github.com/settings/tokens { - ModelName: "copilot-gpt-5.4", + ModelName: "copilot-gpt-5.6-terra", Provider: "github-copilot", - Model: "gpt-5.4", + Model: "gpt-5.6-terra", APIBase: "http://localhost:4321", AuthMethod: "oauth", }, @@ -257,18 +257,18 @@ func DefaultConfig() *Config { // Minimax - https://api.minimaxi.com/ { - ModelName: "MiniMax-M2.5", + ModelName: "MiniMax-M3", Provider: "minimax", - Model: "MiniMax-M2.5", + Model: "MiniMax-M3", APIBase: "https://api.minimaxi.com/v1", ExtraBody: map[string]any{"reasoning_split": true}, }, // LongCat - https://longcat.chat/platform { - ModelName: "LongCat-Flash-Thinking", + ModelName: "LongCat-2.0", Provider: "longcat", - Model: "LongCat-Flash-Thinking", + Model: "LongCat-2.0", APIBase: "https://api.longcat.chat/openai", }, diff --git a/pkg/config/example_security_usage.go b/pkg/config/example_security_usage.go index de80f541a4..b78b4859e2 100644 --- a/pkg/config/example_security_usage.go +++ b/pkg/config/example_security_usage.go @@ -34,11 +34,11 @@ File: ~/.picoclaw/.security.yml # Even a single key must be provided as an array with one element model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-proj-your-actual-openai-key-1" - "sk-proj-your-actual-openai-key-2" # Optional: Multiple keys for failover - claude-sonnet-4.6: + claude-sonnet-5: api_keys: - "sk-ant-your-actual-anthropic-key" # Single key in array format @@ -88,19 +88,19 @@ Note: Sensitive fields are omitted because they're loaded from .security.yml "agents": { "defaults": { "workspace": "~/picoclaw-workspace", - "model_name": "gpt-5.4" + "model_name": "gpt-5.6-terra" } }, "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api.openai.com/v1" // api_key is automatically loaded from .security.yml }, { - "model_name": "claude-sonnet-4.6", - "model": "anthropic/claude-sonnet-4.6", + "model_name": "claude-sonnet-5", + "model": "anthropic/claude-sonnet-5", "api_base": "https://api.anthropic.com/v1" // api_key is automatically loaded from .security.yml } @@ -178,11 +178,11 @@ Examples: ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-proj-key-1" - "sk-proj-key-2" - claude-sonnet-4.6: + claude-sonnet-5: api_keys: - "sk-ant-key" @@ -385,7 +385,7 @@ You can configure multiple API keys for models and web tools to enable: ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-proj-key-1" - "sk-proj-key-2" @@ -399,8 +399,8 @@ model_list: { "model_list": [ { - "model_name": "gpt-5.4", - "model": "openai/gpt-5.4", + "model_name": "gpt-5.6-terra", + "model": "openai/gpt-5.6-terra", "api_base": "https://api.openai.com/v1" } ] @@ -453,7 +453,7 @@ web: ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: - "sk-proj-your-key" # Single key in array format @@ -478,7 +478,7 @@ The system supports intelligent model name matching in .security.yml: ```json { - "model_name": "gpt-5.4:0" + "model_name": "gpt-5.6-terra:0" } ``` @@ -487,7 +487,7 @@ The system supports intelligent model name matching in .security.yml: ```yaml model_list: - gpt-5.4:0: + gpt-5.6-terra:0: api_keys: ["key-1"] ``` @@ -498,7 +498,7 @@ model_list: ```json { - "model_name": "gpt-5.4:0" + "model_name": "gpt-5.6-terra:0" } ``` @@ -507,7 +507,7 @@ model_list: ```yaml model_list: - gpt-5.4: + gpt-5.6-terra: api_keys: ["key-1", "key-2"] ``` @@ -565,7 +565,7 @@ and .security.yml values. ## Error: "model security entry not found" - Check that the model name in config.json matches exactly in .security.yml - Verify the model_list section exists in .security.yml -- For indexed names (e.g., "gpt-5.4:0"), check both exact match and base name match +- For indexed names (e.g., "gpt-5.6-terra:0"), check both exact match and base name match - Ensure the YAML structure is correct (proper indentation) ## Multiple API Keys Not Working diff --git a/pkg/providers/anthropic/provider.go b/pkg/providers/anthropic/provider.go index 7f0fe53cc5..4a08dcbdf1 100644 --- a/pkg/providers/anthropic/provider.go +++ b/pkg/providers/anthropic/provider.go @@ -131,7 +131,7 @@ func (p *Provider) chatStreaming( } func (p *Provider) GetDefaultModel() string { - return "claude-sonnet-4.6" + return "claude-sonnet-5" } func (p *Provider) BaseURL() string { diff --git a/pkg/providers/anthropic/provider_test.go b/pkg/providers/anthropic/provider_test.go index 0cb1a11322..a946c02052 100644 --- a/pkg/providers/anthropic/provider_test.go +++ b/pkg/providers/anthropic/provider_test.go @@ -314,8 +314,8 @@ func TestProvider_ChatRoundTrip(t *testing.T) { func TestProvider_GetDefaultModel(t *testing.T) { p := NewProvider("test-token") - if got := p.GetDefaultModel(); got != "claude-sonnet-4.6" { - t.Errorf("GetDefaultModel() = %q, want %q", got, "claude-sonnet-4.6") + if got := p.GetDefaultModel(); got != "claude-sonnet-5" { + t.Errorf("GetDefaultModel() = %q, want %q", got, "claude-sonnet-5") } } diff --git a/pkg/providers/anthropic_messages/provider.go b/pkg/providers/anthropic_messages/provider.go index 3f16849565..3999f3efa9 100644 --- a/pkg/providers/anthropic_messages/provider.go +++ b/pkg/providers/anthropic_messages/provider.go @@ -151,7 +151,7 @@ func (p *Provider) Chat( // GetDefaultModel returns the default model for this provider. func (p *Provider) GetDefaultModel() string { - return "claude-sonnet-4.6" + return "claude-sonnet-5" } // buildRequestBody converts internal message format to Anthropic Messages API format. diff --git a/pkg/providers/anthropic_messages/provider_test.go b/pkg/providers/anthropic_messages/provider_test.go index f62fe3d180..49e24d7457 100644 --- a/pkg/providers/anthropic_messages/provider_test.go +++ b/pkg/providers/anthropic_messages/provider_test.go @@ -388,7 +388,7 @@ func TestNewProvider(t *testing.T) { func TestGetDefaultModel(t *testing.T) { provider := NewProvider("test-key", "", "") got := provider.GetDefaultModel() - expected := "claude-sonnet-4.6" + expected := "claude-sonnet-5" if got != expected { t.Errorf("GetDefaultModel() = %q, want %q", got, expected) } diff --git a/pkg/providers/oauth/claude_provider_test.go b/pkg/providers/oauth/claude_provider_test.go index eea5423c34..5d42d789ca 100644 --- a/pkg/providers/oauth/claude_provider_test.go +++ b/pkg/providers/oauth/claude_provider_test.go @@ -66,8 +66,8 @@ func TestClaudeProvider_ChatRoundTrip(t *testing.T) { func TestClaudeProvider_GetDefaultModel(t *testing.T) { p := NewClaudeProvider("test-token") - if got := p.GetDefaultModel(); got != "claude-sonnet-4.6" { - t.Errorf("GetDefaultModel() = %q, want %q", got, "claude-sonnet-4.6") + if got := p.GetDefaultModel(); got != "claude-sonnet-5" { + t.Errorf("GetDefaultModel() = %q, want %q", got, "claude-sonnet-5") } } diff --git a/pkg/providers/provider_metadata.go b/pkg/providers/provider_metadata.go index 90a2206b84..bcdb021bf8 100644 --- a/pkg/providers/provider_metadata.go +++ b/pkg/providers/provider_metadata.go @@ -35,7 +35,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ DefaultModelAllowed: true, SupportsFetch: true, Priority: 100, - CommonModels: []string{"gpt-5.4", "gpt-5.4-mini", "gpt-5.5"}, + CommonModels: []string{"gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.6-sol"}, Aliases: []string{"gpt"}, httpAPI: true, }, @@ -48,7 +48,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ CreateAllowed: true, DefaultModelAllowed: true, Priority: 95, - CommonModels: []string{"claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5"}, + CommonModels: []string{"claude-fable-5", "claude-opus-4-8", "claude-sonnet-5", "claude-haiku-4-5"}, Aliases: []string{"claude"}, httpAPI: true, }, @@ -61,7 +61,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ CreateAllowed: true, DefaultModelAllowed: true, Priority: 94, - CommonModels: []string{"claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5"}, + CommonModels: []string{"claude-fable-5", "claude-opus-4-8", "claude-sonnet-5", "claude-haiku-4-5"}, httpAPI: true, }, "gemini": { @@ -73,7 +73,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ CreateAllowed: true, DefaultModelAllowed: true, Priority: 90, - CommonModels: []string{"gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-3.1-flash-lite"}, + CommonModels: []string{"gemini-3.1-pro-preview", "gemini-3.5-flash", "gemini-3.1-flash-lite"}, Aliases: []string{"google"}, httpAPI: true, }, @@ -101,8 +101,8 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ SupportsFetch: true, Priority: 80, CommonModels: []string{ - "openai/gpt-5.4", - "anthropic/claude-opus-4.7", + "openai/gpt-5.6-terra", + "anthropic/claude-sonnet-5", "google/gemini-3.1-pro-preview", "qwen/qwen3-coder-next", }, @@ -118,7 +118,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ DefaultModelAllowed: true, SupportsFetch: true, Priority: 75, - CommonModels: []string{"qwen3.6-max-preview", "qwen3.6-plus", "qwen3.6-flash", "qwen3-coder-next"}, + CommonModels: []string{"qwen3.7-max", "qwen3.7-plus", "qwen3.6-flash"}, Aliases: []string{"qwen"}, httpAPI: true, }, @@ -132,7 +132,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ DefaultModelAllowed: true, SupportsFetch: true, Priority: 74, - CommonModels: []string{"qwen3.6-max-preview", "qwen3.6-plus", "qwen3.6-flash", "qwen3-coder-next"}, + CommonModels: []string{"qwen3.7-max", "qwen3.7-plus", "qwen3.6-flash"}, Aliases: []string{"qwen-international", "dashscope-intl"}, httpAPI: true, }, @@ -146,10 +146,10 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ SupportsFetch: true, Priority: 70, CommonModels: []string{ - "kimi-k2.5", - "kimi-k2-thinking", - "kimi-k2-thinking-turbo", - "kimi-k2-turbo-preview", + "kimi-k3", + "kimi-k2.7-code", + "kimi-k2.7-code-highspeed", + "kimi-k2.6", }, httpAPI: true, }, @@ -180,7 +180,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ DefaultModelAllowed: true, SupportsFetch: true, Priority: 68, - CommonModels: []string{"glm-5", "glm-4.7", "glm-4.5-air", "glm-4-flash-250414"}, + CommonModels: []string{"glm-5.2", "glm-4.5-air", "glm-4.7-flash"}, Aliases: []string{"glm"}, httpAPI: true, }, @@ -515,7 +515,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ DefaultModelAllowed: true, SupportsFetch: true, Priority: 37, - CommonModels: []string{"glm-5", "glm-4.7", "glm-4.5-air", "glm-4-flash-250414"}, + CommonModels: []string{"glm-5.2", "glm-4.5-air", "glm-4.7-flash"}, Aliases: []string{"z.ai", "z-ai"}, httpAPI: true, }, @@ -528,7 +528,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ CreateAllowed: true, DefaultModelAllowed: true, Priority: 36.5, - CommonModels: []string{"qwen3.6-plus", "kimi-k2.5", "glm-5", "MiniMax-M2.5"}, + CommonModels: []string{"qwen3.7-plus", "kimi-k3", "glm-5.2", "MiniMax-M3"}, Aliases: []string{"coding-plan", "qwen-coding"}, httpAPI: true, }, @@ -541,7 +541,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ CreateAllowed: true, DefaultModelAllowed: true, Priority: 36.25, - CommonModels: []string{"qwen3.6-plus", "kimi-k2.5", "glm-5", "MiniMax-M2.5"}, + CommonModels: []string{"qwen3.7-plus", "kimi-k3", "glm-5.2", "MiniMax-M3"}, Aliases: []string{"coding-plan-anthropic"}, httpAPI: true, }, @@ -576,7 +576,7 @@ var modelProviderOptionsByName = map[string]ModelProviderOption{ CreateAllowed: true, DefaultModelAllowed: true, Priority: 34, - CommonModels: []string{"qwen3.6-max-preview", "qwen3.6-plus", "qwen3.6-flash", "qwen3-coder-next"}, + CommonModels: []string{"qwen3.7-max", "qwen3.7-plus", "qwen3.6-flash"}, Aliases: []string{"dashscope-us"}, httpAPI: true, }, diff --git a/web/backend/api/oauth.go b/web/backend/api/oauth.go index 7586a45b11..3d09c644e8 100644 --- a/web/backend/api/oauth.go +++ b/web/backend/api/oauth.go @@ -777,16 +777,16 @@ func defaultModelConfigForProvider(provider, authMethod string) *config.ModelCon switch provider { case oauthProviderOpenAI: return &config.ModelConfig{ - ModelName: "gpt-5.4", + ModelName: "gpt-5.6-terra", Provider: "openai", - Model: "gpt-5.4", + Model: "gpt-5.6-terra", AuthMethod: authMethod, } case oauthProviderAnthropic: return &config.ModelConfig{ - ModelName: "claude-sonnet-4.6", + ModelName: "claude-sonnet-5", Provider: "anthropic", - Model: "claude-sonnet-4.6", + Model: "claude-sonnet-5", AuthMethod: authMethod, } case oauthProviderGoogleAntigravity: diff --git a/web/frontend/src/i18n/locales/bn-in.json b/web/frontend/src/i18n/locales/bn-in.json index 0af20a7362..27b4b0f9a3 100644 --- a/web/frontend/src/i18n/locales/bn-in.json +++ b/web/frontend/src/i18n/locales/bn-in.json @@ -278,7 +278,7 @@ "modelNameHint": "কথোপকথনে এই মডেলটি চিহ্নিত করতে ব্যবহৃত একটি ছোট নাম।", "modelId": "মডেল শনাক্তকারী", "modelIdPlaceholder": "যেমন gpt-4o বা openai/gpt-4o", - "modelIdHint": "এই ক্ষেত্রটি নির্বাচিত প্রোভাইডারের জন্য canonical মডেল ID হিসেবে বিবেচিত হয়। যদি শনাক্তকারীতে নিজেই একটি স্ল্যাশ থাকে (উদাহরণস্বরূপ openai/gpt-5.4), তবে এটি অপরিবর্তিত রাখা হয় এবং আবার বিভক্ত করা হয় না।", + "modelIdHint": "এই ক্ষেত্রটি নির্বাচিত প্রোভাইডারের জন্য canonical মডেল ID হিসেবে বিবেচিত হয়। যদি শনাক্তকারীতে নিজেই একটি স্ল্যাশ থাকে (উদাহরণস্বরূপ openai/gpt-5.6-terra), তবে এটি অপরিবর্তিত রাখা হয় এবং আবার বিভক্ত করা হয় না।", "errorRequired": "এই ক্ষেত্রটি প্রয়োজনীয়।", "errorDuplicateModelName": "মডেল এলিয়াস ইতিমধ্যে বিদ্যমান। অনুগ্রহ করে একটি ভিন্ন নাম ব্যবহার করুন।", "saveError": "মডেল যোগ করতে ব্যর্থ", diff --git a/web/frontend/src/i18n/locales/en.json b/web/frontend/src/i18n/locales/en.json index 83ee7f7e35..193b620600 100644 --- a/web/frontend/src/i18n/locales/en.json +++ b/web/frontend/src/i18n/locales/en.json @@ -279,7 +279,7 @@ "modelNameHint": "A short name used to identify this model in conversations.", "modelId": "Model Identifier", "modelIdPlaceholder": "e.g. gpt-4o or openai/gpt-4o", - "modelIdHint": "This field is treated as the canonical model ID for the selected provider. If the identifier itself contains a slash (for example openai/gpt-5.4), it is preserved as-is and not split again.", + "modelIdHint": "This field is treated as the canonical model ID for the selected provider. If the identifier itself contains a slash (for example openai/gpt-5.6-terra), it is preserved as-is and not split again.", "errorRequired": "This field is required.", "errorDuplicateModelName": "Model alias already exists. Please use a different name.", "saveError": "Failed to add model", diff --git a/web/frontend/src/i18n/locales/pt-br.json b/web/frontend/src/i18n/locales/pt-br.json index 4ec805e70c..6089279570 100644 --- a/web/frontend/src/i18n/locales/pt-br.json +++ b/web/frontend/src/i18n/locales/pt-br.json @@ -279,7 +279,7 @@ "modelNameHint": "Um nome curto usado para identificar este modelo nas conversas.", "modelId": "Identificador do Modelo", "modelIdPlaceholder": "ex: gpt-4o ou openai/gpt-4o", - "modelIdHint": "Este campo é tratado como o ID canônico do modelo para o provedor selecionado. Se o próprio identificador contiver uma barra, como openai/gpt-5.4, ele será preservado como está e não será dividido novamente.", + "modelIdHint": "Este campo é tratado como o ID canônico do modelo para o provedor selecionado. Se o próprio identificador contiver uma barra, como openai/gpt-5.6-terra, ele será preservado como está e não será dividido novamente.", "errorRequired": "Este campo é obrigatório.", "errorDuplicateModelName": "Apelido de modelo já existe. Use um nome diferente.", "saveError": "Falha ao adicionar modelo", diff --git a/web/frontend/src/i18n/locales/zh.json b/web/frontend/src/i18n/locales/zh.json index fa8763db8d..40bc801f03 100644 --- a/web/frontend/src/i18n/locales/zh.json +++ b/web/frontend/src/i18n/locales/zh.json @@ -279,7 +279,7 @@ "modelNameHint": "用于在对话中识别此模型的简短名称。", "modelId": "模型标识符", "modelIdPlaceholder": "例如 gpt-4o 或 openai/gpt-4o", - "modelIdHint": "此字段将作为所选 Provider 的规范模型 ID 使用。若模型标识符本身包含斜杠(如 openai/gpt-5.4),将作为完整 ID 保留,不会再次拆分 Provider。", + "modelIdHint": "此字段将作为所选 Provider 的规范模型 ID 使用。若模型标识符本身包含斜杠(如 openai/gpt-5.6-terra),将作为完整 ID 保留,不会再次拆分 Provider。", "errorRequired": "此字段为必填项。", "errorDuplicateModelName": "模型别名已存在,请使用其他名称。", "saveError": "添加模型失败", diff --git a/workspace/skills/summarize/SKILL.md b/workspace/skills/summarize/SKILL.md index ca7008e7af..396649813d 100644 --- a/workspace/skills/summarize/SKILL.md +++ b/workspace/skills/summarize/SKILL.md @@ -20,8 +20,8 @@ Use this skill immediately when the user asks any of: ## Quick start ```bash -summarize "https://example.com" --model google/gemini-3-flash-preview -summarize "/path/to/file.pdf" --model google/gemini-3-flash-preview +summarize "https://example.com" --model google/gemini-3.5-flash +summarize "/path/to/file.pdf" --model google/gemini-3.5-flash summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto ``` @@ -43,7 +43,7 @@ Set the API key for your chosen provider: - xAI: `XAI_API_KEY` - Google: `GEMINI_API_KEY` (aliases: `GOOGLE_GENERATIVE_AI_API_KEY`, `GOOGLE_API_KEY`) -Default model is `google/gemini-3-flash-preview` if none is set. +Default model is `google/gemini-3.5-flash` if none is set. ## Useful flags @@ -59,7 +59,7 @@ Default model is `google/gemini-3-flash-preview` if none is set. Optional config file: `~/.summarize/config.json` ```json -{ "model": "openai/gpt-5.4" } +{ "model": "openai/gpt-5.6-terra" } ``` Optional services: