Chargement

Outils intégrés

Leçon 76 min
Chargement

Outils intégrés

Vous pouvez créer vos propres outils personnalisés, mais certaines fonctionnalités sont suffisamment courantes pour qu'Anthropic les fournisse préconstruites. Vous n'écrivez pas le code. Vous n'hébergez pas le bac à sable. Vous déclarez simplement l'outil, et Anthropic l'exécute.

Outils serveur : déclarés par vous, exécutés par Anthropic

Anthropic fournit des outils serveur qui s'exécutent sur son infrastructure. Vous ne les exécutez pas vous-même — c'est Anthropic qui le fait. Cela signifie que vous n'avez pas besoin d'une boucle d'agent pour ces appels. Claude appelle les outils de lui-même, et le résultat revient dans la même réponse.

Les principaux sont :

  • Web search — recherche sur internet et renvoie des résultats avec des citations
  • Code execution — écrit et exécute du Python dans un bac à sable
  • Web fetch — récupère le contenu complet à partir d'URL

Deux outils serveur dans un seul fichier

Examinons certains des outils majeurs dans un seul fichier : deux appels messages.create, l'un avec la recherche web et l'autre avec l'exécution de code.

python
import anthropic

client = anthropic.Anthropic()

# Appel 1 : recherche web — Anthropic exécute la recherche côté serveur
search_response = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    tools=[{"type": "web_search_20260209", "name": "web_search"}],
    messages=[
        {"role": "user", "content": "What is Anthropic's latest model release? Answer in one sentence."}
    ],
)

for block in search_response.content:
    if block.type == "server_tool_use":
        print(f"Tool call: {block.name} — {block.input}")
    elif block.type == "text":
        print(block.text)

# Appel 2 : exécution de code — Claude écrit et exécute du Python dans un bac à sable
code_response = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    tools=[{"type": "code_execution_20260120", "name": "code_execution"}],
    messages=[
        {"role": "user", "content": "Calculate the mean and standard deviation of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"}
    ],
)

for block in code_response.content:
    if block.type == "server_tool_use":
        print(f"Tool call: {block.name} — {block.input}")
    elif block.type == "bash_code_execution_tool_result":
        print(f"stdout: {block.content.stdout}")
    elif block.type == "text":
        print(block.text)

Deux choses à remarquer :

  1. Il n'y a pas de boucle d'agent ici. Nous ne faisons pas de branchement sur stop_reason. Nous ne renvoyons pas les résultats d'outils. Anthropic exécute l'outil côté serveur, et la réponse contient déjà le résultat.
  2. La réponse comporte de nouveaux types de blocs. Un bloc server_tool_use pour l'appel d'outil, un bloc de résultat d'outil d'exécution de code pour la sortie, ainsi que les blocs text habituels.

Exécution

Pour la recherche web, vous verrez l'appel d'outil de Claude s'afficher, puis une réponse d'une phrase sur la dernière sortie de modèle, avec les citations de recherche intégrées.

Pour l'exécution de code, vous verrez le code Python réel écrit par Claude, la sortie standard (stdout) du bac à sable qui l'exécute, et une réponse textuelle finale.

Nous n'avons pas eu besoin de mettre en place un robot d'exploration de recherche. Nous n'avons pas exécuté de bac à sable Python. Nous avons déclaré deux outils et obtenu les deux gratuitement.

L'autre catégorie : les outils client

Il est utile de savoir que l'autre catégorie existe. Les outils client s'exécutent là où votre code s'exécute. Anthropic publie leurs schémas et entraîne Claude sur ceux-ci, de sorte que vous n'avez pas à définir le schéma vous-même. Deux exemples :

  • Memory — Claude lit et écrit en mémoire d'une session à l'autre
  • Bash — un shell bash persistant permettant à Claude d'exécuter des commandes

Le tableau des outils intégrés de la documentation Anthropic, avec memory et bash répertoriés comme outils client aux côtés d'outils serveur comme web fetch et code execution

Ils ont la même forme qu'un outil personnalisé, mais le schéma est intégré à Claude. C'est toujours votre code qui les exécute : pour memory, quatre des SDK fournissent un assistant qui gère les appels de mémoire de Claude vers le stockage que vous fournissez, et pour bash, votre application exécute elle-même le shell.

Pourquoi cela compte en production

Dans une application en production, c'est le chemin le plus court vers des fonctionnalités qui prendraient autrement des semaines. La recherche web peut alimenter un point de terminaison de vérification des faits qui valide chaque affirmation numérique et réglementaire d'un brouillon par rapport au web en direct.

Une application de révision de propositions utilisant la recherche web pour vérifier les affirmations réglementaires et numériques dans un brouillon de proposition

Un rappel, cependant : ce n'est pas parce que quelque chose est validé sur internet que c'est vrai. Vérifiez toujours le travail de Claude.

Récapitulatif

  • Les outils serveur — recherche web, exécution de code, récupération web — sont déclarés dans votre tableau tools. Anthropic les exécute.
  • Vous obtenez le résultat dans la même réponse, sans avoir besoin de boucle d'agent. Recherchez les blocs server_tool_use et les blocs de résultat d'outil aux côtés des blocs de texte habituels.
  • Les outils client comme memory et bash s'exécutent là où votre code s'exécute. Le schéma est intégré à Claude, quatre des SDK fournissent un assistant pour memory, et pour bash, votre code exécute le shell.
  • L'idée « hébergé par Anthropic » s'étend jusqu'au bout de l'échelle : les agents gérés l'appliquent à l'agent entier, pas seulement à un seul outil.