
Pipeline de pesquisa que constrói experiências bem-sucedidas verificadas e as organiza em registros de formação para envenenar progressivamente as habilidades do modelo através dos estágios HTS, LEGSA e GCTIR.
O SkillPoison estuda como experiências bem-sucedidas e verificadas podem envenenar as habilidades persistentes aprendidas por agentes LLM que se autoaperfeiçoam. Ele combina Seleção Hierárquica de Tarefas, Atribuição Local Baseada em Evidências e Reforço Indutivo entre Experiências para reforçar comportamentos localmente válidos além de suas condições originais de aplicabilidade. As execuções originais das tarefas e os resultados de verificação permanecem inalterados; as evidências de atribuição são anexadas como metadados para a formação nativa de habilidades. Em três benchmarks, o artigo relata taxas de sucesso de ataque de até 95,71%.
skillpoison/
├── assets/
│ └── framework.png
├── configs/
│ └── main.yaml
├── core/
│ ├── ceir/
│ ├── evaluation/
│ ├── hts/
│ ├── lega/
│ ├── utils/
│ ├── config.py
│ └── pipeline.py
├── prompts/
│ ├── lega/
│ ├── counterfactual_audit.txt
│ ├── counterfactual_generation.txt
│ └── target_audit.txt
├── scripts/
│ ├── run_attack_audit.py
│ ├── run_evaluation.py
│ └── run_skillpoison.py
├── .env.example
├── .gitignore
├── LICENSE
├── README.md
└── requirements.txt
| Conjunto de Dados | Tarefas de Formação | Tarefas de Avaliação |
|---|---|---|
| HANS | 15 | 100 |
| PAWS | 15 | 210 |
| DS1000 | 15 | 100 |
O HANS usa um subconjunto de avaliação com heurística de subsequência; o PAWS usa um pool fixo de avaliação principal. A avaliação do DS1000 seleciona 100 tarefas Pandas que retornam DataFrame a partir de 191 tarefas elegíveis, após excluir os IDs das tarefas de formação. A amostragem é estratificada por tipo de perturbação com semente 42: Origin 32, Semantic 32, Difficult-Rewrite 27 e Surface 9. Os IDs das tarefas de formação e de avaliação não se sobrepõem dentro de cada conjunto de dados. Mantenha as instâncias de avaliação fixas entre as condições comparadas.
A configuração padrão usa deepseek-v4-flash, temperatura 0.3 e um orçamento de formação de 15 registros por condição.
cd skillpoison
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export MODEL_API_KEY="..."
export MODEL_BASE_URL="..."
export MODEL_NAME="..."
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input candidate_experiences.jsonl \
--out outputs/run
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input recorded_experiences.json \
--out outputs/replay \
--replay
python scripts/run_evaluation.py \
--attack attack_records.jsonl \
--out outputs/run/metrics.json
python scripts/run_attack_audit.py \
--input attack_records.jsonl \
--out outputs/run/attack_audit.jsonl