
Combien les appels d'outils peuvent-ils révéler sur vous ? Fuite de confidentialité via les traces d'appels d'outils
PrivacyTrace étudie l'inférence de profils utilisateurs à partir de traces d'appels d'outils MCP, sans accès aux conversations des utilisateurs. Le benchmark contient 1 000 profils utilisateurs synthétiques, 4 000 trajectoires d'agents et 25 serveurs MCP couvrant le voyage, la santé, les achats et l'apprentissage professionnel.
L'environnement de référence utilise Python 3.10 sous Linux :
git clone https://github.com/AI45Lab/PrivacyTrace.git
cd PrivacyTrace
PYTHON=python3.10 bash scripts/setup_environment.sh
source .venv/bin/activate
Pour les appels de modèles, copiez .env.example vers .env et configurez votre point de terminaison et
vos clés API. Pour les outils MCP en direct, configurez également .env.mcp à partir de .env.mcp.example
et exécutez python mcp_servers/install.py --install-dependencies.
Consultez environment setup pour les détails des dépendances.
Le jeu de données complet est hébergé sur Hugging Face. Demandez l'accès sur la page du jeu de données ; les téléchargements nécessitent une approbation manuelle. Après approbation :
hf auth login
python scripts/download_data.py
python -m eval.reproduce_results --input-root .
La dernière commande reconstruit les tableaux de résultats et les figures à partir des enregistrements d'expériences téléchargés, sans appels au modèle. Les sorties sont écrites dans artifacts/results/. Consultez data access pour le contenu de l'archive et the paper pour les résultats rapportés.
Exécutez les étapes suivantes avec vos points de terminaison de modèle et services MCP configurés :
# 1. Generate population-calibrated profiles.
python -m generate.generate_profiles --count 1000
# 2. Generate task scenarios in four domains.
python -m generate.generate_scenarios \
--n 1000 \
--input artifacts/profile_runs/latest/profiles.jsonl \
--output artifacts/scenario/cases.jsonl
# 3. Collect and package agent trajectories.
python -m agent.run_scenarios \
--profiles artifacts/profile_runs/latest/profiles.jsonl \
--scenarios artifacts/scenario/cases.jsonl \
--domains travel health shopping career_learning
python -m agent.package_trajectories --source-dir artifacts/trajectory_runs/latest
# 4. Infer user profiles from the traces.
python -m attack.run_attacks \
--input artifacts/trajectories/trajectories.jsonl \
--output-dir artifacts/privacy_attacks/run \
--attack-mode two_stage
Le guide des commandes couvre la notation, les expériences sur les canaux d'observation et l'inférence inter-domaines. Utilisez --help sur chaque point d'entrée pour connaître ses arguments.
| Répertoire | Contenu |
|---|---|
generate/ | Synthèse de profils, calibration de population et génération de scénarios |
agent/ | Simulateur d'utilisateur, agent MCP, collecte et empaquetage de trajectoires |
attack/ | Inférence de profils et expériences sur les canaux et la portée |
eval/ | Notation sémantique, analyse des résultats et reproduction |
llm/ | Fournisseurs de modèles et clients de requêtes |
mcp_servers/ | Catalogue de serveurs MCP, adaptateurs et dépendances amont |
config/ | Paramètres de domaine, politiques et schémas d'outils |
data/ | Entrées de référence statistiques et cibles de calibration |
examples/ | Petits enregistrements de tâches d'exemple |
scripts/ | Configuration de l'environnement et téléchargement des jeux de données |
docs/ | Documentation d'utilisation et de méthode |
tests/ | Tests unitaires |
Consultez la fiche du jeu de données pour la documentation des données. Le site web du projet est maintenu dans son propre dépôt.
À préciser. Les composants tiers conservent leurs licences d'origine ; voir THIRD_PARTY_NOTICES.md.