2주차: HOTL 거버넌스와 Governance-as-Code
이론 (Theory)
HOTL 아키텍처의 핵심 원칙
HOTL 시스템에서 에이전트는 독립적으로 실행되지만, 엔지니어는 세 가지 메커니즘으로 통제권을 유지한다:
- Hard Interrupt: CUD(Create/Update/Delete) 작업에 강제 인간 승인
- Telemetry: 실시간 신뢰도 임계값 모니터링
- Audit Log: 모든 에이전트 행동의 불변 기록
EU AI Act 컴플라이언스
2026년 8월 EU AI Act 완전 적용 이후, 고위험 에이전틱 시스템은 의무적으로:
- 인간 감독 메커니즘 내장
- 감사 추적(Audit Trail) 유지
- 설명 가능성(Explainability) 보장
Governance-as-Code 패턴
# governance.py — 에이전트 행동 제약 시스템import loggingfrom enum import Enumfrom typing import Callable
class ActionRisk(Enum): LOW = "low" # 자율 실행 허용 MEDIUM = "medium" # 로그 기록 후 실행 HIGH = "high" # 인간 승인 필수 (Hard Interrupt)
def governance_check(action: str, risk: ActionRisk) -> bool: """모든 에이전트 행동은 이 함수를 통과해야 한다.""" log_action(action, risk)
if risk == ActionRisk.HIGH: return require_human_approval(action) # Hard Interrupt elif risk == ActionRisk.MEDIUM: alert_operator(action) return True return True
def log_action(action: str, risk: ActionRisk): """불변 감사 로그 기록""" logging.info(f"AGENT_ACTION | {action} | risk={risk.value}")실습 (Practicum)
첫 번째 에이전틱 루프 구현
-
프로젝트 초기화
Terminal window mkdir lab-02-agent && cd lab-02-agentpython -m venv venv && source venv/bin/activatepip install anthropic python-dotenv -
거버넌스 레이어 구현
governance.py파일을 생성하고 위의 코드를 기반으로 확장한다. -
에이전트 루프 작성
agent.py import anthropicfrom governance import governance_check, ActionRiskclient = anthropic.Anthropic()def run_agent(task: str):"""HOTL 거버넌스가 적용된 에이전트 루프"""response = client.messages.create(model="claude-opus-4-6",max_tokens=1024,messages=[{"role": "user", "content": task}])action = response.content[0].text# 모든 파일 수정은 HIGH riskif "write" in action.lower() or "delete" in action.lower():approved = governance_check(action, ActionRisk.HIGH)if not approved:print("Action blocked by governance layer.")returnexecute_action(action) -
테스트 실행
Terminal window python agent.py "현재 디렉토리의 Python 파일 목록을 보여줘"
과제 (Assignment)
Lab 02: 첫 번째 Claude Code 에이전트
제출 마감: 2026-03-18 23:59
제출 경로: assignments/week-02/[학번]/
요구사항:
- 거버넌스 레이어가 포함된 에이전트 구현
- 최소 3가지 ActionRisk 수준 처리
- 감사 로그 파일 생성 및 검증
README.md에 설계 결정 사항 문서화