Claude subagent와 notion mcp를 이용하여 작업기록 자동화하기
| topics | 100-데이터분석 & AI 108 활용,도구 |
| types | 실습 프로젝트 |
| contexts | 프로젝트 |
| tags |
만들게 된 이유
- 프로젝트 하고나서 한 작업 기록을 하지 않아 해결했던 문제가 기억이 안난다. 하지만 매일 한 작업을 기록하기는 쉽지않다.
- ai가 여러 작업을 시키면 잘 까먹는다.
- todolist작성하라고 해도 매번 다른형식으로 작성하며 todo파일이 관리가 안된다.
- ai와 작업 중인 것을 요약해서 정리하여서 알고 싶다.
노션 데이터베이스 활용해서 해당 스키마에 맞게 기록해달라고 하면 되는거 아니야??
Why subagent?
사실 처음에는 커스텀 명령어로 지시했다. 대략적인 흐름은 아래와 같다.
- 사용자 요구사항을 분석
- 계획을 세운 후 사용자에게 확인
- 작업을 목적이 같은 task와 ai의 실행단위인 subtask로 나눠서 기록
- 각 subtask하나씩 작업진행
- 작업진행시 완료 처리
- 남은 subtask가 있나 확인후 있으면 3번으로 이동
발생한 문제
나는 이 커스텀명령어에 노션 데이터베이스의 datasourceid를 주었으며, 속성의 값들을 주었다. 그리고 "모든 속성"을 다 채우라고 명령하였다.
40퍼센트 확률로 모든 속성 안 채움
- task database의 properties로 아래와 같은 값을 주고 모두 채우라고 명령하였다.
- project(project db 참조값)
- task(일이름)
- type (기능개발,리팩토링,에러해결 등)
- who(처리주체 - AI가 처리하는 것만 확인)
- 요구사항(채팅시 내가 요구한 사항)

task도 이렇게 숭 숭 뚤린것을 볼수있다. 그러면 subtask는 어떨까. 더 심하다.
아무리 명령md파일에 강조 표시를 해도 퍼센트가 오를뿐 최소 70퍼센트 이상은 절대 되지 않았다.
이것 머에요? 무한에러머에요?

속성값이 "상태" 인데 "상탄"으로 무한 요청을 하는 모습을 볼 수 있다. 뿐만아니라 subtask를 확인하고 완료 안된 subtask들을 처리하는 로직도 이뤄지지 않았다.
왜 그럴까
하나의 agent가 이를 진행하면 기억해야할 context가 너무 많다. 이러다 보니 축약 시키고 할 내용을 하나씩 빼먹는 것이다.
그래서 어떻게 구현했는가
notion mcp의 적용은 쉽다. 공식 문서에도 notion mcp연결 명령어가 나오며, claude --debug를 사용해서 mcp를 추가해달라고 해도 잘 해준다. 단 설치후 mcp를 실행하여 인증처리를 해줘야 notion mcp를 구동할 수 있다.
커스텀 커멘드에서는 작업의 흐름을 알려주고, 노션관련된 작업은 subagent를 호출하라는 명령을 주었다.
노션관련 agent에서는 각 database의 id와 속성을, 상황별 행동과 명령어를 추가하는 등 행동의 제한을 두어 진행하였다.
진행 흐름
들여쓰기 된 부분은 subagent가처리한다.
- 사용자 요구사항을 분석
- 계획을 세운 후 사용자에게 확인(나의경우 --continue라는 옵션을 주면 이어하도록 하였다.)
- subagent에게 내용전달
- 기존 작업 확인 후 작업을 목적이 같은 task와 ai의 실행단위인 subtask로 나눠서 노션에 기록
- 먼저 실행할 subagent 선택 후 상태 진행중으로 변경
- 메인 agent에게 전달
- 전달 받은 subagent실행
- commit진행
- 진행결과와 커밋id를 sub agent에게 전달
- 진행결과와 커밋id를 db형식에 맞게 추가
- 해당 subtask완료처리
- 남은 subtask가 있는지 확인후 있으면 4로 이동
장점과 단점
장점
- 노션에서 필터링하여 진행한 사항을 확인가능하다.
- 진행 전 상황, 개선된 상황을 상세히 확인가능하다.
- 요청한 todo를 모두 진행한다.
단점
- 토큰을 많이 먹는다.(compact가 보다 자주 일어남)
- 시간이 기존보단 오래 걸린다.