Définir votre agent
Créez une configuration d'agent réutilisable et versionnée.
Un agent est une configuration réutilisable et versionnée qui définit un persona et des capacités. Il regroupe le modèle, l'invite système, les outils, les serveurs MCP et les skills qui déterminent le comportement de Claude pendant une session.
Créez l'agent une seule fois en tant que ressource réutilisable et référencez-le par son ID chaque fois que vous démarrez une session. Les agents sont versionnés et plus faciles à gérer sur de nombreuses sessions.
Champs de configuration de l'agent
| Champ | Description |
|---|---|
name | Obligatoire. Un nom lisible par un humain pour l'agent. |
model | Obligatoire. Le modèle Claude qui alimente l'agent. Accepte une chaîne d'ID de modèle ou un objet, par exemple {"id": "claude-opus-5-5"}. Les modèles Claude 4.5 et ultérieurs sont pris en charge. La forme objet accepte également les champs speed, effort et inference_geo ; consultez les conseils sous Créer un agent, Niveaux d'effort et Épingler la géographie d'inférence. |
system | Une invite système qui définit le comportement et le persona de l'agent. L'invite système est distincte des messages utilisateur, qui doivent décrire le travail à effectuer. |
tools | Les outils disponibles pour l'agent. Combine les outils d'agent prédéfinis, les outils MCP et les outils personnalisés. |
mcp_servers | Serveurs MCP qui fournissent des capacités tierces standardisées. |
skills | Skills qui fournissent un contexte spécifique au domaine avec une divulgation progressive. |
multiagent | Permet à l'agent de confier du travail à d'autres agents, en tant que sous-agents ou dans des workflows dynamiques, et éventuellement de consulter un modèle conseiller. Avec le type multiagent_20261001, les workflows dynamiques sont activés sauf si vous les désactivez. Consultez Orchestration multiagent. |
description | Une description de ce que fait l'agent. |
metadata | Paires clé-valeur arbitraires pour votre propre suivi. |
Vous pouvez également remplacer model, system, tools, mcp_servers et skills pour une seule session sans modifier l'agent. Un remplacement de model remplace entièrement l'objet model de l'agent, de sorte que l'effort propre à l'agent n'est pas conservé. Pour exécuter la session à un niveau d'effort spécifique, définissez effort dans l'objet model du remplacement. Consultez Remplacer la configuration de l'agent pour une session.
Créer un agent
L'exemple suivant définit un agent de programmation qui utilise le modèle Claude Opus le plus récent avec accès à l'ensemble d'outils d'agent prédéfini. Cet ensemble d'outils permet à l'agent d'écrire du code, de lire des fichiers, d'effectuer des recherches sur le web, et plus encore. Consultez la référence des outils d'agent pour la liste complète des outils pris en charge.
Les exemples utilisent curl, la CLI ant ou l'un des SDK. Si vous n'en avez pas encore configuré, le guide de démarrage rapide couvre l'installation et la configuration du client.
ant apply coding-assistant.md---
name: Coding Assistant
model: claude-opus-5-5
tools:
- type: agent_toolset_20260401
---
You are a helpful coding agent.ant apply crée l'agent à partir de coding-assistant.md, affiche son ID et l'enregistre dans claude-lock.json. Commitez claude-lock.json afin que le prochain ant apply mette à jour cet agent au lieu d'en créer un second.
La réponse reprend votre configuration et ajoute les champs id, type, version, created_at, updated_at et archived_at, et renseigne les champs de model que vous omettez, comme effort, avec leurs valeurs par défaut. La version commence à 1 et s'incrémente chaque fois qu'une mise à jour modifie l'agent.
{
"id": "agent_01HqR2k7vXbZ9mNpL3wYcT8f",
"type": "agent",
"name": "Coding Assistant",
"model": {
"id": "claude-opus-5-5",
"effort": { "type": "medium" },
"speed": "standard"
},
"system": "You are a helpful coding agent.",
"description": null,
"tools": [
{
"type": "agent_toolset_20260401",
"default_config": {
"permission_policy": { "type": "always_allow" }
}
}
],
"skills": [],
"mcp_servers": [],
"multiagent": null,
"metadata": {},
"version": 1,
"created_at": "2026-04-03T18:24:10.412Z",
"updated_at": "2026-04-03T18:24:10.412Z",
"archived_at": null
}Le default_config de l'ensemble d'outils indique sa politique d'autorisation par défaut, always_allow, qui s'applique sauf si vous en configurez une.
Épingler la géographie d'inférence
Comme speed et effort, inference_geo se définit via la forme objet de model : passez model sous forme d'objet et définissez inference_geo à côté de id. Le champ accepte "us" ou "global". Lorsqu'il n'est pas défini, chaque requête au modèle suit la géographie d'inférence par défaut de l'espace de travail au moment où elle est servie. Consultez Résidence des données pour les contrôles de géographie au niveau de l'espace de travail et la tarification.
L'exemple suivant épingle un agent à l'inférence aux États-Unis et affiche la valeur inference_geo de l'objet model de l'agent :
ant apply geo-pinned-assistant.md---
name: Geo-pinned assistant
model:
id: claude-opus-5-5
inference_geo: us
---
You are a helpful assistant.Un épinglage inference_geo est validé par rapport aux allowed_inference_geos de l'espace de travail lorsque l'agent est enregistré, lorsqu'une session est créée à partir de celui-ci, et à chaque tour servi par la session. Si la liste d'autorisation de l'espace de travail se restreint de sorte qu'un épinglage n'est plus autorisé, de nouvelles sessions ne peuvent plus être créées à partir de l'agent et les sessions en cours refusent les tours suivants ; les épinglages ne sont jamais exemptés, car les espaces de travail s'appuient sur eux pour la conformité et la résidence des données.
Définir inference_geo sur un modèle qui ne prend pas en charge l'épinglage géographique de l'inférence renvoie une erreur 400 ; consultez Disponibilité des modèles pour les modèles qui le prennent en charge. Dans une configuration multiagent, l'épinglage de l'agent et celui de chaque agent figurant dans la liste predefined_agents de subagents ou de workflows doivent tous être définis sur la même valeur ou tous être non définis ; consultez Orchestration multiagent. Pour modifier ou supprimer l'épinglage ultérieurement, mettez à jour l'objet model de l'agent ; fournir model sans inference_geo le supprime, comme décrit dans Sémantique de mise à jour.
Mettre à jour un agent
La mise à jour d'un agent génère une nouvelle version lorsque la configuration change. Le champ version est facultatif : fournissez-le pour une concurrence optimiste (une non-correspondance renvoie une erreur 409), ou omettez-le pour appliquer la mise à jour sans condition (la dernière écriture l'emporte). Les mises à jour des agents archivés sont rejetées.
Avec la CLI, modifiez le fichier de l'agent et exécutez à nouveau ant apply ; apply fournit version pour vous.
ant apply coding-assistant.md---
name: Coding Assistant
model: claude-opus-5-5
tools:
- type: agent_toolset_20260401
---
You are a helpful coding agent. Always write tests.L'exemple précédent fournit version à partir de la réponse de création, de sorte que la mise à jour ne s'applique que si rien d'autre n'a modifié l'agent depuis que vous l'avez lu. Pour appliquer une mise à jour sans condition, omettez version de la requête :
unconditional_agent = client.beta.agents.update(
agent.id,
description="Writes and reviews code.",
)
print(f"New version: {unconditional_agent.version}")Sémantique de mise à jour
-
versionest facultatif et doit être au moins égal à 1 lorsqu'il est fourni. Lorsqu'il est fourni, la requête renvoie une erreur 409 s'il ne correspond pas à la version actuelle de l'agent, même lorsque les champs que vous envoyez correspondent déjà aux valeurs stockées ; relisez l'agent et réessayez. Lorsqu'il est omis, la mise à jour s'applique sans condition et la mise à jour la plus récente remplace silencieusement toute mise à jour concurrente, sans erreur pour aucun des appelants. Fournirversionest le comportement par défaut recommandé pour les appelants interactifs, et l'omettre convient aux boucles d'application déclaratives, comme une tâche CI qui synchronise des définitions d'agents versionnées dans le dépôt, où la boucle est propriétaire de l'agent. -
Les champs omis sont conservés. Vous n'avez besoin d'inclure que les champs que vous souhaitez modifier.
-
Les champs scalaires (
model,system,name,description) sont remplacés par la nouvelle valeur.systemetdescriptionpeuvent être effacés en passantNone.modeletnamesont obligatoires et ne peuvent pas être effacés. Dans un objetmodelque vous fournissez,effortest la seule exception : si l'iddu modèle est inchangé, omettreeffortlaisse le niveau d'effort stocké inchangé. Si vous modifiez l'iddu modèle, uneffortomis est réinitialisé à la valeur par défaut du nouveau modèle. Les autres champs demodelsont remplacés avec l'objet : fournirmodelsansinference_geosupprime l'épinglage de géographie d'inférence de l'agent. -
Les champs de type tableau (
tools,mcp_servers,skills) sont entièrement remplacés par le nouveau tableau. Pour effacer complètement un champ de type tableau, passezNoneou un tableau vide. -
multiagentest fusionné niveau par niveau dans le bloc stocké lorsque la mise à jour conserve le typemultiagent_20261001. Un paramètre que vous omettez conserve sa valeur stockée, et une listepredefined_agentsque vous envoyez remplace la liste stockée. Toute autre mise à jour qui envoiemultiagentremplace le bloc stocké dans son ensemble, et les paramètres qu'elle omet prennent leurs valeurs par défaut. Passezmultiagent=Nonepour effacer l'ensemble du bloc. À l'intérieur du bloc,nullréinitialise un paramètre à sa valeur par défaut, de sorte que définirworkflowssurnullactive les workflows dynamiques. Consultez Activer les workflows dynamiques. -
Les métadonnées sont fusionnées au niveau des clés. Les clés que vous fournissez sont ajoutées ou mises à jour. Les clés que vous omettez sont conservées. Pour supprimer une clé spécifique, définissez sa valeur sur
null. -
Détection des opérations sans effet. Si la mise à jour ne produit aucun changement par rapport à la version actuelle, aucune nouvelle version n'est créée et la version existante est renvoyée.
-
Les listes
predefined_agentsdes autres agents ne sont pas mises à jour. Les agents qui répertorient cet agent dans la listepredefined_agentsdesubagentsou deworkflowsconservent la version qui était épinglée lors de leur création ou lors de la dernière mise à jour ayant envoyé cette liste, même si la référence ometversion. Pour déléguer à la nouvelle version, mettez à jour l'agent qui la répertorie afin que la liste référence la nouvelle version.
La mise à jour suivante efface la description, supprime la clé team de metadata et définit workflows sur null, ce qui active les workflows dynamiques :
ant apply code-reviewer.md---
name: Code Reviewer
model: claude-opus-5-5
tools:
- type: agent_toolset_20260401
metadata:
owner: docs
multiagent:
type: multiagent_20261001
workflows: null
---
You are a helpful coding agent.Le fichier ne contient plus description ni la clé team, donc ant apply envoie null pour ceux-ci. Supprimer un paramètre à l'intérieur de multiagent conserve sa valeur stockée, c'est pourquoi le fichier définit workflows sur null.
Cycle de vie de l'agent
| Opération | Comportement |
|---|---|
| Mettre à jour | Génère une nouvelle version de l'agent lorsque la configuration change. |
| Lister les versions | Renvoie l'historique complet des versions afin que vous puissiez suivre les modifications au fil du temps. |
| Archiver | Rend l'agent en lecture seule. Les nouvelles sessions ne peuvent pas le référencer, mais les sessions existantes continuent de s'exécuter. |
Lister les versions
Récupérez l'historique complet des versions pour suivre l'évolution d'un agent au fil du temps. Les résultats sont paginés, et les exemples de SDK récupèrent automatiquement toutes les pages.
for version in client.beta.agents.versions.list(agent.id):
print(f"Version {version.version}: {version.updated_at.isoformat()}")Archiver un agent
L'archivage rend l'agent en lecture seule et ne peut pas être annulé. Les sessions existantes continuent de s'exécuter, mais les nouvelles sessions ne peuvent pas référencer l'agent. La réponse définit archived_at sur l'horodatage de l'archivage.
archived = client.beta.agents.archive(agent.id)
print(f"Archived at: {archived.archived_at.isoformat()}")Étapes suivantes
Configurez les outils disponibles pour votre agent.
Associez à votre agent une expertise réutilisable basée sur le système de fichiers pour des workflows spécifiques à un domaine.
Créez une session pour exécuter votre agent et commencer à exécuter des tâches.
Types d'événements, options de la CLI des workers auto-hébergés, types de serveurs MCP pris en charge, limites de débit et directives de marque pour Claude Managed Agents.
Was this page helpful?