> ## Documentation Index
> Fetch the complete documentation index at: https://docs.responsibleailabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent : Analyse des résultats d'outils

> POST /railscore/v1/agent/tool-result - Analyser la sortie d'un outil pour détecter les PII et les injections avant de la transmettre à l'agent.

<Info>
  **Concept :** [Évaluation des agents](/concepts/agent-evaluation) | **Python :** [`client.agent.scan_tool_result()`](/sdk/python/agent-evaluation)
</Info>

## Paramètres

<ParamField body="tool_name" type="string" required>
  Nom de l'outil ayant produit ce résultat.
</ParamField>

<ParamField body="tool_result" type="object" required>
  La sortie de l'outil, sous forme d'objet. Fournir le texte sous `raw` (chaîne) et/ou la sortie structurée sous `data` (quelconque). `format` optionnel (chaîne, défaut `"text"`). Au moins l'un de `raw`/`data` doit être présent.
</ParamField>

<ParamField body="tool_params" type="object">
  Les paramètres avec lesquels l'outil a été appelé, s'ils sont disponibles.
</ParamField>

<ParamField body="agent_context" type="object">
  Rôle et tâche actuelle de l'agent. Objet avec champs optionnels : `goal` (chaîne), `prior_tool_calls` (tableau), `agent_id` (chaîne), `turn_index` (entier).
</ParamField>

<ParamField body="checks" type="string[]">
  Vérifications à exécuter. N'importe lequel de `"pii"`, `"prompt_injection"`, `"rail_score"`. Par défaut, tous les trois. Le coût en crédits s'adapte au nombre de vérifications (3 = 1.0, 2 = 0.75, 1 = 0.5).
</ParamField>

## Requête

```bash theme={null}
curl -X POST https://api.responsibleailabs.ai/railscore/v1/agent/tool-result \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_RAIL_API_KEY" \
  -d '{
    "tool_name": "search_database",
    "tool_result": {"raw": "Customer John Smith (SSN: 123-45-6789) called on 2026-03-15."},
    "checks": ["pii", "prompt_injection"]
  }'
```

## Réponse

```json theme={null}
{
  "event_id": "evt_1a2b3c4d",
  "risk_level": "medium",
  "recommended_action": "REDACT_AND_PASS",
  "pii_detected": {
    "found": true,
    "entities": [
      {"type": "full_name", "value": "John Smith", "offset": 9, "should_redact": true},
      {"type": "ssn", "value": "123-45-6789", "offset": 26, "should_redact": true}
    ],
    "redacted_result": "Customer [FULL_NAME] (SSN: [SSN]) called on 2026-03-15.",
    "compliance_flags": ["gdpr_personal_data", "hipaa_phi"]
  },
  "redacted_available": true,
  "prompt_injection": {"detected": false, "confidence": 0.02},
  "context_signals": {"pii_fields_detected": ["full_name", "ssn"]},
  "credits_consumed": 0.75,
  "evaluated_at": "2026-06-25T10:00:00Z"
}
```

<ResponseField name="risk_level" type="string">
  Risque global : `"low"`, `"medium"`, `"high"`, ou `"critical"`.
</ResponseField>

<ResponseField name="recommended_action" type="string">
  Action suggérée : `"PASS"`, `"FLAG"`, `"REDACT_AND_PASS"`, `"REDACT_AND_FLAG"`, ou `"DISCARD_AND_ALERT"`.
</ResponseField>

<ResponseField name="pii_detected" type="object">
  Présent lorsque la vérification `pii` s'exécute. Contient `found` (booléen), `entities` (tableau de `{type, value, offset, should_redact}`), `redacted_result` (chaîne avec PII remplacés par des espaces réservés `[TYPE]`), et `compliance_flags` (string\[]).
</ResponseField>

<ResponseField name="dpdp_flags" type="object">
  Présent quand des données personnelles indiennes (p. ex. Aadhaar, PAN) sont détectées. Indique l'exposition DPDP et les garanties recommandées de la Règle 6. Les identifiants indiens détectés sont également masqués dans `pii_detected.redacted_result`.
</ResponseField>

<ResponseField name="prompt_injection" type="object">
  Présent lorsque la vérification `prompt_injection` s'exécute. Contient `detected` (booléen) et `confidence` (0-1).
</ResponseField>
