제한된 작업 원칙: 왜 제약된 AI 에이전트가 개방형보다 뛰어난가
Source: Dev.to
소개
Claude는 2주 동안 Firefox에서 22개의 취약점을 발견했으며, 그 중 14개는 고위험 수준이었습니다.
사람들은 종종 모델 능력에 초점을 맞추지만, 진짜 교훈은 제한된 작업(bounded task) 에 있습니다.
성공은 정의된 범위, 정의된 출력 형식, 그리고 명확한 성공 기준 덕분이었습니다.
에이전트에게 “Firefox 보안을 개선하라”라고 요구한 것이 아니라, 구체적인 파라미터, 특정 표면 영역, 그리고 발견이 어떤 모습이어야 하는지에 대한 정확한 정의를 제공한 것입니다.
이 원칙은 여러분이 만드는 모든 AI 에이전트에 적용됩니다.
대부분의 에이전트가 실패하는 이유
대부분의 에이전트가 실패하는 이유는 모델 품질이 아니라 작업 명세가 충분히 정의되지 않았기 때문입니다.
작업이 여러 의미로 해석될 수 있을 때, 에이전트는 하나의 해석을 선택합니다—종종 잘못된 해석—그리고 그에 맞춰 최적화합니다. 반면 사용자는 전혀 다른 것을 원할 수 있습니다.
모호한 작업 명세의 증상
- 에이전트가 예상보다 오래 루프에 빠짐
- 출력이 “합리적”으로 보이지만 핵심을 놓침
- 실행마다 결과가 크게 달라짐
- 에이전트가 잘못된 시점(작업 중간, 사전이 아니라)에서 명확화 질문을 함
네 가지 필수 필드
프롬프트, current-task.json, 혹은 SOUL.md 지시문에 관계없이 모든 작업 정의에 다음 네 가지 필드를 추가하세요:
{
"scope": "What is in bounds. Be explicit about what is NOT in scope.",
"output_format": "Exactly what the result should look like.",
"done_when": "Observable condition that defines completion.",
"success_criteria": "How a human will evaluate whether the output is correct."
}
- Scope(범위): 에이전트가 과도하게 작업하는 것을 방지합니다. “경계는 어디인가?”에 답합니다.
- Output format(출력 형식): 해석의 흐름을 방지합니다. “‘완료’는 구조적으로 어떻게 보이는가?”에 답합니다.
- Done when(완료 조건): 무한 루프를 방지합니다. “에이전트는 언제 멈춰야 하는가?”에 답합니다.
- Success criteria(성공 기준): 피드백 루프를 닫습니다. “작업이 제대로 수행됐는지 어떻게 알 수 있는가?”에 답합니다.
Anthropic/Firefox 감사 매핑
| 필드 | 명세 |
|---|---|
| Scope | Firefox 소스 코드 — 전체 웹이 아니라 특정 모듈 |
| Output format | 심각도, 설명, 재현 단계가 포함된 구조화된 취약점 보고서 |
| Done when | 범위에 포함된 모든 모듈을 검토했거나 X시간이 경과했을 때 |
| Success criteria | 인간 보안 엔지니어가 각 발견을 재현하고 확인할 수 있음 |
보이지 않는 부분에 주목하세요: “Firefox를 더 안전하게 만들라.” 이것은 목표일 뿐 작업 명세가 아닙니다. 제한된 버전이 22개의 실행 가능한 발견을 만들어냈습니다.
잘 제한된 에이전트의 장점
- 무엇을 해야 할지 고민하는 시간이 감소
- 출력이 더 일관됨
- 문제가 있을 때 빠르게 실패(드리프트 대신)
- 실행 비용이 크게 절감
프로덕션에서 가장 좋은 성과를 내는 에이전트는 가장 많은 도구를 가진 것이 아니라, 가장 명확한 작업 정의를 가진 것입니다.
모든 에이전트를 위한 빠른 체크리스트
- Scope – 한 문장으로 범위를 말할 수 있나요? (못한다면 범위가 너무 모호함)
- Output format – 에이전트가 실행되기 전에 출력이 어떻게 생겼는지 설명할 수 있나요? (못한다면 형식이 정의되지 않음)
- Done condition – 모호함 없이 에이전트가 언제 멈춰야 하는지 말할 수 있나요? (못한다면 완료 조건이 부족함)
- Success criteria – 출력이 잘못됐는지 알 수 있나요? (못한다면 성공 기준이 부족함)
네 가지 모두 답할 수 없다면, 새로운 도구나 기능을 추가하기 전에 작업 명세를 더 구체화하세요.
자료
제한된 작업 패턴을 위한 검증된 설정—current-task.json 템플릿 및 SOUL.md 에스컬레이션 규칙—은 Ask Patrick Library에서 확인할 수 있습니다: