프롬프트 관리자
Problem
LLM 툴 열고 한줄 딱 요청 넣으면 알잘딱깔센하게 작업해주면 좋겠는데 보통 그렇지 못하다. AGENTS.md/CLAUDE.md라던가 스킬 같은걸 열심히 설정해서 조금 낫게 만들수는 있기도 하지만, 그런것도 앞으로 계속 다시 쓸 수 있겠다 싶은 경우에나 효과가 있지 일회성 분석 작업이나 언제 다시 쓸지 모르는 니치한 스킬이 되면 관련 작업이 별다른 의미가 없는 경우가 많다.
Chatting interface is the source of problem
일전의 글에서도 얘기했던 것이지만 채팅 인터페이스에는 다음과 같은 문제가 있다.
- 요즘 툴은 작업 수행 시간이 길어졌다: AI가 똑똑해지면서 더 복잡하고 긴 작업을 무리없이 수행할 수 있게 되었다. 사람은 그거 구경하고 있어야 한다.
- 대화가 길어질수록 어차피 망하는 방향이다: AI의 오류를 지적하고 고치라고 하는 것보다, AI가 실수를 하게 된 원인을 찾아 아예 시작부터 오류가 없도록 프롬프트를 다시 작성하는 편이 더 낫더라. (개인적 의견입니다)
- 돈낭비: 마찬가지로 대화가 길어지면 Context length가 아주 길어지기 때문에 One-shot 방식에 비해 비용도 비싸게 든다.
- 대화내역은 툴 닫으면 기본적으로 날아간다. —resume 기능이 있긴 하지만 근본적 해결책은 아니라고 본다.
Attempt to fix the interface - Prompt LSP
그래서 뭘 해볼 수 있느냐 - LLM이 작성한 코드 공개해봤자 쪽팔리기만 하니 아이디어만 여기에 적어본다.
텍스트 에디터에서 바로 프롬프트를 발사한다. LLM의 결과물이 바로 텍스트 에디터에 섹션으로 추가된다.
포인트는 다음과 같다:
- 채팅창을 작업의 중심으로 두지 말고, 문서를 단일한 상태 저장소로 둔다.
- 문서는 어차피 아주 길지 않다 - 전체 문서를 통째로 프롬프트의 일부로 전달해서 LLM도 전반적인 맥락을 이해할 수 있게 한다.
- 결과물도 다시 문서에 환류시켜 다음 요청의 입력으로 재사용한다.
- 사람은 문서를 정리하고 우선순위를 정하고, AI는 선택된 요청을 실행하는 방식으로 역할을 나눈다.
Demo
아래는 이 글을 작성할 때 사용한 프롬프트 데모다. 섹션 하나 작성할 때마다 아래 프롬프트를 실행해서 초안을 작성하고, LLM이 작성한 초안을 내 나름대로 재구성해서 본문으로 추가하는 방식으로 작업했다.
결과
LLM이 수행하는 작업이 단순하고 빠를땐 도움이 되는데, 꽤 길게 작업하는 경우엔 작업 중간 내역의 visibility가 부족해서 답답하다. 무슨 툴을 쓰고 무슨 생각을 하고있는지 알 수 있어야 할 것 같다.
PROMPT: 위 소제목에 맞춰서 적절한 내용을 작성해봐.
소제목에서 말하고자 하는 바에 맞춰서 적절한 본문을 작성해줘.
먼저 5개 이내의 요점을 작성해주고, 해당 요점들을 정리해서 적절한 본문을 작성해줘.
Re: 위 소제목에 맞춰서 적절한 내용을 작성해봐.
(이하 LLM이 뭔가 열심히 써놓은 요점 및 초안이 등장한다)