
¿Cuánto pueden revelar sobre ti las llamadas a herramientas? Fuga de privacidad en las trazas de llamadas a herramientas
PrivacyTrace estudia la inferencia de perfiles de usuario a partir de trazas de llamadas a herramientas MCP, sin acceso a las conversaciones del usuario. El benchmark contiene 1.000 perfiles de usuario sintéticos, 4.000 trayectorias de agentes y 25 servidores MCP en los ámbitos de viajes, salud, compras y aprendizaje profesional.
El entorno de referencia utiliza Python 3.10 en Linux:
git clone https://github.com/AI45Lab/PrivacyTrace.git
cd PrivacyTrace
PYTHON=python3.10 bash scripts/setup_environment.sh
source .venv/bin/activate
Para las llamadas a modelos, copie .env.example a .env y configure su endpoint y
claves de API. Para herramientas MCP en vivo, configure también .env.mcp a partir de .env.mcp.example
y ejecute python mcp_servers/install.py --install-dependencies.
Consulte environment setup para obtener detalles sobre las dependencias.
El conjunto de datos completo está alojado en Hugging Face. Solicite acceso en la página del conjunto de datos; las descargas requieren aprobación manual. Tras la aprobación:
hf auth login
python scripts/download_data.py
python -m eval.reproduce_results --input-root .
El último comando reconstruye las tablas de resultados y las figuras a partir de los registros de experimentos descargados, sin llamadas al modelo. Las salidas se escriben en artifacts/results/. Consulte acceso a datos para conocer el contenido del archivo y el artículo para los resultados reportados.
Ejecute las siguientes etapas con sus endpoints de modelo y servicios MCP configurados:
# 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
La guía de comandos cubre la puntuación, los experimentos de canales de observación y la inferencia entre dominios. Use --help en cada punto de entrada para consultar sus argumentos.
| Directorio | Contenido |
|---|---|
generate/ | Síntesis de perfiles, calibración de poblaciones y generación de escenarios |
agent/ | Simulador de usuario, agente MCP, recopilación y empaquetado de trayectorias |
attack/ | Inferencia de perfiles y experimentos de canal/alcance |
eval/ | Puntuación semántica, análisis de resultados y reproducción |
llm/ | Proveedores de modelos y clientes de solicitudes |
mcp_servers/ | Catálogo de servidores MCP, adaptadores y dependencias upstream |
config/ | Configuraciones de dominio, políticas y esquemas de herramientas |
data/ | Entradas de referencia estadística y objetivos de calibración |
examples/ | Registros de tareas de ejemplo pequeños |
scripts/ | Configuración del entorno y descarga de conjuntos de datos |
docs/ | Documentación de uso y método |
tests/ | Pruebas unitarias |
Consulte la ficha del conjunto de datos para la documentación de los datos. El sitio web del proyecto se mantiene en su propio repositorio.
Por especificar. Los componentes de terceros conservan sus licencias originales; consulte THIRD_PARTY_NOTICES.md.