Tool Use / Function Calling
iaDéfinition
Le Tool Use (utilisation d'outils) ou Function Calling est la capacite d'un LLM a identifier quand appeler une fonction ou un outil externe, a generer les arguments corrects pour cet appel, et a utiliser le resultat pour formuler sa reponse finale. C'est la fondation des agents IA qui peuvent interagir avec des APIs, des bases de donnees, des calculatrices, et tout systeme informatique externe. Le mecanisme : le developpeur fournie au LLM un schema JSON des outils disponibles (nom, description, parametres et types). Le LLM analyse la requete utilisateur, decide si un ou plusieurs outils doivent etre appeles, genere un objet JSON valide avec les arguments, et le systeme execute l'appel. Le resultat est retourne au LLM qui l'incorpore dans sa reponse. La specification des outils via JSON Schema est standardisee : chaque outil a un name (identifiant), description (explication pour le LLM, critique pour la qualite du routing), et parameters (schema JSON des arguments avec types, required, et descriptions). La qualite des descriptions determine directement la precision avec laquelle le LLM choisit et utilise les outils. Les frameworks Tool Use modernes : OpenAI API (tools parameter avec model='gpt-4o'), Anthropic API (tools parameter), Gemini API (function declarations), LangChain Tools, LlamaIndex Tools. Tous suivent une structure similaire mais avec des differences de format. Le standard MCP (Model Context Protocol) d'Anthropic vise a unifier les definitions d'outils entre providers. Les types d'outils courants : recherche web (Tavily, SerpAPI), calculatrice et interpréteur Python (code execution), base de donnees (SQL query), APIs REST (weather, finance, calendar), operations fichiers (read/write), et outils metier specialises (ERP, CRM). Les agents les plus capables combinent plusieurs types d'outils pour accomplir des workflows complexes.
Tool Use avec l'API Anthropic
import anthropic
client = anthropic.Anthropic()
tools = [{
'name': 'get_security_cve',
'description': 'Recuperer les details d une CVE depuis le NVD (NIST)',
'input_schema': {
'type': 'object',
'properties': {
'cve_id': {'type': 'string', 'description': 'ID de la CVE (ex: CVE-2024-12345)'},
'include_cvss': {'type': 'boolean', 'description': 'Inclure le score CVSS', 'default': True}
},
'required': ['cve_id']
}
}]
response = client.messages.create(
model='claude-3-5-sonnet-20241022', max_tokens=1024, tools=tools,
messages=[{'role': 'user', 'content': 'Quel est le score de CVE-2024-1234 ?'}]
)
# Si tool_use, extraire et executer l'outil
if response.stop_reason == 'tool_use':
tool_call = next(b for b in response.content if b.type == 'tool_use')
print(f'Appel: {tool_call.name}({tool_call.input})')
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h