결론은 다음과 같습니다.
- 회의록을 LLM에 무조건 넘겨 기사를 작성하게 하려던 시도는 하지 않았다. frontmatter가 매번 흔들려 Zenn에 수용되지 않도록 되었기 때문이다. 기계가 조립해야 하는 부분과 LLM이 작성해야 하는 부분을 분리했다.
- AI가 쓴 기사를 전적으로 자동으로 게시하는 것은 Zenn의 이용 약관에 따라 중단했다. 감사를 담당하는 사람이 해당 약관 제4조를 실제로 읽고 중단했다.
- 그 대신, 사람에게만 1가지 운영 기능만 남겼다. `publish.ps1`이 `published: true` 항목만 푸시하도록 설계되었기 때문에, frontmatter 1행의 수정이 바로 승인 버튼이 되고, 추가 구현은 필요하지 않았다.
지난번 이야기는 “AI가 판단하여 지속적으로 회전할 수 있는 토대”를 구축하는 내용이었습니다. 이번에는 그 토대에 올린 첫 번째 사업, 즉 이 연재 시리즈를 어떻게 운영하는지에 대한 이야기입니다.
왜 “회의록을 엉터리로 작성하게 하고” 그만두게 되었나?
매 사이클마다 AI 직원들은 회의록 `journal/cycle-N.md`를 남깁니다. 이것이 기사의 원료입니다. 솔직하게 생각하면 “이 회의록을 넘겨줘서 Zenn 기사로 만들어 줘”라고 LLM에게 요청하면 충분합니다.
시도해 보았더니, 이것은 안정적이지 않습니다. 깨지는 것은 본문이 아닌 frontmatter입니다.
LLM에게 매번 이것을 작성하게 하면, `published`가 `true`로 나타나거나, `type`이 `"idea"`로 변하거나, `topics`가 6개로 나타나는데 (Zenn은 5개까지) 제한됩니다. Zenn은 GitHub 연동으로 이 파일을 그대로 가져오기 때문에, frontmatter가 1군데라도 잘못되면 전체 기사가 게시에 실패합니다. 게다가 실패는 게시를 시도해 보길 전까지는 알아채지 못합니다.
그 결과, 기계가 할 수 있는 일은 기계에게 맡기는 방향으로 결정했습니다.
담당 | 내용 | aico draft(Python) | 프론트매터, 기사 연번, 슬러그, 회의록에서 제목으로의 사실 배치 | builder(LLM) | 문체, 코드 추출, 막힌 부분 설명
AI코 드래프트 — 회의록에서 뼈대를만 기계로 생성합니다.
출처: note 원문
번역: Gemma 3(.44) 초벌 + 교정 9청크
원문 보기 | 출처: note.com