Skip to content

ModelCapabilityProfile

reference
1 min readUpdated

Kind: Interface

Source: atloria-monorepo/libs/agent-core/src/runtime/model-profiles.ts

Model Capability Profiles

Describes what each model needs at the API level and prompt level. This makes AgentSession and buildAdaptivePrompt model-agnostic: instead of scattering if (model.includes('gpt-5')) checks, callers declare what a model needs via a profile.

Resolution order (first wins):

  1. Explicit modelProfile on AzureModelProviderConfig (deployer knows their model)
  2. Name-based detection via getDefaultProfile(modelId) (well-known slugs)
  3. STANDARD_PROFILE (safe default — preserves current GPT-5.4 behavior)

Properties

PropertyType
supportsReasoningEffortboolean
supportsTemperatureboolean
supportsStrictToolsboolean
defaults`{
/**
 * Reasoning effort applied when the agent has tools and the caller
 * hasn't explicitly set reasoningEffort.
 * GPT-5.4: 'medium' (defaults to 'none' otherwise, skipping tool calls).
 * Claude / GPT-4.x: undefined (field not sent).
 */
reasoningEffort?: 'none' | 'low' | 'medium' | 'high';

/**
 * toolChoice for the FIRST turn only.
 * After turn 1, the session resets to 'auto' to prevent loops.
 * GPT-5.4: 'required' (forces at least one tool call on turn 1).
 * Claude / GPT-4.x: undefined.
 *
 * IMPORTANT: Do NOT set 'required' when built-in tools (web_search,
 * code_interpreter) are in the tool list — the API rejects mixed types
 * with tool_choice: 'required'.
 */
toolChoiceFirstTurn?: 'required' | 'auto';

/**
 * Whether to request strict schema validation for tool calls.
 * GPT-5.4: true.
 */
strictToolSchemas?: boolean;

/**
 * Whether to run tool calls in parallel.
 * GPT-5.4: true (default behavior, but explicit is safer).
 */
parallelToolCalls?: boolean;

}| |needsToolPersistence|boolean| |needsApplyPatchFormat|boolean| |needsPreambleGuidance|boolean| |guidanceLevel|'minimal' | 'standard' | 'verbose'` |

Was this page helpful?

Download as PDF