Community연구 & 데이터 분석github.com

lingyu9495-source/subagent-first

AI 어시스턴트가 무거운 작업에 발목 잡히지 않도록 설계된 작업 규율입니다. 주 에이전트는 작업을 분해, 위임, 검증, 정리만 수행하며, 다중 파일 처리, 장기 연구, 배치 작업 등 여러 번의 도구 호출이 필요한 작업은 항상 백그라운드 하위 에이전트에 위임하여 병렬 실행합니다.

subagent-first란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Codex, Cursor 등)가 장시간 소요되는 작업에 주 에이전트가 묶여 사용자 응답이 지연되는 문제를 해결합니다. 핵심은 **주 에이전트는 절대 무거운 작업을 직접 수행하지 않고** 분해, 위임, 검증, 대화의 4가지 역할만 유지하는 작업 규율입니다. **주요 내용:** * **의사 결정 트리 4문:** 작업을 위임할지, 직접 수행할지, 정기 작업으로 전환할지 판단합니다(1회 도구 호출 가능? 사용자 결정 필요? 세션 유지 필요? 독립적 분할 가능?). * **위임 4요소:** 목표, 컨텍스트(하위 에이전트는 사용자 대화를 볼 수 없으므로 반드시 자체 포함), 출력 스키마, 검증 방식을 각 작업 지시에 포함해야 합니다. * **5단계 프로세스:** 분해, 위임, 병렬 스케줄링, 검증, 마무리. * **검증 체크리스트:** 존재성, 규정 준수, 진위성, 완전성의 4가지 항목을 모두 확인하고, 무작위로 1~2곳을 원본과 대조합니다. * **6가지 위임 패턴 및 12가지 안티 패턴**을 제시하여 실수를 방지합니다. * **스크립트 `delegation_planner.py`:** 순수 표준 라이브러리만 사용하여 작업 목록을 입력하면 '위임/직접 수행/정기 작업 전환' 여부와 병렬 그룹화 제안을 출력합니다. 이 스크립트는 주 에이전트가 수행해야 할 작업 목록도 함께 제공합니다. 이 스킬은 플랫폼에 독립적으로 설계되었으며, 주요 플랫폼의 도구 이름과 대응표를 포함합니다. Hermes와 같은 특정 플랫폼의 실시간 차이는 별도 페이지에서 확인할 수 있습니다.

지원 대상✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/lingyu9495-source/agent-skills/tree/main/skills/subagent-first

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

하위 에이전트 우선 · 주 에이전트는 직접 나서지 않는다

주 에이전트의 주의력은 사용자에게 속하며, 작업에 속하지 않는다. 여러 번의 도구 호출이 예상되는 작업은 모두 하위 에이전트에게 백그라운드로 위임하고, 주 에이전트는 분해, 위임, 검증, 마무리만 담당하며 항상 사용자에게 즉시 응답할 수 있는 상태를 유지한다.

많은 AI 에이전트가 어색하게 사용되는 근본 원인은 모델이 충분히 강력하지 않아서가 아니라, 주 에이전트가 무거운 작업에 발목 잡혀 있기 때문이다: 사용자가 한마디를 보내면 주 에이전트는 20번의 도구 호출을 수행하는 동안 응답도, 방향 전환도 할 수 없고 사용자는 그저 기다려야 한다. 마침내 작업을 마치면 요구 사항이 이미 변경되어 있을 수 있다.

이 스킬이 제공하는 것은 작업 규율(作業紀律)이다. 즉, '언제 위임해야 하는지, 어떻게 위임하는지, 어떻게 검증하는지'를 감이 아닌 판단 가능한 규칙으로 만드는 것이다. 이 규율은 플랫폼에 독립적이다: 하위 에이전트/백그라운드 작업을 지원하는 모든 AI 에이전트(Claude Code, Codex, Cursor, WorkBuddy, Hermes 및 기타 유사 도구)에 적용되며, 차이는 도구 이름에만 있다. 매핑은 이 문서의 '도구 이름 대응표' 섹션을 참조한다.

특정 플랫폼에 적용 시 실시간 차이: Hermes의 필드 이름, 동시 실행 상한, 백그라운드 의미 및 비용 관련 사항은 references/hermes-runtime-reality.md에 정리되어 있다(예시 구현이며, 다른 플랫폼은 무시 가능). 본문은 규율만 다루며, 해당 페이지에 의존하지 않는다.


트리거 조건

다음 중 하나라도 발생하면, 이 스킬에 따라 작업을 수행해야 한다(직접 처리하지 않음):

  1. 작업이 2-3회 이상의 도구 호출이 예상됨: 예를 들어 '파일 8개를 읽고 요약하기', '검색 후 정리하기'.
  2. 한 번에 여러 개의 독립적인 단위를 처리해야 함: 여러 파일, 디렉토리, URL, 데이터, 후보군.
  3. 장기 연구/장기 검색: 반복적인 검색, 가져오기, 비교가 필요하며 시간이 몇 분 단위로 소요됨.
  4. 배치 처리: 동일한 작업 집합을 여러 입력에 대해 수행(정리, 변환, 항목별 확인, 항목별 생성).
  5. 사용자가 명시적으로 병렬 실행 또는 '여러 작업 동시 수행'을 요청함.
  6. 주 에이전트가 사용자와의 대화 중임: 사용자가 언제든지 질문, 요구 사항 변경, 새 작업을 지시할 수 있음.
  7. 하위 작업이 서로 의존하지 않고 동시에 시작 가능: 전형적으로 '세 개의 문서를 각각 교정하고 마지막에 결론을 통합'하는 경우.
  8. 무거운 작업이 백그라운드에서 실행되는 동안 사용자가 다른 대화를 계속하고 싶어함(이것이 이 스킬의 주요 이점 시나리오).

반대 트리거 조건: 한 번의 도구 호출로 완료할 수 있고, 사용자가 메시지를 보낸 후 더 이상 대화하지 않는다면 직접 수행한다. 억지로 하위 에이전트에 위임하면 오히려 더 느려진다. 판단 기준은 다음 섹션의 의사 결정 트리를 참조한다.


핵심 원칙

  1. 주 에이전트는 무거운 작업에 직접 나서지 않는다. 주 에이전트는 분해 → 위임 → 마무리 요약 → 사용자와의 대화 네 가지만 수행한다. 항상 '즉시 응답 가능'한 상태를 유지해야 한다.
  2. 무거운 작업은 반드시 하위 에이전트에 위임한다(강제). 위의 트리거 조건이 충족되면 반드시 위임해야 하며, '내가 빠르니까 그냥 해도 돼'라는 생각은 금물이다. 판단 기준은 작업 속성이지 주 에이전트의 자신감이 아니다.
  3. 자체 보고는 사실이 아니다. 하위 에이전트가 '완료'했다고 말하는 것은 단지 주장일 뿐이다. 검증되지 않은 산출물은 모두 미완료로 간주한다(자세한 내용은 '검증 체크리스트' 참조).
  4. 컨텍스트는 반드시 자체 포함되어야 한다. 하위 에이전트는 사용자와의 대화 기록을 볼 수 없다. 당신이 머릿속에 가지고 있는 배경 정보를 전혀 받을 수 없다. 위임 작업 지시가 불완전하면 반드시 잘못된 방향으로 진행될 것이다. 이는 하위 에이전트가 멍청해서가 아니라 당신이 정보를 제대로 전달하지 않았기 때문이다.
  5. 병렬 실행에는 경계가 있다. 의존성이 없는 작업만 병렬로 실행하고, 순서 의존성이 있는 작업은 반드시 직렬로 실행하거나 상위 산출물을 하위 작업에 전달해야 한다.
  6. 사용자 결정이 필요한 작업은 위임하지 않는다. 사용자 확인, 되돌릴 수 없는 결과, 즉각적인 감독이 필요한 작업은 주 에이전트가 직접 처리한다.
  7. 세션을 초과하는 장기 작업은 메커니즘을 변경한다. 현재 세션을 넘어서 지속되어야 하는 작업(지속적인 모니터링, 정기적 트리거, 상주 프로세스)은 플랫폼의 정기/상주 메커니즘(크론 작업, 예약 작업, 백그라운드 프로세스)을 사용하고, 하위 에이전트는 사용하지 않는다. 하위 에이전트의 수명 주기는 단일 위임에 연결된다.
  8. 실패 시에는 다운그레이드하고, 지어내지 마라. 하위 에이전트가 실패, 시간 초과, 부적격 산출물을 생성한 경우: 직접 처리하거나 경로를 변경하여 다시 위임한다. '얻지 못한 결과'를 '얻었다'고 절대 작성해서는 안 된다.

이 원칙들은 공학적으로 잘 알려진 fork-join/fan-out-fan-in 패러다임에 해당한다: 작업을 여러 실행 단위로 분기(fork)한 후 결과를 수집(join)한다(Java의 ForkJoinPool, Dean과 Ghemawat이 OSDI 2004에서 제안한 MapReduce가 이 개념의 구체적인 구현이다). 이 스킬은 새로운 개념을 발명하지 않고, 에이전트 시나리오에 적용 가능한 작업 규율로 구체화한다.


의사 결정 트리: 무엇이 무거운 작업이고, 무엇을 직접 할 것인가

다음 질문에 순서대로 답하고, 처음으로 '예'인 분기가 결론이다.

질문 1: 이 작업을 한 번의 도구 호출로 완료할 수 있는가?

판단 항목판단 기준
도구 호출 횟수직접 셀 수 있으며, ≤ 1회
여러 파일을 읽어야 하는가아니오(0–1개)
반복문이 있는가아니오('각각에 대해' 없음)
예상 소요 시간초 단위

네 항목 모두 충족 → 직접 수행. 하나라도 충족되지 않으면 질문 2로 이동.

질문 2: 이 작업에 사용자 결정이 필요한가?

  • 사용자가 여러 옵션 중 하나를 선택해야 함 → 직접 수행(또는 먼저 정보만 수집하여 옵션을 사용자에게 제시).
  • 되돌릴 수 없는 작업(데이터 삭제, 외부 발행, 결제, 타사 메시지 발송)이 포함되고 즉각적인 감독이 필요함 → 직접 수행.
  • 단지 '사용자가 알 필요가 있는' 정도이며, 과정 중 사용자 결정이 필요하지 않음 → 위임 가능하지만, 요약 시 명확히 설명해야 함.

질문 3: 이 작업이 현재 세션을 넘어서 지속되어야 하는가?

  • 예(정기적 트리거, 지속적 모니터링, 상주 서비스) → 플랫폼의 정기/상주 메커니즘(크론 작업, 예약 작업, 백그라운드 프로세스)을 사용하고, 하위 에이전트는 사용하지 않음.
  • 아니오, 현재 세션 내에서 완료하면 됨 → 질문 4로 이동.

질문 4: 서로 의존하지 않는 여러 블록으로 분할할 수 있는가?

  • 가능 → 여러 하위 에이전트에 병렬로 위임, 각각 자체 파일/디렉토리/URL/데이터셋을 담당하고 마지막에 주 에이전트가 병합.
  • 불가능하지만 명확한 순서가 있음 → 직렬로 위임, 또는 단일 하위 에이전트가 전체 체인을 실행(직접하는 것보다 효율적).
  • 분할할 수 없고 작업이 길지 않음 → 질문 1로 돌아가 다시 확인, 대부분 직접 수행.

정량적 빠른 참조표

작업 유형일반 소요 시간처리 방법
특정 값 확인, 파일의 특정 부분 읽기초직접 수행
한 곳의 문구 수정, 명령어 하나 실행초직접 수행
3개 파일 읽고 요약1-2분직접 또는 위임 가능; 사용자가 기다리고 있을 때 위임
8개 파일 읽고 각각 요약수 분위임
다중 소스 검색 + 교차 비교수 분에서 십여 분위임(블록별 병렬 가능)
N개 입력 배치 처리 (N ≥ 5)N에 따라 증가위임(슬라이스 병렬)
사용자가 옵션을 선택해야 함불규칙직접 수행(수집 + 옵션 제시)
매일 정해진 시간에 한 번 실행세션 초과크론 작업(하위 에이전트 아님)

5단계 프로세스

1단계: 분해

작업을 경계가 명확한 단위로 자른다. 각 단위는 다음 세 가지 질문에 독립적으로 답할 수 있어야 한다:

  • 입력은 무엇인가: 파일 경로, 디렉토리, URL 목록, 데이터셋 이름, 매개변수까지 구체적으로.
  • 산출물은 무엇인가: 파일 이름, 형식, 경로까지 구체적으로.
  • 완료는 어떻게 판단하는가: 판단 가능한 기준이어야 하며, '잘 끝내면 됨'이 아니다.

분할 시 두 가지를 지킨다:

  • 파일 쓰기 충돌 금지: 두 하위 에이전트가 절대 동일한 파일에 써서는 안 된다. 각자 자신의 파일을 쓰고 마지막에 주 에이전트가 병합하거나, 직렬로 실행한다.
  • 의존성 명시: A의 산출물이 B에 제공되어야 하는 경우 병렬로 위임할 수 없다. 직렬로 실행하거나 단일 하위 에이전트가 A+B를 모두 처리하도록 해야 한다.

완료 판단 기준(항목별 체크)

  • 각 단위에 입력(특정 경로/목록 포함)이 명시되었는가
  • 각 단위에 산출물(파일 이름 + 형식 + 저장 위치)이 명시되었는가
  • 각 단위에 판단 가능한 완료 기준이 있는가
  • 두 단위가 동일한 파일에 쓰지 않는가
  • 모든 의존 관계가 표시되었는가(어느 것이 직렬로 실행되어야 하는지)

2단계: 위임

플랫폼의 하위 에이전트/백그라운드 작업 도구를 사용하여 각 단위를 위임한다(Hermes에서는 delegate_task, 다른 플랫폼은 '도구 이름 대응표'에 따라 매핑). 작업 지시는 '4요소'에 따라 작성한다(다음 섹션 참조). 핵심:

  • 하나의 하위 에이전트는 하나의 명확한 작업만 맡기고, 관련 없는 세 가지 일을 하나의 작업 지시에 넣지 않는다.
  • 작업 지시에 배경 정보를 완전히 작성한다. 하위 에이전트는 사용자와의 대화를 볼 수 없다.
  • 산출물이 어느 경로에 저장될지와 무엇을 보고해야 하는지(파일 경로? 줄 수? 명령어 출력?) 명확히 지시한다.
  • 검증 가능한 것만 보고하도록 명확히 요구한다: 어떤 명령어를 실행했는지, 어떤 출력을 얻었는지; 달성하지 못한 것은 솔직히 말하도록 한다.
  • 플랫폼이 구조화된 보고/출력 검증(예: JSON 스키마로 하위 에이전트의 최종 응답 검증)을 지원한다면, 자유 텍스트보다 구조화된 형식을 사용한다.

완료 판단 기준

  • 각 작업 지시에 4요소(목표/배경/출력 구조/검증 방식)가 모두 포함되었는가
  • 각 작업 지시에 출력 경로가 지정되었는가
  • 각 작업 지시에 검증 가능한 증거(명령어 + 실제 출력)를 보고하도록 요구했는가
  • 작업 지시에 '알잖아', '전처럼' 같은 불완전한 참조가 없는가

3단계: 병렬 스케줄링

  • 병렬 가능한 것은 병렬로 위임한다: 서로 의존하지 않는 단위는 한 번에 모두 위임하고, 줄서서 기다리게 하지 않는다.
  • 의존성이 있는 것은 직렬로 실행한다: 상위 단위가 검증을 통과할 때까지 기다린 후, 그 산출물을 하위 작업 지시의 컨텍스트로 제공한다.
  • 병렬 실행에는 상한을 둔다: 너무 많이 동시에 열면 서로 자원을 빼앗고, 주 에이전트의 수집 부담도 증가한다. 한 번에 3~5개가 일반적인 적정 범위이다. 그 이상은 배치를 고려한다(상한 초과 시 결과는 각 플랫폼에 따라 다르며, '도구 이름 대응표'와 플랫폼 실시간 페이지 참조).
  • 위임 후 즉시 사용자 곁으로 돌아간다: 하위 에이전트를 기다리며 그 자리에 있지 않는다. 이것이 바로 이 규율의 목적이다. 사용자가 당신을 기다리고 있을 때, 당신은 응답할 수 있어야 한다.
  • 폴링하지 말고, 기다리지도 마라: 위임 호출은 즉시 반환되어야 하며, 결과는 플랫폼이 전달한다. 주 에이전트는 대기 중에도 사용자의 새 메시지를 받을 수 있어야 한다. 플랫폼이 기본적으로 차단(blocking)한다면, 위임 호출을 백그라운드/비동기 모드로 전환하여 위임한다.
  • 사용자에게 현장 제어 인터페이스를 제공한다: 플랫폼이 실행 중인 하위 에이전트 보기, 특정 하위 에이전트에 수정 지시, 조기 종료 및 부분 결과 보존을 지원하면 사용한다. 지원하지 않으면 '다음 배치 작업 지시에 수정 사항 포함'으로 대체한다.

완료 판단 기준

  • 의존성이 없는 단위가 동시에 전송되었는가(하나씩 줄서서 전송되지 않음)
  • 의존성이 있는 단위가 순서대로 직렬로 실행되었으며, 하위 작업이 상위 산출물을 받았는가
  • 병렬 실행 수준이 제어 가능한 범위 내에 있는가(한 번에 10개 이상을 펼치지 않음)
  • 위임 후 주 에이전트가 차단되어 대기하지 않고, 여전히 사용자에게 응답할 수 있는가

4단계: 검증

이 단계는 가장 쉽게 건너뛰지만, 가장 건너뛰면 안 되는 단계이다. 하위 에이전트의 '완료'는 검증이 필요한 진술일 뿐, 결론이 아니다.

순서대로 검증한다(자세한 내용은 '검증 체크리스트' 참조):

  1. 산출물이 존재하는가: 파일이 실제로 있는가? 경로가 올바른가? 실제 내용을 확인한다.
  2. 산출물이 규격에 맞는가: 형식, 필드, 줄 수, 범위가 작업 지시 요구사항을 충족하는가?
  3. 결론에 증거가 있는가: 주장된 주요 숫자/결론에 해당하는 명령어 출력 또는 출처가 있는가?
  4. 원문 샘플링: 무작위로 1-2곳을 선택하여 원본 출처와 대조 확인한다.

어느 하나라도 통과하지 못하면 → 5단계의 실패 처리 절차를 따른다.

완료 판단 기준

  • 각 하위 에이전트의 산출물을 플랫폼의 파일 읽기/실행 도구를 사용하여 실제로 다시 읽었는가(Hermes에서는 read_file / terminal)
  • 형식과 필드가 작업 지시 요구사항을 충족하는가
  • 주요 결론에 추적 가능한 증거가 있는가
  • 적어도 한 곳은 원문을 샘플링하여 하위 에이전트의 주장과 일치하는지 확인했는가
  • 실패/부적격 산출물이 명확히 표시되었으며, 최종 결과에 섞이지 않았는가

5단계: 마무리

사용자에게 요약할 때는 다음 세 가지를 반드시 수행해야 한다:

  • 출처 표시: 어떤 부분이 하위 에이전트에 의해 수행되었고, 어떤 부분이 직접 수행되었는지. 사용자는 알 권리가 있다.
  • 상태 표시: 어떤 것이 검증되었는지, 어떤 것이 검증되지 않았는지, 어떤 것이 실패했는지. '대략', '아마도'와 같은 모호한 표현을 사용하지 않는다.
  • 다음 단계 제시: 사용자가 결정해야 할 부분을 명확히 제시한다.

실패 처리(우선순위 순):

  1. 직접 수행으로 다운그레이드 - 작업이 실제로 크지 않다면 직접 처리한다.
  2. 경로 변경 재위임 - 실패 원인을 새 작업 지시에 포함하고, 다른 방법으로 재시도한다.
  3. 분할 재위임 - 작업 지시가 너무 커서 잘못된 방향으로 갔다면, 더 작게 분할하여 재위임한다.
  4. 사실대로 보고 - 실행할 수 없으면 실행할 수 없다고 말하고, 장애 지점과 이미 제외된 경로를 명확히 설명한다. 결과를 지어내는 것은 허용되지 않는다.

완료 판단 기준

  • 요약에 각 부분의 출처(하위 에이전트/주 에이전트)가 표시되었는가
  • 요약에 각 부분의 검증 상태가 표시되었는가
  • 실패한 작업이 처리되었는가(직접 수행/재위임/사실대로 보고), 은폐되지 않았는가
  • 사용자 결정이 필요한 사항이 별도로 나열되었는가
  • 확인되지 않은 내용이 사실로 적혀 있는 문장이 없는가

위임 4요소

각 작업 지시에는 반드시 이 네 가지가 포함되어야 한다. 하나라도 빠지면 사고 확률이 현저히 증가한다.

1. 목표(goal) — 무엇을 할 것인가

한 문장으로 목표를 명확히 설명하고, 동사로 시작하고 결과 지향적이어야 한다.

  • 좋은 예: 3개의 CSV 파일을 중복 제거하여 combined.csv로 병합하고, 원래 열 순서 유지
  • 나쁜 예: 이 파일들 좀 처리해

2. 배경(context) — 왜 하는지, 무엇을 근거로 하는지 (반드시 자체 포함)

이것은 4요소 중 가장 쉽게 잘못 작성되는 요소이다. 이유는 간단하다:

하위 에이전트는 사용자와의 대화 기록을 볼 수 없다. 당신이 작업 지시에 쓴 것만 알 수 있다. 당신 머릿속의 배경(사용자의 선호도, 이전에 겪었던 문제, 특정 솔루션을 사용할 수 없는 이유, 데이터의 범위)을 전혀 받을 수 없다.

따라서 컨텍스트에는 반드시 명시적으로 작성해야 한다:

  • 작업 배경: 이 작업이 어떤 목표에 기여하는지, 사용자가 무엇을 중요하게 생각하는지.
  • 하드 제약 조건: 반드시 준수해야 하는 범위, 형식, 명명 규칙, 금지 사항.
  • 입력 목록: 구체적인 파일 경로/디렉토리/URL/데이터셋. '그 파일들'이라고 쓰지 않는다.
  • 알려진 함정: 이전에 시도했던 것 중 실패한 것, 함정이 있는 곳, 오해하기 쉬운 부분.
  • 환경 정보: 작업 디렉토리, 사용 가능한 도구, 종속성 설치 여부.

자체 점검 방법: 작업 지시를 선행 지식이 전혀 없는 동료에게 보냈을 때, 그대로 따라 할 수 있는가? 할 수 있다면 자체 포함된 것이다.

3. 출력 구조(output schema) — 산출물의 형태

산출물의 구조를 명확히 지정하여, 결과를 받은 후 다시 가공할 필요가 없도록 한다.

  • 파일 유형: 경로 + 파일 이름 + 형식(markdown / json / csv) + 필수 필드 또는 섹션.
  • 보고서 유형: 요구되는 구조(결론 / 증거 / 출처 / 미해결 항목)로 보고하도록 하고, 산문 형식이 아님.
  • 기계 판독 가능 우선: json을 제공할 수 있다면 자유 텍스트보다 우선한다. 2차 구문 분석 시간을 절약할 수 있다.
  • 플랫폼이 출력 검증(스키마에 따른 하위 에이전트 응답 검증)을 지원한다면 활성화하고, 지원하지 않으면 작업 지시 본문에 구조를 다시 설명하고 '이 구조에 따라 보고하라'고 요구한다.

4. 검증 방식 — 어떻게 성공을 증명할 것인가

미리 어떤 식으로 검증할지 알려주면, 하위 에이전트는 그에 따라 작업한다. 나중에 증거가 없음을 발견하면 다시 작업해야 한다.

  • 실제로 실행된 명령어와 출력을 보고하도록 요구한다('내가 확인했다'가 아님).
  • 산출물 경로를 직접 다시 읽을 수 있어야 한다.
  • 미완료/의심스러운 부분을 명확히 나열하도록 요구한다. 스스로 자백하는 것이 나중에 적발되는 것보다 낫다.

4요소 빠른 참조표

요소한 마디일반적인 결함
목표무엇을 할 것인가, 결과 지향너무 모호: '자료 정리해'
배경배경 + 제약 조건 + 입력 목록 + 알려진 함정목표만 쓰고 배경 누락, 하위 에이전트가 제멋대로 작업
출력 구조산출물 경로, 형식, 필드경로 미지정, 산출물이 흩어져 찾을 수 없음
검증 방식어떤 명령어/기준으로 판단할 것인가판단 기준 없음, '괜찮은 것 같아'로 통과

검증 체크리스트

모든 하위 에이전트 산출물에 대해 항목별로 확인한다. 하나라도 '아니오'면 완료로 간주하지 않는다.

A. 존재성

  • 산출물 파일이 작업 지시에 지정된 경로에 실제로 존재하는가(플랫폼의 파일 읽기/실행 도구로 실제 측정, 파일 이름만 보지 않음)
  • 파일이 비어 있지 않으며, 내용이 플레이스홀더/템플릿 잔재/명백한 잘림이 아닌가
  • 코드나 스크립트인 경우: 실제로 실행 가능한가('보기에는 맞는 것 같다'가 아님)

B. 규정 준수

  • 형식, 필드, 명명이 작업 지시 요구사항을 충족하는가
  • 수량이 일치하는가(10개를 요구했으면 10개, '대략 8개'가 아님)
  • 범위를 벗어나지 않았는가: 수정해서는 안 되는 파일을 수정하지 않았는가, 작업 지시 외 위치에 쓰지 않았는가
  • 병렬 작업 간에 서로 덮어쓰지 않았는가(파일 수정 시간/내용 무결성 확인)

C. 진위성

  • 하위 에이전트가 실행했다고 주장하는 명령어에 해당하는 실제 출력이 있는가
  • 주요 결론이 특정 출처(파일, URL, 명령어 결과)로 추적 가능한가
  • 무작위로 1-2곳을 선택하여 원본 출처와 대조 확인, 결론이 일치하는가
  • '그럴듯해 보이지만 출처를 찾을 수 없는' 숫자나 진술이 없는가

D. 완전성

  • 작업 지시가 요구한 모든 항목이 제출되었는가
  • 미완료/의심스러운 부분이 적극적으로 나열되었는가, 숨겨지지 않았는가
  • 실패 항목에 명확한 설명이 있는가(어디서 잘못되었는지, 무엇을 시도했는지)

E. 요약 전 최종 확인

  • 사용자에게 답변할 때 각 부분의 출처와 검증 상태를 표시했는가
  • 하위 에이전트의 '자체 성공 보고'를 '완료'로 간주하여 결론에 쓰지 않았는가

6가지 위임 패턴

패턴 1: 단일 병렬 위임 (Fan-out)

여러 독립적인 단위를 동시에 위임한다. 모든 단위가 완료될 때까지 기다린 후 병합한다.

적용: 여러 파일을 각각 처리, 여러 URL을 각각 가져오기, 여러 데이터셋에 대해 동일한 변환 수행.

패턴 2: 파이프라인 위임 (Pipeline)

A → B → C 순서로 실행하며, 각 단계의 산출물을 다음 단계의 입력으로 전달한다.

적용: 데이터 추출 → 정제 → 변환 → 적재.

패턴 3: 브로드캐스트 위임 (Broadcast)

동일한 작업 지시를 여러 하위 에이전트에 동시에 보내고, 모든 결과를 수집하여 비교/투표한다.

적용: 여러 가지 다른 방법으로 동일한 질문에 답하고 최적의 답변 선택, 보안 검토.

패턴 4: 조건부 위임 (Conditional Dispatch)

하위 에이전트의 결과에 따라 다음 단계를 결정한다. if-else와 유사하게 작동한다.

적용: 결과에 따라 다른 처리가 필요한 시나리오.

패턴 5: 라운드 로빈 위임 (Round-Robin Dispatch)

일련의 작업을 순서대로 여러 하위 에이전트에 분배한다.

적용: 작업이 완전히 동일하지만 입력 데이터가 다른 경우.

패턴 6: 감독 위임 (Supervisor Dispatch)

하나의 하위 에이전트를 '감독자'로 지정하여 다른 하위 에이전트의 작업을 조정하고 감독한다.

적용: 작업이 복잡하고 여러 측면이 조정되어야 하는 경우.


12가지 안티 패턴

안티 패턴 1: 제정신이 아닌 병렬화 (Insane Parallelization)

실제로 의존성이 없는 작업이라도, 병렬 실행 비용(지시 전송 오버헤드, 결과 병합 복잡성)이 직접 수행하는 것보다 높은 경우가 있다.

규칙: 작업이 2-3회 미만의 도구 호출로 완료될 수 있다면 직접 수행하는 것이 낫다.

안티 패턴 2: 유령 위임 (Ghost Delegation)

위임 호출을 보냈지만 실제로는 실행되지 않았거나, 확인 없이 완료된 것으로 간주했다.

규칙: 모든 위임은 반드시 확인하고 검증한다.

안티 패턴 3: 원격 현미경 (Remote Microscope)

하위 에이전트가 매우 세부적인 작업(예: 파일 내에서 특정 문자 하나 변경)을 처리하도록 요청하면 실행 오버헤드가 실제 이점보다 커진다.

규칙: 분할의 최소 입도는 도구 호출 2-3회에 해당하는 작업이어야 한다.

안티 패턴 4: 완료 보고를 결과로 혼동 (Confusing Completion Report with Result)

하위 에이전트가 '완료'했다는 메시지를 받고는 내용을 확인하지 않는다. 이는 가장 흔하고 위험한 실수 중 하나이다.

규칙: 하위 에이전트가 '완료'했다는 것은 단지 주장일 뿐이며, 반드시 실제 산출물을 확인해야 한다.

안티 패턴 5: 하위 에이전트에게 사용자와 대화하도록 요청 (Asking Subagent to Talk to User)

하위 에이전트는 사용자와 대화할 수 없다. 사용자에게 질문이 필요한 작업은 주 에이전트가 직접 처리해야 한다.

규칙: 사용자 결정, 사용자 확인, 사용자와의 상호 작용은 주 에이전트가 직접 처리한다.

안티 패턴 6: 컨텍스트 단절 (Context Gap)

작업 지시에 배경 정보를 제공하지 않아 하위 에이전트가 잘못된 방향으로 작업한다. 하위 에이전트는 사용자와의 대화 기록을 볼 수 없으며, 당신이 제공하는 정보만 알 수 있다.

규칙: 컨텍스트는 반드시 자체 포함되어야 한다. 하위 에이전트가 작업을 시작하기 전에 알아야 할 모든 정보를 제공한다.

안티 패턴 7: 파일 쓰기 경쟁 (File Write Race)

두 하위 에이전트가 동시에 동일한 파일에 써서 내용이 서로 덮어쓰여진다.

규칙: 각 하위 에이전트는 자신만의 출력 파일에 쓰고, 마지막에 주 에이전트가 병합한다.

안티 패턴 8: 사용자 결정 권한 침범 (User Decision Boundary Violation)

사용자 결정이 필요한 작업을 하위 에이전트에 위임하고, 잘못된 결정이나 되돌릴 수 없는 결과를 초래한다.

규칙: 사용자 결정, 되돌릴 수 있는 작업, 즉각적인 감독이 필요한 작업은 하위 에이전트에 위임하지 않는다.

안티 패턴 9: 장기 작업을 하위 에이전트에 위임 (Long Task Delegation)

하위 에이전트는 현재 세션 동안만 존재한다. 세션을 넘어서는 작업(크론 작업, 지속적인 모니터링, 상주 프로세스)을 하위 에이전트에 위임하면 작업이 갑자기 중단될 수 있다.

규칙: 세션을 넘어서는 작업은 플랫폼의 크론 작업/예약 작업/백그라운드 프로세스 메커니즘을 사용한다.

안티 패턴 10: 결과 지어내기 (Fabricating Results)

하위 에이전트가 잘못된 결과나 부정확한 요약을 반환했지만, 주 에이전트가 직접 확인하지 않고 보고된 내용을 그대로 기록한다.

규칙: 확인되지 않은 결과는 절대 '확인됨'으로 표시하지 않는다. 실패는 실패로 보고한다.

안티 패턴 11: 과도한 단일 위임 (Overly Large Single Delegation)

너무 많은 작업(여러 개의 관련 없는 하위 작업)을 하나의 하위 에이전트에 위임한다. 결과적으로 하위 에이전트가 과부하되어 실행 시간이 길어지고 방향을 잃기 쉽다.

규칙: 각 하위 에이전트는 하나의 명확한 작업을 처리해야 한다. 너무 많은 것을 한 번에 위임하지 않는다.

안티 패턴 12: 중간 성과물 무시 (Ignoring Intermediate Results)

하위 에이전트의 중간 산출물이나 부분 결과를 무시하고 최종 결과만 기다린다. 중간에 문제가 발생하면 전체가 실패한다.

규칙: 하위 에이전트의 중간 진행 상황과 부분 결과를 정기적으로 확인한다. 특히 장기 실행 작업의 경우.


도구 이름 대응표 (일반 플랫폼)

개념Claude CodeCodexCursorWorkBuddyHermes (참고)
위임 호출 / 하위 에이전트subagentdelegate_taskagentsub_taskdelegate_task
파일 읽기readread_fileread_fileread_docread_file
명령어 실행runterminalrunexec_cmdterminal
정규 작업 / 크론 작업schedulecron_jobschedulerschedule_taskcron_task
백그라운드 모드backgroundasyncbgbackground_rundelegate_task (비동기)
동시 실행 상한 (권장)5355구성 가능 (기본 3)

참고: 특정 플랫폼의 실제 함수 이름, 매개변수 및 동시 실행 제한이 다를 수 있습니다. 이 표는 매핑 참고용이며, 구체적인 구현은 각 플랫폼의 공식 문서를 참조하십시오.


부록: delegation_planner.py 스크립트 사용 방법

이 스크립트는 순수 표준 라이브러리만 사용하며 종속성이 없습니다. 명령줄에서 직접 실행하거나 주 에이전트가 호출할 수 있습니다.

python scripts/delegation_planner.py

스크립트를 실행하면 대화형 입력 프롬프트가 나타나며, 각 작업에 대해 다음 정보를 입력합니다:

  1. 작업 설명: 작업의 간단한 설명(선택 사항이지만 권장).
  2. 예상 도구 호출 횟수: 이 작업을 완료하는 데 필요한 도구 호출 횟수.
  3. 처리할 파일 수: 작업과 관련된 파일 수.
  4. 연구 필요 여부: 이 작업은 장기 연구/검색이 필요한가? (y/n)
  5. 배치 처리 여부: 이 작업은 배치 처리인가? (y/n)
  6. 사용자 결정 필요 여부: 이 작업을 완료하는 데 사용자의 결정이 필요한가? (y/n)
  7. 되돌릴 수 있는지 여부: 이 작업의 결과를 되돌릴 수 있는가? (y/n)
  8. 세션 초과 필요 여부: 이 작업이 현재 세션을 넘어서 지속되어야 하는가? (y/n)

스크립트는 의사 결정 트리 결과를 출력합니다:

  • 처리 방법:
    • 위임 - 하위 에이전트에 위임하는 것이 좋습니다.
    • 직접 수행 - 주 에이전트가 직접 처리하는 것이 좋습니다.
    • 정기 작업 전환 - 정기 작업/크론 작업 메커니즘을 사용하는 것이 좋습니다.
  • 병렬 실행 그룹화 제안: 여러 작업을 병렬로 위임하는 방법에 대한 제안입니다.
  • 주 에이전트 작업 목록: 주 에이전트가 직접 처리해야 하는 작업(분해, 위임, 검증, 마무리 등)을 나열합니다.

예시

$ python scripts/delegation_planner.py
작업 1 설명: 세 개의 마크다운 파일을 읽고 각각 요약합니다.
예상 도구 호출 횟수: 3
처리할 파일 수: 3
연구 필요 여부 (y/n): n
배치 처리 여부 (y/n): n
사용자 결정 필요 여부 (y/n): n
되돌릴 수 있는지 여부 (y/n): y
세션 초과 필요 여부 (y/n): n

작업 2 설명: 설정 파일을 업데이트하고 MySQL 데이터베이스를 다시 시작합니다.
예상 도구 호출 횟수: 5
처리할 파일 수: 2
연구 필요 여부 (y/n): n
배치 처리 여부 (y/n): n
사용자 결정 필요 여부 (y/n): n
되돌릴 수 있는지 여부 (y/n): n  # MySQL 다시 시작은 되돌리기 어려울 수 있음
세션 초과 필요 여부 (y/n): n

=== 계획 보고서 ===
작업 1: 세 개의 마크다운 파일을 읽고 각각 요약합니다.
  처리 방법: 위임
  병렬 실행 제안: 하위 에이전트 3개를 각각의 파일에 위임(병렬)
  주 에이전트: 각 하위 에이전트의 산출물이 존재하고 올바른지 검증하고, 최종 요약을 병합하여 사용자에게 보고합니다.

작업 2: 설정 파일을 업데이트하고 MySQL 데이터베이스를 다시 시작합니다.
  처리 방법: 직접 수행
  이유: 되돌리기 어려운 작업(MySQL 다시 시작)이므로, 주 에이전트가 직접 처리하고 결과를 확인하는 것이 좋습니다.
  병렬 실행 제안: 해당 없음
  주 에이전트: 직접 수행합니다.

전체 제안:
- 작업 1은 위임하는 것이 좋습니다. 하위 에이전트를 3개 사용하여 각각의 파일을 처리하고, 주 에이전트는 검증, 병합, 보고합니다.
- 작업 2는 주 에이전트가 직접 처리하는 것이 좋습니다.
- 작업 1과 작업 2는 병렬로 실행할 수 있습니다.

Individual skills in this repo

This repo contains 17 individual skills — each has its own dedicated page.

lingyu9495-source/agent-responsiveness-delegation

你给 AI 助手派了个重活,然后发现:发消息它不回、想插话只能排队、等十几分钟才回一句——等它抬头,需求早变了。根因不是模型慢,是主脑把重活放在前台跑,整个回合被占死。这个 Skill 把这套「重活外派 + 随时应答」机制做成可落地的东西:① 规则块(一页写清判级、派完立刻让出对话、工单四要素、只回收结论、自报≠事实、拍板留主脑、跨会话任务换机制)② 跨平台落地脚本 provision_agent_responsiveness.py:探测本机已有的 Agent 环境(Hermes 的 SOUL 置顶铁律块、Claude Code 的全局指令文件,这两条已实测),把规则块幂等写入(自动备份原文件、重复执行不重复写、绝不覆盖你已有内容);其余平台(Codex / Cursor / WorkBuddy / 任意 Agent)则导出一份可直接粘贴的规则块 markdown,你粘到系统提示或自定义指令里就生效 ③ 体检脚本 audit_agent_responsiveness.py:逐项核对规则块是否存在、是否被后续改动覆盖、探测到哪些平台——没检测到就如实报「未检测到支持的平台」,不假报通过。纯标准库、零依赖、Windows/macOS/Linux 通用。触发词:AI不回话、等太久、插话卡住、助手响应慢、主脑被占住、重活外派、子代理、多智能体、响应速度、落地配置、系统提示。

lingyu9495-source/ai-image-watermark-removal-boss

去除 AI 生成图角落的"XXAI生成"半透明/白色角标水印。像素级验证不自我欺骗、双信号交叉定位抗幻觉、多候选客观指标投票覆盖。当用户要求去除图片水印、清理 AI 生成角标、去"豆包/即梦/Kolors 生成"水印时使用。

lingyu9495-source/bank-scan-household-splitter

客户丢来一个压缩包,里面几百张身份证正反面、开卡申请书、合同——**人工一张张挑,一下午就没了,还容易漏**。

lingyu9495-source/cn-pdf-report-typeset

中文报告做成 PDF,常见翻车三件套:**字体乱码、表格错位、字号小到客户在手机上根本看不清**。这套是交付级的排版标准加可直接跑的模板。

lingyu9495-source/company-law

公司出事,十有八九出在**治理和控制权**上——股权结构一开始搭歪,后面融资、上市、分家全是坑。

lingyu9495-source/excel-keep-format-edit

客户拿来一张老报表说「就在原表上改个数,格式一点都不要动」——用 openpyxl 重建一次,字体、边框、合并单元格、条件格式、列宽全丢,客户一打开就知道这不是他原来那张表。

lingyu9495-source/feasibility-report-engine

做可研报告,卡住的往往不是不会写,是**不知道按哪版大纲、财务测算六表和正文对不上、交付前排版被退稿**。这套是从二十多万字、131 张表的真实交付里固化的流水线。

lingyu9495-source/feasibility-study-consultant

项目可行性论证与研究报告写作框架 —— 任何「这事能不能做、怎么做、值不值得做」的商业决策场景:可行性研究/立项论证/新项目评估/创业方向验证。10大论证模块 + 强制联网尽调 + 多源交叉验证 + 读者视角写作 + 结构化报告输出。(v1.4 升级:从「引导客户把项目情况讲清楚」到「按问题类型与项目类型选论证方法」再到「用假设台账逐条验证」的六步教练流程;附可行性门槛评分器与假设台账两个零依赖脚本、项目卡与决策门清单模板)

lingyu9495-source/financial-statement-adjustment

存量财务报表在原表基础上改数字并保持三表勾稽关系。当用户要求「在原报表上改某些数字,其他数据跟着调整且格式完全不变」时使用:资产负债表/利润表/现金流量表的目标值调整、未分配利润与利润总额联动、勾稽校验。

lingyu9495-source/funding-fit-diagnosis

项目想融资,卡住的往往不是不会写 BP,而是不知道够不够格、该找谁、还缺什么、多久能到钱——问 AI 只得到"建议加强团队"这类正确的废话。这套引擎把它拆成可执行的四步:①10 问项目画像采集(缺关键项就先追问,不猜)②双轨评分:市场化 VC 适配分与政府基金适配分**分开算、各自判定**(≥75 强匹配 / 60-74 可争取 / 45-59 需补短板 / <45 暂不建议,低分不许只说"不行",要给替代路径)③点名机构:按赛道/阶段/地域从 23 家头部 VC 与产业资本(CVC)、21 家政府基金的卡片里逐条对照"匹配信号/劝退信号",每家写清"为什么是你、你还缺什么、材料怎么准备、递送路径",并单列"不建议碰"的机构省时间④差距清单(差距|补齐动作|耗时|难度|优先级,只挑 3 个月内能推动的)+ 三线找钱路线图(市场化 / 政府 / 替代路径)+ 时间预期与现金流提醒。包内另附 30 个真实融资案例对标、TS 条款红线、估值倍数参考、BP 制作铁律,以及零依赖离线评分脚本(纯标准库、不联网、不调大模型 API)。输入:项目情况(照着 10 问答即可);输出:一份研判报告(评分 + 优先接触名单 + 差距清单 + 路线图 + 风险提示),脚本侧可另出 JSON 评分结果。评分是适配度不是成功率,不承诺融资结果。触发词:融资、找投资、融资研判、能不能融到钱、找哪家风投、风险投资、VC、产业资本、CVC、政府引导基金、政府基金申报、产业基金、招商返投、项目申报、补贴申报、商业计划书、BP、路演、估值、股权稀释、TS 条款、对赌、回购、FA、财务顾问、找钱、融资渠道、天使轮、Pre-A、A轮。

lingyu9495-source/gov-fund-application

想拿政府的钱,最容易白跑半年——层级选错、赛道不在目录里、返投算不清,材料递上去才发现方向不对。这套参谋按可执行顺序走:①先判层级(国家级/省级/市级/区级,门槛与目的完全不同)②赛道对目录:不在目录里直接如实说没戏,不让用户白跑③21 家基金卡片逐家对照(投资方式、返投比例、让利规则、申报条件、申报通道、真实案例),点名"你这个项目适合找谁"④返投博弈:算清落地要求,给"不想迁注册地"的三条合规路径⑤材料与时间表:申报材料清单、评审周期(6-12 个月是常态)与现金流提醒。与主技能 `funding-fit-diagnosis` 配套(做整体融资研判时用主技能,VC 与政府双轨分开算)。输入:项目基本情况与注册地/落地意愿;输出:层级判定 + 可申报基金名单 + 返投方案 + 材料清单 + 时间预期。不承诺拿到资金,申报须如实提交材料;政策口径标注截止时间,细则请向当地主管部门核实。触发词:政府基金、政府引导基金、产业基金、政府补贴、专项资金、项目申报、补贴申报、申报条件、返投、招商落地、母基金、投资方式、让利、国家级基金、省级引导基金、市级基金、科技成果转化、专精特新、科技型企业、中小企业发展基金。

lingyu9495-source/hermes-profile-browser-isolation

多个 AI 助手同时干活时,浏览器会互相抢占:弹窗抢焦点、任务互相打断、你正在用的 Chrome/Edge 被顶掉——**你连自己的网页都点不动了**。

lingyu9495-source/investment-finance

做投融资最容易踩的坑不是"不懂概念",是**条款里的每一个字都在分钱**——估值方法选错、对赌触发条件写松、回购条款没兜底,签完才发现少拿几千万。

lingyu9495-source/lowvram-ai-video-comfyui

网上的 AI 视频教程开口就是 24G 显存,一看就把人劝退——**其实 8G 的 4060 也能跑**。这套是 RTX 4060 Laptop 8G 显存 / 32G 内存 / Win11 上真跑出来的配置与调参。

lingyu9495-source/novel-deai-detector

写完的稿子发布前想知道会不会被判 AI 生成、平台审核会不会卡、读者会不会一眼看出机器味——这套是检测到清洗的完整闭环。

lingyu9495-source/npl

不良资产这行的钱,赚在**买入价**上——买贵了,后面怎么处置都白搭。

lingyu9495-source/ts-term-review

拿到 TS 或投资协议,看半天不知道哪条能签哪条得改——风险全藏在具体条目里,一句"整体没大问题"最要命。这套审查按 15 条核心条款逐条过:估值 Pre/Post、清算优先权、反稀释(完全棘轮是红线)、优先购买权、领售/拖售、对赌与业绩承诺、回购条款、个人连带担保、董事会与一票否决、保护性条款、竞业与知识产权、信息权、交割条件、股东会表决权、违约责任。每条给三级判定(🔴 红线不改就别签 / 🟡 可谈争取改 / 🟢 行业惯例)+ 谈判话术 + 替代方案,并区分"对公司"和"对创始人个人"——个人连带回购是绝大多数血案的源头,重点标红。另附谈判筹码排序、常见坑清单、BP 与数据室准备。与主技能 `funding-fit-diagnosis` 配套(做整体融资研判时用主技能)。输入:TS/投资协议条款(粘贴或描述);输出:逐条判定表 + 必须改的清单 + 谈判话术 + 底线建议。**不构成法律意见**,正式签署与司法效力请找执业律师确认。触发词:TS、Term Sheet、投资条款清单、投资协议、增资协议、股权转让协议、对赌、业绩承诺、回购、清算优先权、反稀释、完全棘轮、个人连带、一票否决、领售权、拖售权、估值、Pre/Post、股权稀释、条款谈判、FA。

관련 스킬