Aller au contenu principal

createCodingAgent()

createCodingAgent() construit un Agent de programmation avec des valeurs par défaut portables pour les composants dont il a toujours besoin : un Workspace local, le Provider de signaux de liste de tâches, les Processors d’erreurs chargés des nouvelles tentatives réseau et le prompt du juge de l’objectif. Fournissez uniquement model, instructions et tools pour obtenir un Agent fonctionnel, ou remplacez n’importe quelle valeur par défaut.

La valeur renvoyée est un Agent standard ; elle fonctionne donc partout où un Agent peut être utilisé, notamment comme Agent transmis à un AgentController.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

Transmettez un modèle, des instructions et des Tools. La fonction de fabrique fournit le Workspace, le signal de tâche, les Processors d’erreurs et le prompt de l’objectif :

src/mastra/coding-agent.ts
import { createCodingAgent } from '@mastra/core/coding-agent'

const agent = createCodingAgent({
id: 'my-coding-agent',
name: 'My Coding Agent',
model: 'openai/gpt-5',
instructions: 'You are a helpful coding assistant.',
tools: {},
})

Paramètres
Lien direct vers Paramètres

createCodingAgent() accepte tous les champs d’AgentConfig, ainsi que les champs ci-dessous. Les champs que vous fournissez sont toujours prioritaires sur les valeurs par défaut de la fonction de fabrique.

model:

MastraLanguageModel | DynamicArgument<MastraLanguageModel>
Modèle de langage utilisé par l’Agent. Transmis directement à Agent.

instructions:

string | DynamicArgument<string>
Instructions système de l’Agent. Transmises directement à Agent.

tools?:

ToolsInput | DynamicArgument<ToolsInput>
Tools accessibles à l’Agent. Transmis directement à Agent.

workspace?:

AnyWorkspace | undefined
Workspace sous-jacent à l’Agent. Lorsque la clé est omise, un Workspace local par défaut est construit. Lorsqu’elle est explicitement définie sur undefined, la fonction de fabrique ne construit aucune valeur par défaut ; utilisez cette option si le Workspace est connecté ailleurs, par exemple au niveau d’AgentController.

basePath?:

string
= process.cwd()
Chemin de base du Workspace par défaut construit lorsque workspace est omis.

signals?:

SignalProvider[]
Providers de signaux de l’Agent. En cas d’omission, la valeur par défaut est un seul TaskSignalProvider.

errorProcessors?:

Processor[]
Processors d’erreurs de l’Agent. En cas d’omission, la valeur par défaut comprend les nouvelles tentatives après les erreurs de flux inconnues, avec des politiques spécialisées pour ECONNRESET et les requêtes incorrectes, ainsi que PrefillErrorHandler et ProviderHistoryCompat.

goal?:

AgentGoalConfig
Configuration de l’objectif. Lorsqu’elle est fournie sans prompt, la valeur par défaut du prompt est DEFAULT_GOAL_JUDGE_PROMPT.

Valeur renvoyée
Lien direct vers Valeur renvoyée

agent:

Agent
Agent de programmation auquel sont appliqués le Workspace résolu, les signaux, les Processors d’erreurs et l’objectif.

Valeurs par défaut
Lien direct vers Valeurs par défaut

La fonction de fabrique ne fournit une valeur par défaut que si vous n’indiquez pas le champ correspondant. Les valeurs fournies par l’appelant sont toujours prioritaires.

ChampValeur par défaut en cas d’omission
workspaceUn Workspace reposant sur LocalFilesystem et LocalSandbox, avec le chemin de base comme racine.
signalsUn seul TaskSignalProvider.
errorProcessorsNouvelles tentatives après les erreurs de flux inconnues, avec des politiques spécialisées pour ECONNRESET et les requêtes incorrectes, ainsi que PrefillErrorHandler et ProviderHistoryCompat.
goal.promptDEFAULT_GOAL_JUDGE_PROMPT, uniquement lorsqu’un goal est configuré.

Workspace
Lien direct vers Workspace

Lorsque la clé workspace est omise, la fonction de fabrique construit un Workspace local dont la racine est basePath, avec process.cwd() comme valeur par défaut :

import { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace'

new Workspace({
filesystem: new LocalFilesystem({ basePath }),
sandbox: new LocalSandbox({ workingDirectory: basePath }),
})

Pour désactiver ce comportement, par exemple lorsque le Workspace est injecté au niveau d’AgentController, transmettez explicitement workspace: undefined :

const agent = createCodingAgent({
id: 'my-coding-agent',
name: 'My Coding Agent',
model: 'openai/gpt-5',
instructions: 'You are a helpful coding assistant.',
tools: {},
workspace: undefined, // opt out of the default workspace
})

Processors d’erreurs
Lien direct vers Processors d’erreurs

Le StreamErrorRetryProcessor par défaut applique les politiques de nouvelle tentative suivantes :

  • Les erreurs inconnues qui ne correspondent pas aux métadonnées du Provider ni à un matcher particulier font l’objet de deux nouvelles tentatives au maximum, avec un délai de 3000ms. Les échecs d’autorisation connus sont immédiatement renvoyés.
  • Les réinitialisations réseau (ECONNRESET / socket hang up) font l’objet de deux nouvelles tentatives au maximum avec un backoff exponentiel (1000ms * 2^retryCount, plafonné à 30000ms).
  • Les erreurs de requête incorrecte font l’objet d’une nouvelle tentative après 2000ms.

Les politiques propres aux réinitialisations réseau et aux requêtes incorrectes sont prioritaires sur la politique des erreurs inconnues. La transmission de errorProcessors remplace la pile de Processors par défaut. PrefillErrorHandler et ProviderHistoryCompat sont également inclus pour assurer la compatibilité avec les Providers.