Devlog — Bloomii 기사 40개 달성: 완전 자율 콘텐츠 파이프라인을 운영하며 배운 점
요약
자율 AI 에이전트 함대를 활용하여 40개의 기사를 생성하는 엔드 투 엔드 콘텐츠 파이프라인 구축 사례를 공유합니다. QA, 팩트 체크, 커미터로 구성된 에이전트 워크플로우의 성과와 병목 현상을 분석합니다.
핵심 포인트
- QA-수정-검증 루프를 통해 약 75%의 높은 1차 통과율 달성
- 팩트 체커 도입을 통해 환각 현상 및 잘못된 출처 인용 문제 해결
- 프롬프트 제어를 통해 주제 간 균형(thematic drift 방지) 유지
- 이미지 생성 API 할당량 제한이 전체 파이프라인의 병목 구간으로 작용
Bloomii가 방금 40개의 게시된 기사를 달성했습니다. 5개의 기둥(pillars) 각각 8개씩의 기사가 자율 에이전트(autonomous agents) 파이프라인에 의해 엔드 투 엔드(end-to-end)로 생성되었습니다. 이는 프로젝트를 시작할 때 제가 목표로 설정했던 이정표이며, 예상보다 한 달 앞서 달성했습니다.
이 개발 로그(devlog)는 보도 자료가 아닙니다. 이 파이프라인을 가동한 이후 어떤 일이 일어났는지에 대해 제가 쓸 수 있는 가장 솔직한 회고록입니다.
이 글은 Ekioo 에이전트 함대(agent-fleet) R&D 프로젝트 중 하나인 Bloomii를 기록합니다. Kalceo (건설 계약업체를 위한 규제 준수 B2B SaaS) 및 KittyClaw (모든 에이전트를 실행하는 칸반 오케스트레이터)와 함께, Ekioo는 자율 AI 에이전트 함대가 프로덕션 환경에서 어떻게 작동하는지를 기록합니다.
파이프라인 요약
Bloomii의 생산 체인은 다음과 같습니다: content-creator 에이전트가 기사를 작성하고, qa-tester가 루브릭(rubric, 편집 품질, 구조, 어조)에 따라 이를 평가하며, fact-checker가 모든 사실 관계를 검증한 후, lain이 검증을 마치면 committer가 콘텐츠를 프로덕션에 푸시(push)합니다. 5개의 연결 고리가 있으며, 무언가 고장 나지 않는 한 각 단계 사이에 인간의 개입은 전혀 없습니다.
효과적인 부분
QA → 수정(correction) → 검증(validation) 루프가 잘 작동합니다. 1차 통과율은 약 75% 수준입니다. 즉, 네 개의 기사 중 세 개는 큰 재작성 없이 QA를 통과합니다. 나머지 25%의 경우, 재작성 주기가 짧게 유지되어 보통 한 번의 추가 패스(pass)만으로 충분합니다. 최종 품질은 높으며 각 기둥(pillars) 전반에 걸쳐 일관적입니다.
팩트 체커(fact-checker)는 이 프로젝트에서 가장 훌륭한 아키텍처적 결정입니다. 초기 버전의 content-creator는 존재하지 않는 DOI, 잘못 인용된 연구, 대략적인 날짜 등 완벽한 확신을 가지고 출처를 지어내곤 했습니다. 팩트 체커가 필수적이고 차단(blocking) 단계가 된 이후로, 이러한 오류들은 발행 전에 사라집니다. 이것은 선택적인 안전장치가 아니라 파이프라인의 제약 조건(constraint)입니다. 이제 출력되는 출처의 품질은 검증 가능합니다.
다섯 가지 기둥(pillars) 사이의 균형이 예상보다 더 잘 유지됩니다. 생태계 및 재생(Ecology & Regeneration), 경제 및 공유지(Economy & Commons), 공생(Living Together), 웰빙 및 건강(Well-being & Health), 윤리적 기술(Ethical Technology) — 각 기둥당 8개의 기사로, 주제의 이탈(thematic drift)이 없습니다. 이는 사소한 일이 아닙니다. content-creator 프롬프트에 명시적인 편집 규율(editorial discipline)이 없다면, 파이프라인은 자연스럽게 가장 많이 문서화된 주제들을 과잉 대표(over-represent)하게 될 것입니다.
무엇이 무너지는가
ChatGPT 이미지 할당량(하루 25개)이 시스템적 병목 현상(bottleneck)이 되었습니다. 제가 다섯 개의 프로젝트를 병렬로 관리하기 때문에 여러 기사가 동시에 파이프라인에 들어가는 경우가 빈번한데, 이때 이미지 요청이 쌓여 서로를 차단합니다. 텍스트 작업이 완료된 기사가 일러스트레이션을 기다리며 24~48시간 동안 방치될 수 있습니다. 이것은 버그가 아니라 한 달 동안 이미지 비용을 분산시키기 위한 의도적인 조절(throttle)이지만, 발행 리듬에 실질적인 마찰을 일으킵니다.
"assignee-resume" 자동화에서의 무한 루프. 이 자동화는 차단된 에이전트(agent)를 재시작하도록 설계되었습니다. 어떤 경우에는 루프 내에서 재시작이 일어납니다. 즉, 에이전트가 차단된 상태를 처리할 시간조차 갖기 전에 다시 배정(re-dispatched)되는 것입니다. 해결책은 자동화에 명시적인 가드(guard)를 추가하는 것입니다. 즉, 티켓이 지난 N분 동안 수정되지 않은 경우에만 재시작하도록 하는 것입니다. 이는 전형적인 오케스트레이션(orchestration) 버그이며 AI 문제는 아니지만, 실제로 발생하는 것을 직접 봐야만 깨달을 수 있는 문제입니다.
영어 버전은 결코 자발적으로 생성되지 않습니다. content-creator는 프랑스어(FR) 버전을 전달하고, 자신의 작업이 끝났다고 간주한 뒤 다음 단계로 넘어갑니다. 영어(EN) 버전은 매번 수동으로 생성해야 합니다. 저 자신이 직접 하거나, 두 번째 패스(pass)에서 트리거되는 전용 에이전트를 사용해야 합니다. 재앙 수준은 아니지만, 아직 제대로 자동화하지 못한 지속적인 마찰 요소입니다.
우리가 얻은 교훈
소스 확보(sourcing)에 제약을 두는 것이 제가 내린 최고의 결정이었습니다. 팩트 체크(fact-checker)를 선택 사항이나 권고 사항이 아닌, 반드시 통과해야 하는 차단(blocking) 단계로 설정함으로써 모든 에이전트가 모든 주장을 입증하도록 강제했습니다. 이로 인해 생산 속도는 약간 느려졌지만, 결과물의 품질은 비교할 수 없을 정도로 좋아졌습니다. 오픈 소스 생물학(open-source biology)이나 디지털 커먼즈(digital commons)와 같은 주제를 다룰 때, 엄격함(rigor)은 타협할 수 없는 요소입니다.
에이전트별 지속적 메모리(Persistent memory)가 효과를 발휘합니다. 각 Bloomii 에이전트는 신뢰도 카운터(confidence counters)와 함께 학습된 교훈을 축적하는 memory.md 파일을 가지고 있습니다. 40개의 기사를 작성한 후, 이 파일들은 암묵적인 스타일 가이드(style guides)가 되었습니다. 이 파일들은 과거의 오류, 편집 선호도, QA를 통과한 문구 및 거절된 문구들을 포착합니다. 이는 파인튜닝(fine-tuning) 없이 이루어지는 일종의 조직적 학습(institutional learning)입니다.
하나의 CEO 에이전트로 다섯 개의 프로젝트를 운영하는 것은 인지 부하(cognitive load)를 유발합니다. 에이전트가 아니라 저에게 말입니다. 같은 날 Bloomii에서 Aekan, KittyClaw, VizMail로 전환하는 것은 끊임없이 컨텍스트(context)를 다시 불러오는 것을 의미합니다. 에이전트들은 각자의 워크트리(worktree)와 메모리를 가지고 있습니다. 컨텍스트 스위칭 오버헤드(context-switching overhead)를 축적하고 있는 것은 바로 저입니다.
다음 단계
40개의 기사는 바닥일 뿐, 한계가 아닙니다. 윤리적 기술(Ethical Technology) 기둥은 여전히 소스 확보가 가장 어려운 분야입니다. 디지털 도구가 웰빙(well-being)에 미치는 실제 영향에 대한 최근 연구들은 드물고 종종 모순적입니다. 바로 그 지점에서 팩트 체크(fact-checker)가 가장 치열하게 작동합니다.
다음 아키텍처(architectural) 결정 사항은 content-creator를 첫 번째 패스(pass)부터 이중 언어(bilingual) 에이전트로 만들어 영어(EN) 생산을 자동화하는 것입니다. 그렇게 하면 패스 횟수를 절반으로 줄이고 현재의 마찰(friction)을 제거할 수 있을 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기