서브에이전트
서브에이전트는 자신만의 컨텍스트와 권한으로 특정 작업을 처리하는 전문 AI입니다. 메인 에이전트가
task도구로 호출하며, 긴 탐색이나 독립적인 조사를 맡기고 결과만 받아 옵니다.
서브에이전트를 쓰면 다음과 같은 이점이 있습니다.
- 컨텍스트 보존: 탐색·조사 과정이 별도 세션에서 일어나므로 메인 대화의 컨텍스트가 커지지 않습니다.
- 권한 분리: 읽 기 전용 에이전트처럼 도구를 제한한 전문 에이전트를 만들 수 있습니다.
- 병렬 작업: 독립적인 작업을 한 번에 여러 서브에이전트에게 맡길 수 있습니다.
- 전문화: 시스템 프롬프트, 모델, 설명을 에이전트별로 다르게 줄 수 있습니다.
注記
헬피코드는 에이전트 기능을 자체 구현하지 않고, 번들된 AI 엔진의 기능을 그대로 사용합니다. 이 문서의 에이전트 정의 규칙은 그 엔진의 소스 코드를 기준으로 작성했습니다.
기본 제공 에이전트
| 에이전트 | 유형 | 설명 |
|---|---|---|
build | primary (기본) | 기본 에이전트. 설정된 권한에 따라 모든 도구를 사용합니다. 사용자에게 질문(question), 계획 모드 진입, 서브에이전트 호출을 할 수 있습니다. |
plan | primary | 계획 모드. 파일 편집 도구를 모두 막고, 계획 파일만 쓸 수 있습니다. 헬피코드에서는 /plan으로 다음 메시지 한 번에 사용합니다. general 서브에이전트는 호출할 수 없습니다. |
general | subagent | 복잡한 질문 조사와 여러 단계 작업을 위한 범용 에이전트. 여러 작업 단위를 병렬로 실행할 때 씁니다. todowrite는 막혀 있습니다. |
explore | subagent | 코드베이스 탐색 전용 에이전트. 파일 패턴 검색, 키워드 검색, 코드 질문 답변에 쓰며, 호출할 때 철저함 수준(quick / medium / very thorough)을 지정합니다. 읽기 전용이며 bash, webfetch, websearch는 사용자 정책에 따라 묻습니다. |
compaction | 숨김 | /compact 요약을 만듭니다. 모든 도구가 막혀 있습니다. |
title | 숨김 | 대화 제목을 만듭니다. |
summary | 숨김 | 요약을 만듭니다. |
reasoning-summary | 숨김 | 원시 추론 대신 보여 줄 짧은 의도 문장을 만듭니다(엘리스 추가). |
숨김 에이전트는 직접 선택하거나 호출할 수 없습니다.
서브에이전트가 호출되는 방식
AI가 task 도구를 호출합니다. 사용자는 보통 평소처럼 요청하면 되고, 어떤 서브에이전트를 쓸지는 에이전트의 description을 보고 AI가 선택합니다.
explore 서브에이전트로 결제 모듈의 호출 흐름을 조사한 다음, 결과를 요약해줘
리뷰어 서브에이전트로 내 변경사항을 검토해줘
task 도구의 입력
| 입력 | 설명 |
|---|---|
description | 작업의 짧은 설명(3~5 단어). 자식 세션 제목은 "{설명} (@{에이전트} subagent)"가 됩니다. |
prompt | 서브에이전트가 수행할 작업. 서브에이전트는 이전 대화를 모르므로 상세하게 쓰고, 무엇을 돌려줘야 하는지 명시해야 합니다. |
subagent_type | 사용할 서브에이전트 이름 |
task_id | (선택) 이전 작업의 task_id를 넘기면 새로 시작하지 않고 그 서브에이전트의 세션을 이어서 실행합니다. |
background | (선택) 백그라운드 실행. 실험 기능으로 기본은 꺼져 있습니다. |
동작 규칙은 다음과 같습니다.
- 독립적인 작업은 한 메시지에서 여러
task를 호출해 병렬 실행합니다. - 서브에이전트의 응답은 사용자에게 직접 보이지 않습니다. 메인 에이전트가 요약해서 전달합니다.
- 이미 알고 있는 파일을 읽거나 특정 심볼을 찾는 일에는 서브에이전트 대신 일반 도구를 쓰도록 안내됩니다.
- 중첩 제한: 기본적으로 서브에이전트는 다시 서브에이전트를 호출할 수 없습니다(
subagent_depth기본값 1). 설정으로 늘릴 수 있습니다.
사용자 정의 서브에이전트
마크다운 파일 하나가 에이전트 하나입니다. 파일 이름이 에이전트 이름이 되고, 본문이 시스템 프롬프트가 됩니다.
파일 위치
| 범위 | 위치 |
|---|---|
| 프로젝트 | <프로젝트>/.opencode/agents/<이름>.md (agent/ 폴더도 인식) |
| 사용자 전역 | 앱 설정 홈의 opencode/agents/<이름>.md |
- 하위 폴더도 읽습니다(
agents/team/reviewer.md→team/reviewer). - 헬피코드는 엔진의 설정 홈을 앱 전용 폴더로 옮겨 쓰므로 전역 위치는
~/.config/opencode/agents가 아닙니다.
| 환경 | 전역 에이전트 폴더 |
|---|---|
| 데스크톱 | <앱 데이터 폴더>/opencode/config/opencode/agents/ |
| 런박스 | ~/.helpycode/opencode/config/opencode/agents/ |
注記
프로젝트의 .opencode/agents/를 사용할 수 있습니다.
설정 파일의 agent 항목으로도 정의할 수 있습니다. 같은 이름이 있으면 기본 에이전트의 설정에 덮어씌워집니다.
예시
---
description: 변경사항을 읽고 버그와 가독성 문제를 지적하는 코드 리뷰어. 코드를 수정하지 않는다.
mode: subagent
permission:
edit: deny
bash:
"git diff*": allow
"git log*": allow
"*": ask
---
당신은 코드 리뷰어입니다. 변경사항을 읽고 다음 순서로 보고하세요.
1. 버그 가능성
2. 보안 문제
3. 가독성과 유지보수성
파일을 수정하지 말고, 발견한 문제를 우선순위 순으로 정리해 주세요.