
에이전틱 시스템 위생(Agentic System Hygiene) — 고난을 통해 배우는 것들
요약
자율 에이전트 시스템 운영 시 발생하는 통제 불능 상태와 주요 함정들을 실제 프로젝트 사례를 통해 분석합니다. 에이전트의 과도한 병렬 작업으로 인한 충돌 문제와 메모리 지속성이 변화에 저항하는 현상을 다룹니다.
핵심 포인트
- 통제되지 않은 병렬 작업은 병합 시점에 심각한 충돌을 야기함
- 에이전트의 작업 속도와 프로젝트 분기 속도 사이의 균형이 중요함
- 지속적 메모리는 에이전트의 학습을 돕지만 변화에 대한 저항을 만듦
- 에이전트 시스템 설계 시 사후 관리를 위한 위생(Hygiene) 요소 고려 필요
에이전틱 시스템(Agentic systems)에는 서서히 다가오는 특성이 있습니다. 바로 쉽게 통제 불능 상태로 나선다는 점이며, 그 피해는 갑작스럽게 드러나기 전까지는 종종 보이지 않습니다. 자율 에이전트(autonomous agents)를 병렬로 실행하는 프로젝트를 몇 달간 운영한 결과, 세 가지 반복되는 패턴을 확인했습니다. 이 중 어느 것도 사전에 명확히 알 수 없었지만, 사후에는 모두 명확해졌습니다.
이 글은 세 가지 실제 프로젝트를 바탕으로 합니다: 사회적 및 환경적 대안을 다루는 건설적 저널리즘 미디어 매체인 Bloomii, 프랑스 건설 계약업체를 위한 규제 관련 B2B SaaS인 Kalceo, 그리고 이 기사의 배경이 되는 에이전트 군단(agent-fleet) R&D 프로젝트인 Ekioo입니다. 세 프로젝트 모두 AI 에이전트를 위한 칸반 오케스트레이터(kanban orchestrator)인 KittyClaw에서 실행됩니다.
함정 1 — 통제되지 않은 병렬성 (Uncontrolled Parallelism)
유혹은 실재합니다. 에이전트가 하나의 작업을 처리하고 있다면, 왜 또 다른 작업을 시작하지 않을까요? 그리고 또 그다음 작업도 말이죠. 에이전트는 지치지 않고, 회의를 기다리지도 않으며, 겉으로 보이는 마찰 없이 작업합니다.
문제는 병합(merge) 시점에 나타납니다.
각 에이전트는 파일을 수정하며, 때로는 동일한 파일을 수정하기도 합니다. 각 워크트리(worktree)는 각자의 속도로 트렁크(trunk)에서 벗어납니다. 모든 것을 다시 마스터(master)로 통합해야 할 때가 오면 충돌(conflicts)이 쌓입니다. 어떤 변경 사항들은 서로 모순됩니다. 예를 들어, 한 에이전트가 구조를 변경한 부분을 다른 에이전트는 온전한 상태라고 가정하고 작업한 경우입니다.
저는 KittyClaw를 통해 두 가지 접근 방식을 테스트했습니다: 모든 개발을 메인(main)에서 직접 수행하거나, 티켓당 하나의 워크트리를 사용하는 방식입니다. 둘 다 완벽하지는 않습니다. 첫 번째 방식은 실시간 간섭을 일으킵니다. 두 번째 방식은 문제를 병합 시점으로 미룹니다.
교훈: 단일 프로젝트에서는 너무 빠르게 진행하지 마세요. 다른 작업을 시작하기 전에 각 개발 사항이 실제 사용을 통해 평가될 시간을 주어야 합니다. 프로젝트가 너무 많이 분기(diverged)되면, 통제권을 다시 가져오는 비용이 깨끗한 베이스에서 다시 시작하는 비용보다 더 많이 듭니다.
함정 2 — 피벗(Pivots)에 저항하는 메모리
지속적인 메모리(persistent memory)를 가진 멀티 에이전트 시스템(Multi-agent systems)은 눈에 띄는 장점이 있습니다. 에이전트가 실행을 거듭하며 학습하고 개선된다는 점입니다. 하지만 이들은 대칭적인 단점도 가지고 있습니다. 바로 변화에 저항한다는 것입니다.
어떤 프로세스가 기술(skill) 및 메모리 파일에 깊게 내재되어 있을 때, 단순히 그것을 바꾸는 것만으로는 충분하지 않습니다. 오래된 동작이 계속해서 표면 위로 떠오릅니다. 에이전트는 새로운 지침을 읽으면서 동시에 오래된 기억도 읽게 되며, 결국 두 개의 모순된 멘탈 모델(mental models)을 갖게 됩니다. 때로는 잘못된 모델을 선택하기도 하고, 때로는 두 모델을 화해시키려다 일관성 없는 결과물을 만들어내기도 합니다.
실질적인 결과는 다음과 같습니다: 코드 내의 혼재된 컨벤션(conventions), 상태가 불분명한 스크립트, 프로세스 업데이트 이후 발생하는 퇴행적 동작(regressive behavior). 엔트로피(Entropy)가 조용히 축적됩니다.
해결책은 메모리와 기술 파일을 소스 코드와 동일한 엄격함으로 다루는 것입니다. 쓸모없어진 것은 적극적으로 삭제하십시오. 축적하지 마십시오. 프로세스 변경 사항을 날짜 및 설명과 함께 명확하게 버전 관리(versioning)하여, 에이전트가 이전 경로가 폐쇄되었음을 이해할 수 있도록 해야 합니다.
함정 3 — 눈을 가리고 비행하기 (Flying Blind)
다중 프로젝트 관리의 인지적 비용은 실재하며, 이는 계측(instrumentation) 문제로 인해 더욱 심화됩니다.
AI는 인간이 따라갈 수 있는 속도보다 더 빠르게 결과물을 만들어냅니다. 여러 에이전트가 여러 프로젝트에 걸쳐 병렬로 작업할 때, 시스템의 실제 상태는 빠르게 불투명해집니다. 실제로 진행 중인 것은 무엇인가? 결정(decision)을 기다리며 차단(blocked)된 것은 무엇인가? 아직 검토되지 않은 오픈 브랜치(open branches)는 무엇인가? 이러한 질문에 대한 명확한 답변이 없다면, 감독은 선제적(proactive)이기보다는 사후 대응적(reactive)이 됩니다. 즉, 문제를 무시하기에는 이미 비용이 너무 많이 발생한 시점에 문제가 표면화됩니다.
해결책은 에이전트의 속도를 늦추는 것이 아닙니다. 스스로에게 항해 계측 장비(navigation instruments)를 갖추어 주는 것입니다.
각 프로젝트의 집계된 뷰(aggregated view)를 제공하는 대시보드 (Dashboards): 진행 중인 티켓, 차단된 티켓, 검토 중인 티켓, 주간 진행률 등. 우선순위를 설정하고 에이전트가 계획되지 않은 영역으로 표류하는 것을 방지하는 로드맵 (roadmap). 이상 징후를 알리는 지표 (Metrics): 너무 오래 진행 중 상태로 머물러 있는 티켓, 움직임이 멈춘 프로젝트, 동일한 작업 유형에 집중된 차단 요소(blockers) 등.
KittyClaw는 이를 기본적으로 제공합니다: 프로젝트별 보드, 다중 프로젝트 개요, 모든 에이전트 작업의 완전한 추적성(traceability). 이러한 계측 장비를 갖추고 조종하는 것과 그렇지 않은 것의 차이는 계기 비행(instrument flight)과 시계 비행(flying by sight)의 차이와 같습니다.
이것이 실무에서 바꾸는 것
이 세 가지 함정은 공통된 구조를 공유합니다. 즉, 에이전틱 시스템(agentic system)이 이를 둘러싼 거버넌스 인프라(governance infrastructure)보다 더 빠르게 진화할 때 나타납니다. 조정 없는 병렬성(Parallelism), 정리 없는 메모리(memory), 가시성 없는 프로덕션(production) — 이는 세 가지 다른 형태를 띤 동일한 문제입니다.
에이전틱 시스템에서의 위생(Hygiene)이란 시스템을 통제 하에 두기 위한 규칙과 계측 장비를 조기에 정의하는 것입니다. 피해가 눈에 보인 후가 아니라, 에이전트의 속도가 인간의 감독 능력을 초과하기 전에 이루어져야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기