AI 콘텐츠 큐레이션 서비스 개발기 (2) - 5개의 에이전트로 파이프라인 자동화

한국 앱 스크린샷

Linear로 팀원들의 업무 맥락을 분석해서 팀원 12명에게
각자 업무에 맞는 콘텐츠를 자동으로 추천& 요약하는 AI 에이전트 파이프라인 구축

어드민을 구축하고 해결했어야했던 문제

큐레이팅은 여전히 인간지능이 필요하다

CurateBot 어드민 구축 후 실제로 이 어드민을 사용하니 고민되는 부분이 있었어요.
콘텐츠 수집은 자동화됐지만 고도화된 큐레이팅의 영역은 인간 지능의 몫이었는데요.
AI가 RSS기반으로, 유튜브, X에서 콘텐츠를 긁어와도 "이건 개발자한테, 이건 마케터한테" 하고
일일히 할당해야했습니다.

물론 직무 기반으로 키워드를 추출해 서버 백엔드에 로직을 넣어서 자동 배분하는 시도도 있었지만 한계가 있었어요. general한 AI/코딩 콘텐츠는 전달하기 수월햇지만 해당 팀원이 사용하는 툴이나 실제로 지금 뭘 하고 있는지는 모르다보니 맞춤형 콘텐츠를 추천-발송하는 것이 어려웠습니다.

<해결책>

저희 팀원 닿님과 이 부분에 대해서 고민해보다가 우리 회사에서 업무를 관리하는 'Linear'를 활용해서
팀원들의 업무 맥락(업무 관련 키워드, 블로커 등)을 파악
하고 그 맥락에 맞는
콘텐츠를 제공해주는 것으로 정리되었습니다!

파이프라인을 어떻게 돌릴 것인가
좋은 콘텐츠를 전달하기위해서는
업무맥락 파악 → 해당 맥락을 반영한 콘텐츠 수집 → 배분이 필요했는데요.
원래는 이것을 API 기반으로 백단에 로직을 줘서 진행하다보니
토큰 과다 사용 및 cron 타임아웃 이슈와 해당 파이프라인이 원활하게 이루어지는 구조가 아니라
다 제각각 흩어져서 오히려 더미 데이터만 쌓이는 느낌이었어요.

<해결책>
사실 웹서비스의 DB와 CLI 환경에서의 에이전트를 붙여서 동작시키는 것은 생각을 못했는데
닿님께서 아이디어를 주셔서 빠르게 구현해보기로했습니다 !


5개 에이전트 파이프라인 설계

각 단계를 "에이전트"라는 개념으로 분리해서 설계했습니다!
빌드해본 서비스 중에 에이전트의 역할이 가장 중요한지라 ..

서브 에이전트 md 문서를 기깔나게 쓸 수 있는 Github 디렉터의 팁을 참조해 build-agents Skill를 만든 후 해당 스킬로 서브에이전트 5개를 만들었습니다.

  • Agent 1 (analyze-context): Linear에서 팀원들의 진행 중인 이슈를 읽고 업무맥락 파악

  • Agent 2 (extract-keywords): 업무맥락에서 검색 키워드 추출

  • Agent 3 (collect): 해당 키워드로 YouTube/X에서 콘텐츠 수집

  • Agent 4 (distribute): 콘텐츠와 팀원 매칭 점수 계산해서 자동 배분

  • Agent 5 (summarize): "이 콘텐츠가 당신 업무에 어떻게 도움되는지" 개인화 요약 생성

한국어 스크린샷


위 글을 참고해서 서브 에이전트를 만드니 md 파일 자체도 탄탄해졌고
절대 하지말아야하는 것을 정의할 수 있어서 더 똑똑한 에이전트가 돌아가는 느낌이었습니다

5개 에이전트 파이프라인 작동

한국어 텍스트가 있는 페이지의 스크린샷

이 5개의 에이전트를 순차적으로 발동시키는 파이프라인 SKILL을 만들어서 실행시켰습니다
원래 같으면 웹 UI에서 버튼 하나하나 만들었을 텐데 "파이프라인 실행해줘" 라고만 하면됐는데요!
5개의 단계를 스킬로 만들지 에이전트로 만들지 고민이 되었는데,
5개의 단계를 거치긴하더라도 병렬로 작업을 시키는 일도 있을 것 같아 에이전트로 만들었습니다!

5개의 에이전트의 결과물

업무 맥락/키워드 추출
어드민 내에서 수집된 업무 맥락을 파악할 수 있으며, 추출된 키워드와
매칭된 콘텐츠를 추천한 이유를 확인할 수 있습니다.

맞춤 요약- 분배
어드민에서는 후보 콘텐츠가 축적되며 마지막으로 인간 지능이 검수해 하루에 2~3개의 콘텐츠를 승인 후 발송하는 구조입니다. 파악된 업무 맥락과 개인 AI 리터러시 정도에 따라 맞춤형으로 요약됩니다.

한국사이트 스크린샷

콘텐츠 배달
개인 DM으로 콕집이(CurateBot)이 콘텐츠가 담긴 피드를 배달합니다.
개인 피드에서 좋아요/별로예요 로 피드백을 남길 수 있으며 이는 추후 콘텐츠 할당에 참조됩니다.



시행착오


타임아웃과의 싸움 - "왜 자꾸 끊기지?"

파이프라인이 완성됐다고 좋아했는데, Vercel에 배포하니까 문제가 생겼습니다.

그것은 바로 타임아웃 ^^ ..

5개 에이전트가 순차적으로 돌아가다 보니 시간이 오래 걸렸고 Vercel의 함수 실행 시간 제한에 걸린 것인데요.

파이프라인이 타임아웃 되는 것 같은데 분리해서 실행하게 변경해줘

Cron job을 5단계로 분리해서 각 에이전트가 독립적으로 실행되고, 5분 간격으로 순차 호출되는 구조로 바꿨다. 덕분에 타임아웃 없이 안정적으로 돌아가게 됐습니다.


품질 게이트 - "쓸만한 콘텐츠만 가져와"

에이전트가 잘 돌아가 수집은 잘되는데 콘텐츠 품질이 이슈였습니다..
개발 에러 트래킹 도구인 "Sentry" 키워드로 검색하면 헤어제품 광고가 나오기도 했는데요..

문제는 두 가지였습니다.

  • 하나는 단일 검색어의 한계.
    "Claude 프롬프트"로만 검색하면 프롬프트 엔지니어링 실무 사례, API 활용 가이드, 업무 자동화 사례 같은 다양한 각도의 콘텐츠를 놓친다는 점-

  • 다른 하나는 노이즈 필터링이 검색 단계에서 안 되고 있었다는 것.
    광고, 홍보, 무료강의 모집 같은 콘텐츠가 수집된 다음에야 할당 단계에서 제외되었습니다.

💡해결 방법

단일 쿼리를 3개 쿼리 배열로 확장했습니다. Gemini가 키워드 하나당 검색 쿼리를 세 가지 관점에서 생성한하는 것인데요. 예를 들어 "Claude 프롬프트"라는 키워드가 들어오면 "Claude 프롬프트 엔지니어링 실무", "Claude API 개발자 가이드", "Anthropic Claude 업무 자동화 사례"처럼 다양한 각도로 풀어내는 것을 추가했습니다.

제외 키워드를 검색 단계에서 적용했습니다. "광고", "홍보", "무료강의", "이벤트", "할인", "sponsored" 같은 단어를 검색 쿼리에 `-광고 -홍보 -무료강의` 형태로 붙여서, 수집 전에 미리 걸러낸다. 수집하고 나서 버리는 게 아니라 아예 안 가져오는 것이다. API 호출 횟수도 절약되고 노이즈도 줄었다.


✅ Before vs After

항목

Before (v1)

After (v2)

콘텐츠 배분

수동 할당

AI 자동 배분

개인화 기준

팀원 프로필 (정적)

Linear 이슈 기반 업무맥락 (동적)

추천 요약

일반 요약

"당신 업무에 이렇게 도움됩니다" 개인화 요약


💬 이 과정에서 배운 AI 활용 팁

  1. 복잡한 작업을 단계별로 쪼개기: "콘텐츠 추천해줘"가 아니라 "분석 → 추출 → 수집 → 배분 → 요약" 5단계로 나눠서 요청하니까 Claude가 각 단계를 명확하게 구현함

  2. CLI 활용: 웹 UI 만들 필요 없이 터미널에서 바로 실행하고 DB에 반영되는 구조가 개발 속도를 확 높임

  3. 기존 업무 도구 연동: Linear에 이미 팀원들의 업무 정보가 있으니까, 새로 입력받을 필요 없이 API로 가져와서 분석


🌍 다른 업무에 적용한다면?

이 "업무 도구 연동 → AI 분석 → 자동화" 패턴은 다른 곳에도 적용할 수 있다:

  • Notion 연동: 팀 문서를 분석해서 관련 자료 추천

  • Slack 연동: 채널 대화를 분석해서 필요한 정보 요약

  • Jira 연동: 이슈 기반으로 기술 문서나 해결책 추천

  • Google Calendar 연동: 일정에 맞는 준비 자료 추천

핵심은 "이미 팀이 쓰고 있는 도구의 데이터"를 AI가 읽게 하는 것이다.


🚀 앞으로의 계획

실제 발송 & 피드백 루프
아직 팀원분들께 맞춤형 콘텐츠 배달 전인데 금주 중으로 배달 예정입니다)
팀원들의 좋아요/싫어요 피드백을 수집하고 이걸 학습에 반영해서 추천 정확도를 높일 예정입니다.

AX 실습 제작
콘텐츠를 받아보는 것을 넘어 실습을 제작까지 진행해볼 생각입니다.
미니 실습까지 구현완료해 고도화해서 다음 사례글로 남겨볼 계획입니다.

2
4개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 오후,
읽고 바로 써먹을 AI 소식만