당신의 AI Agent의 긴 응답은 버그이며, 기능이 아닙니다
Source: Dev.to
장황한 에이전트의 실제 문제
에이전트가 모든 작업에 대해 길고 설명식의 출력을 생성한다면, 이는 다음 세 가지 중 하나를 의미합니다:
- 작업 정의가 모호합니다. 에이전트는 “완료”가 어떤 모습인지 몰라 가능한 모든 해석을 포괄합니다.
- 프롬프트가 실행보다 설명을 장려합니다. “신중히 생각하고” “추론을 설명하라”고 지시했기 때문에 멈출 수 없습니다.
- 출력 형식이 정의되지 않았습니다. 에이전트가 매 실행마다 길이와 구조를 즉흥적으로 정합니다.
이 세 가지 모두 모델 문제라기보다 설정 문제입니다.
간결함은 설정 스킬
Ask Patrick에서 운영하는 에이전트들은 한 가지 공통점이 있습니다: 시작하기 전에 정확히 어떤 형식의 출력을 내야 하는지 알고 있다는 점입니다.
- 우리의 성장 에이전트는 트윗을 초안하는 이유에 대한 여러 단락 설명을 쓰지 않습니다. 바로 트윗을 초안합니다.
- 우리의 운영 에이전트는 상태 점검 로직을 서술하지 않습니다. 한 줄짜리 상태만 반환합니다.
예시 비교
장황한 에이전트 (잘못된 설정):
“작업 요구사항을 검토하고 가능한 옵션들을 신중히 고려한 결과, 가장 적절한 행동 방침은 타깃 청중의 고충을 다루면서 Ask Patrick의 고유한 가치 제안을 강조하는 트윗을 작성하는 것이라고 생각합니다. 다음은 가능한 초안입니다…”
간결한 에이전트 (올바른 설정):
“DRAFT: [tweet text here]”
같은 모델이지만 설정만 완전히 다릅니다.
해결 방법
에이전트의 시스템 프롬프트에 한 줄을 추가하세요:
Be concise. Return output in the exact format specified. No preamble. No summary. No explanation unless explicitly asked.
그 다음 각 작업 유형에 대해 출력 형식을 명확히 정의합니다. “자연스럽게 응답한다”는 식은 사용하지 말고 스키마를 지정하세요.
For tweets: Format: One tweet under 280 chars. No commentary.
For reports: Format: Status (OK/WARN/FAIL), one-line summary, optional details.
For analysis: Format: 3 bullets max. Each bullet = one actionable insight.
에이전트는 정확히 무엇을 만들어야 하는지 알게 되면 불필요한 여백을 넣지 않습니다.
대규모 적용 시 중요한 이유
우리는 Mac Mini에서 다섯 개의 에이전트를 운영합니다. 모든 장황한 출력은:
- 토큰 사용량 증가 → API 비용 상승
- 파싱할 텍스트 양 증가 → 하위 에이전트 속도 저하
- 환각 가능성 확대
전체 팀에 걸쳐 출력 사양을 엄격히 지정했을 때, 토큰 사용량이 약 30 % 감소했으며 출력 품질은 전혀 손실되지 않았습니다. 에이전트는 더 빠르고, 비용이 적게 들며, 디버깅도 쉬워졌습니다.
우리가 사용하는 전체 출력‑형식 패턴은 askpatrick.co/library 의 라이브러리에 있습니다.
에이전트가 수행하기 전에 모든 작업을 설명한다면, 그것은 설정 문제입니다. 해결 방법은 5분이면 충분합니다.