Home / Strands 테스팅과 평가 / Chaos & Red Team
Note

Chaos & Red Team

ChaosPlugin, Detectors, Red Teaming 5가지 전략

⏱ 45분 152 / 189

Chaos Testing과 복원력 검증

ChaosPlugin, Detectors, Red Teaming 5가지 전략

에이전트 품질을 코드로 보장한다

테스트·평가·카오스 엔지니어링으로 에이전트 신뢰성 확보

Chaos와 Red Team

ChaosExperiment · 자동 진단 · Red Team 전략

PART 4 · Chaos와 Red Team

Chaos와 Red Team

장애를 주입해 복원력을, 적대적 입력을 주입해 방어력을 사전 검증

Chaos · Red Team

ChaosExperiment가 도구 실패·지연·에러를 주입하고, RedTeamExperiment가 적대적 전략으로 방어력을 시험합니다.

  • ChaosCase effects — 도구 실패·지연·에러 주입
  • 5가지 Chaos 전략 — 복원력 검증
  • detect_failures · diagnose_session — 사후 진단
  • RedTeamExperiment — Crescendo · GOAT · PAIR
takeaway

프로덕션이 첫 실전이 되지 않게 — 장애도 공격도 배포 전에 미리 겪어보게 합니다.

PART 4 · Chaos와 Red Team

5가지 Chaos 전략

에이전트의 복원력을 체계적으로 검증하는 장애 주입 패턴

Tool Failure

도구 호출 시 랜덤 에러 반환 — 재시도·폴백 로직 검증

Latency Injection

도구 응답에 인위적 지연 추가 — 타임아웃 처리 검증

Malformed Response

도구가 예상치 못한 형식의 응답 반환 — 파싱 내성 검증

Model Degradation

모델 품질 저하 시뮬레이션 — 할루시네이션 증가 환경 테스트

Resource Exhaustion

토큰 한도·메모리 제한 도달 시 동작 검증

takeaway

장애는 언젠가 반드시 일어납니다 — 미리 주입해서 복원 행동을 검증하는 것이 Chaos 전략입니다.

PART 4 · Chaos와 Red Team

ChaosExperiment 적용

에이전트에 Chaos 주입을 설정하는 코드 패턴

핵심 포인트

ChaosCase(effects=)
tool_effects로 도구별 장애 효과 지정 — 툴당 케이스별 효과 1개
Timeout · NetworkError · TruncateFields
strands_evals.chaos.effects가 제공하는 장애 효과
ChaosPlugin()
파라미터 없이 Agent의 plugins로 주입
ChaosExperiment
장애 환경에서 Case 일괄 실행 — 에이전트의 복원 행동 관찰

코드

python
from strands import Agent
from strands_evals.chaos import ChaosCase, ChaosExperiment, ChaosPlugin
from strands_evals.chaos import Timeout, NetworkError

chaos_case = ChaosCase(
    name="weather-under-failure",
    input="서울 날씨를 알려줘",
    # 툴당 케이스별 효과 1개 제한 — 도구별로 타깃을 나눠 주입
    effects={"tool_effects": {
        "get_weather": [Timeout()],
        "http_request": [NetworkError()],
    }},
)

agent = Agent(
    model="us.anthropic.claude-sonnet-4-6",
    tools=[http_request, get_weather],
    plugins=[ChaosPlugin()],
)

results = ChaosExperiment(cases=[chaos_case]).run_evaluations()
PART 4 · Chaos와 Red Team

Red Team 파이프라인

적대적 입력으로 에이전트 방어력을 사전 검증하는 5단계 프로세스

  1. 1
    공격 시나리오 정의

    탈옥·프롬프트 인젝션·데이터 유출 등 검증할 공격 시나리오를 구체화. RedTeamExperiment(experimental)가 파이프라인 골격을 제공.

  2. 2
    적대적 Case 생성

    AdversarialCaseGenerator가 Crescendo · GOAT · PAIR · BadLikertJudge · SequentialBreak 전략으로 적대적 입력을 자동 생성.

  3. 3
    에이전트 실행

    적대적 입력을 에이전트에 주입. Guardrails, System Prompt 방어, 도구 접근 제어가 정상 작동하는지 관찰.

  4. 4
    사후 진단

    detect_failures · analyze_root_cause · diagnose_session이 세션을 사후 분석. DiagnosisConfig(trigger=DiagnosisTrigger.ON_FAILURE, confidence_threshold=ConfidenceLevel.MEDIUM)로 실패 시 자동 진단.

  5. 5
    취약점 리포트

    공격 성공률, 방어 우회 패턴, 미감지 케이스를 리포트로 정리. 보안 패치 우선순위 결정에 활용.

takeaway

공격자보다 먼저 공격해 봅니다 — 취약점 리포트가 보안 패치의 우선순위를 정합니다.

측정하지 않으면 개선할 수 없습니다.

Case · Experiment · Evaluator · Chaos — 에이전트 품질 보장의 4요소