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
공격 시나리오 정의
탈옥·프롬프트 인젝션·데이터 유출 등 검증할 공격 시나리오를 구체화. RedTeamExperiment(experimental)가 파이프라인 골격을 제공.
2
적대적 Case 생성
AdversarialCaseGenerator가 Crescendo · GOAT · PAIR · BadLikertJudge · SequentialBreak 전략으로 적대적 입력을 자동 생성.
3
에이전트 실행
적대적 입력을 에이전트에 주입. Guardrails, System Prompt 방어, 도구 접근 제어가 정상 작동하는지 관찰.
4
사후 진단
detect_failures · analyze_root_cause · diagnose_session이 세션을 사후 분석. DiagnosisConfig(trigger=DiagnosisTrigger.ON_FAILURE, confidence_threshold=ConfidenceLevel.MEDIUM)로 실패 시 자동 진단.
5
취약점 리포트
공격 성공률, 방어 우회 패턴, 미감지 케이스를 리포트로 정리. 보안 패치 우선순위 결정에 활용.
takeaway
공격자보다 먼저 공격해 봅니다 — 취약점 리포트가 보안 패치의 우선순위 를 정합니다.
측정하지 않으면 개선할 수 없습니다.
Case · Experiment · Evaluator · Chaos — 에이전트 품질 보장의 4요소