MAINT Extract attack factory adversarial configuration assembly
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Wait for prerequisite #2494 to settle, then read pyrit/scenario/core/attack_technique_factory.py, especially create() and _build_adversarial_config(), alongside tests/unit/scenario/core/test_attack_technique_factory.py. Follow doc/code/framework.md and the scenario, Python, and test instructions. Done means the helper is used by the factory while preserving the documented configuration, prompt, conflict, and repeated-creation behavior.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Is your feature request related to a problem? Please describe.
AttackTechniqueFactory.create() and _build_adversarial_config() combine adversarial target selection, prompt resolution, conflicting-override checks, and attack construction. These are configuration rules that can be isolated without changing the attack algorithm or the factory's public interface.
This is F2 of three small factory extractions. Not ready yet: #2494 is actively changing this exact path to add benchmark-owned prompt guidance. Wait until that PR lands or its design is otherwise resolved, then reassess the extraction against the resulting mainline code before adding help wanted. Do not implement a competing version of its prompt behavior.
Describe the solution you'd like
After the prerequisite is resolved, extract adversarial configuration assembly into a small private helper at the technique layer and wire it into the factory. Preserve the resulting mainline behavior rather than restoring the pre-#2494 implementation.
- Keep target precedence and the distinction between baked-in configuration, create-time inputs, and defaults explicit.
- Preserve conflicts and conditional construction: do not silently override a baked-in custom target or prompt, or create adversarial configuration for an incompatible attack.
- Keep system-prompt and seed-prompt assembly together with their validation. Reuse existing prompt/model helpers rather than duplicating them.
- If #2494 lands, preserve its final guidance-prefix, simulated-conversation, prompt-metadata, and identity behavior as part of the extraction.
Acceptance criteria:
- Default, baked-in, and create-time configurations produce the same target and prompts, with unchanged errors for conflicting inputs.
- Supported string and
SeedPromptinputs retain their existing handling. - The public factory API and registered techniques keep their behavior; no global factory or canonical prompt is mutated by creating a specialized attack instance.
- Any merged #2494 guidance composition retains native prompt parameters/schema/format and the intended component identity.
- Factory and affected prompt/configuration coverage protects the full override matrix and repeated creation with different inputs.
- The helper is used by the existing factory path, not left as unused scaffolding.
Describe alternatives you've considered, if relevant
Do not move packaging rules into executors or move attack turn management, pruning, backtracking, or scoring decisions into the factory. Do not combine this with a broad cleanup of defaults in older executors. Constructor compatibility and converter composition are separate, independently scoped extractions.
Additional context
Starting points: pyrit/scenario/core/attack_technique_factory.py, particularly create() and _build_adversarial_config(), and tests/unit/scenario/core/test_attack_technique_factory.py. Follow doc/code/framework.md and the scenario, Python, and test instructions.
Readiness prerequisite: #2494. Its current changes also touch per-instance seed-technique prefix composition, so confirm the final boundary after it settles. This issue is a behavior-preserving reorganization, not authorization for new prompt semantics or a public API redesign.
- Ngôn ngữ chính
- Python
- Star
- 4.5k
- Fork
- 896
- Merge trung bình
- 2 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 206
Chuẩn bị môi trường
Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/PyRIT
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
microsoft/PyRIT#2888 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 91/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Bug: triage GUI help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
microsoft/PyRIT#2868 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của microsoft/PyRIT
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-2 ngày Mức phù hợp với người mới 70/100
-
FingerprintSplitter raises ZeroDivisionError when int(frac_train * len(dataset)) floors to zeroĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 7 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
lmstudio-ai/mlx-engine#376 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
pyiron/bagofholding#166 ·