사이버 조사 에이전트(Cyber Investigator Agent) 구축을 위해 도메인 전문가(Domain Expertise) 확보 및 '좋은 조사'의 기준을 명확히 정의함
초기 프로토타이핑 단계에서 Claude Code를 활용하여 에이전트의 코드 실행 능력(Coding Muscle)을 검증하고 핵심 설계 원칙을 수립함
Claude Agent SDK로 전환하여 메모리, 컨텍스트, 파일 시스템 제어를 강화하고, 자동화된 평가(Evals) 루프를 통해 개발 속도와 안정성을 확보함
에이전트의 프롬프트 인젝션(Prompt Injection) 방어를 위해 파일 시스템 및 bash 도구를 제공하고, 데이터 미저장 정책(Zero-Retention Policy)을 기반으로 보안 강화
Outtake는 Recon Agent 구축 시 오케스트레이션 레벨에서의 엄격한 제약(Tight Constraint)과 판단이 필요한 영역에서의 자유로운 즉흥성(Improvisation)을 결합하는 핵심 설계 원칙을 수립했습니다.
하네스(Harness) 기반 접근: 에이전트 루프, 세션 관리, 메모리, 컨텍스트, 파일 시스템 접근 등은 Claude Agent SDK를 통해 표준화하고, 에이전트 자체는 복잡한 조사 과정에서 자율적으로 도구를 선택하고 실행하도록 설계했습니다.
파일 시스템 및 Bash 제공: 에이전트가 네트워크 오류나 예상치 못한 장애물에 직면했을 때, 파일 시스템을 통해 상태를 유지하고 우회 경로를 탐색할 수 있도록 지원합니다. 이는 데이터 격리 아키텍처(Data Isolation Architecture)를 강화하는 동시에 에이전트의 복원력을 높입니다.
이러한 접근 방식은 에이전트가 예측 불가능한 사이버 환경에서도 안정적으로 목표를 달성하도록 돕습니다.
초기 프로토타이핑 단계에서 Claude Code는 에이전트의 코드 실행 능력(Coding Muscle)을 검증하고 핵심 아이디어를 빠르게 실험하는 데 유용했습니다. 하지만 프로덕션 환경으로 나아가기 위해서는 더 낮은 수준의 제어가 필요했습니다.
저수준 원시 기능 접근: Claude Agent SDK는 메모리, 컨텍스트, 파일 시스템에 대한 더 세밀한 제어를 가능하게 하여, 에이전트의 동작을 더욱 정교하게 조정할 수 있게 합니다.
기존 패턴 활용: Claude Code에서 검증된 에이전트 루프 및 세션 처리 패턴을 그대로 계승함으로써, 개발팀은 새로운 기반을 재구축할 필요 없이 기존의 속도를 유지하면서 SDK로 전환할 수 있었습니다.
이러한 점진적인 전환은 개발 속도(Development Velocity)를 유지하면서도 에이전트의 성능과 안정성을 향상시키는 효과를 가져왔습니다.
사이버 보안 분야는 공격자의 빠른 적응 때문에 빠른 반복 개발 주기(Rapid Iteration Cycle)가 필수적입니다. Outtake 팀은 초기부터 자동화된 평가(Evals) 시스템을 구축하여 이를 달성했습니다.
수동 검토에서 자동화로: 초기에는 30분 분량의 에이전트 실행 기록을 수동으로 검토했지만, 이는 확장 불가능했습니다. 이를 구조화되고 자동화 가능한 평가 체크리스트로 전환하여 개발 속도를 크게 향상시켰습니다.
안정성 및 속도 향상: 강력한 평가 스위트는 모델 업그레이드나 메모리 시스템 리팩토링과 같은 대규모 변경을 안전하고 자신 있게 수행할 수 있도록 지원합니다. 이는 에이전트의 신뢰성(Reliability)을 보장하는 동시에, 개발팀이 에이전트 루프에서 벗어나 더 높은 수준의 작업에 집중할 수 있게 합니다.
결과적으로, 완벽하지 않더라도 초기 단계부터 평가 시스템을 구축하는 것이 에이전트 개발 속도를 높이는 핵심 요소임을 입증했습니다.
사이버 조사 에이전트(Cyber Investigator Agent)는 악의적인 환경에 노출될 수 있으므로 프롬프트 인젝션(Prompt Injection) 공격에 대한 방어가 필수적입니다. Outtake 팀은 이를 위해 데이터 미저장 정책(Zero-Retention Policy) 기반의 보안 아키텍처를 설계했습니다.
'블래스트박스(Blastbox)' 접근 방식: 에이전트가 민감한 내부 정보에 접근하는 것을 방지하면서도 기능 수행에는 제약을 주지 않는 격리된 환경을 구축했습니다. 여기에는 파일 시스템과 Bash 셸 접근 권한이 포함됩니다.
인터넷 접근 시 검증: 에이전트가 외부 인터넷에 접근하기 직전에 페이지가 피싱인지, 악성코드인지, 프롬프트 인젝션을 시도하는지 등을 평가하는 체크포인트를 구현했습니다. 이는 에이전트가 점점 더 적대적으로 변하는 인터넷 환경을 탐색할 때 필요한 '갑옷' 역할을 합니다.
이러한 보안 조치는 에이전트가 잠재적으로 탈취되더라도 피해를 최소화하고 시스템의 전반적인 보안 태세를 강화하는 데 기여합니다.
성공적인 장기 실행 에이전트(Long-Running Agent) 구축의 핵심은 '무엇이 좋은 조사인가'에 대한 명확한 정의에서 시작됩니다. Outtake 팀은 엔지니어링 리드인 Jack Hayford의 말처럼, 에이전트가 매번 동일한 수준의 결과를 내도록 하기 위해 이 기준을 고정된 참조점으로 삼았습니다.
도메인 전문가 역할 수행: 에이전트 개발 전에 팀 스스로 실제 사이버 조사를 수행하고, 고객 및 디자인 파트너로부터 도메인 전문 지식을 습득했습니다. 이를 통해 어떤 증거가 중요하고, 어떻게 구성하며, 추측과 실행 가능한 결론을 구분하는지에 대한 기준을 세웠습니다.
프롬프트는 제안일 뿐: 복잡한 에이전트에서는 시스템 프롬프트의 지시가 무시될 수 있으므로, '항상 수행해야 하는 것'은 프롬프트에서 분리하여 에이전트의 가드레일(Guardrails) 또는 하네스(Harness)의 일부로 만들어야 합니다. 이는 에이전트가 핵심 판단 영역에 더 많은 주의와 컨텍스트 공간을 할애하도록 돕습니다.
결론적으로, 에이전트의 성능과 안정성은 개발 초기 단계에서 정의된 '좋은 결과'에 대한 명확한 이해에 크게 좌우됩니다.