diff --git a/README.md b/README.md index d7c80edc..9a53da8e 100644 --- a/README.md +++ b/README.md @@ -146,7 +146,6 @@ import { run } from "@perstack/runtime" const checkpoint = await run({ setting: { - model: "claude-sonnet-4-5", providerConfig: { providerName: "anthropic", apiKey: env.ANTHROPIC_API_KEY }, expertKey: "my-expert", input: { text: query }, diff --git a/docs/getting-started/walkthrough.mdx b/docs/getting-started/walkthrough.mdx index e11f558c..eaa1ed0e 100644 --- a/docs/getting-started/walkthrough.mdx +++ b/docs/getting-started/walkthrough.mdx @@ -276,7 +276,6 @@ import { run } from "@perstack/runtime" const checkpoint = await run({ setting: { - model: "claude-sonnet-4-5-20250929", providerConfig: { providerName: "anthropic" }, expertKey: "fitness-assistant", input: { text: "Start today's session" }, @@ -291,7 +290,6 @@ import { run } from "@perstack/runtime" const checkpoint = await run({ setting: { - model: "claude-sonnet-4-5-20250929", providerConfig: { providerName: "anthropic" }, expertKey: "fitness-assistant", input: { text: "Start today's session" }, diff --git a/docs/operating-experts/deployment.md b/docs/operating-experts/deployment.md index 6170e7b8..2c19085e 100644 --- a/docs/operating-experts/deployment.md +++ b/docs/operating-experts/deployment.md @@ -92,7 +92,6 @@ export default { await run( { setting: { - model: "claude-sonnet-4-5", providerConfig: { providerName: "anthropic", apiKey: env.ANTHROPIC_API_KEY }, expertKey, input: { text: query }, diff --git a/docs/references/cli.md b/docs/references/cli.md index 8cd2ccbd..09b72e6f 100644 --- a/docs/references/cli.md +++ b/docs/references/cli.md @@ -74,7 +74,7 @@ Both `start` and `run` accept the following options: | Option | Default | Description | | ----------------------------- | --------------- | -------------------------------------------------------------------------------------- | | `--provider ` | `anthropic` | LLM provider | -| `--model ` | `claude-sonnet-4-5` | Model name | +| `--model ` | `auto` | Model name (auto-resolved from expert tier or provider's middle tier) | | `--reasoning-budget ` | - | Reasoning budget (`minimal`, `low`, `medium`, `high`, or token count) | Providers: `anthropic`, `google`, `openai`, `deepseek`, `ollama`, `azure-openai`, `amazon-bedrock`, `google-vertex` diff --git a/docs/references/providers-and-models.md b/docs/references/providers-and-models.md index 3f642e80..4f256789 100644 --- a/docs/references/providers-and-models.md +++ b/docs/references/providers-and-models.md @@ -8,12 +8,12 @@ Perstack supports multiple LLM providers. Configure via CLI options, environment ## Default Model -Perstack uses `claude-sonnet-4-5` as the default model, selected based on: +When no model is specified, Perstack resolves it automatically using a tier-based system: -- **Standard tier pricing** — not a flagship model, economically sustainable for extended runs -- **High agentic performance** — demonstrated tool use capability in benchmarks like [𝜏²-Bench](https://artificialanalysis.ai/evaluations/tau2-bench) +1. **Expert's `defaultModelTier`** — if the expert definition sets a `defaultModelTier` (e.g. `high`, `middle`, `low`), the runtime picks the corresponding model from the provider +2. **Provider's middle tier** — if no tier is set, falls back to the provider's "middle" tier (e.g. `claude-sonnet-4-5` for Anthropic) -The default balances cost efficiency with reliable agent behavior. As new models are released, the default may change based on these criteria. +This ensures cost-efficient defaults while letting experts request more capable models when needed. You can always override the resolved model with `--model` via the CLI or `model =` in `perstack.toml`. To override the default, specify in `perstack.toml`: diff --git a/packages/runtime/README.md b/packages/runtime/README.md index fa143de2..da8d4d71 100644 --- a/packages/runtime/README.md +++ b/packages/runtime/README.md @@ -18,7 +18,6 @@ import { run } from "@perstack/runtime" const checkpoint = await run( { setting: { - model: "claude-sonnet-4-5", providerConfig: { providerName: "anthropic", apiKey: "..." }, jobId: "job-123", runId: "run-123",