
OpenCode를 과소평가하고 있었습니다. 그러다 그 에이전트(Agents)들을 발견했죠
요약
코딩 에이전트인 OpenCode의 에이전트 기능과 구조를 상세히 분석합니다. 기본 에이전트와 서브 에이전트의 역할 분담, 그리고 사용자 정의 에이전트 생성 방법을 설명합니다.
핵심 포인트
- OpenCode는 계획(Plan)과 실행(Build)을 분리한 기본 에이전트를 제공합니다.
- General, Explore, Scout 등 특화된 서브 에이전트를 통해 작업을 위임할 수 있습니다.
- Explore와 Scout는 코드베이스 및 외부 문서를 조사하는 읽기 전용 에이전트입니다.
- JSON 또는 Markdown을 사용하여 프로젝트 맞춤형 에이전트를 직접 정의할 수 있습니다.
안녕하세요, Rijul입니다. 저는 모든 커밋마다 실행되는 마이크로 AI 코드 리뷰어인 git-lrc를 만들고 있습니다. GitHub에서 무료로 이용 가능하며 소스 코드가 공개되어 있습니다. 더 많은 개발자가 이 프로젝트를 발견할 수 있도록 git-lrc에 Star를 눌러주세요. 꼭 한번 사용해 보시고 피드백을 공유해 주세요.
OpenCode는 현재 이용 가능한 인기 있는 코딩 에이전트 (coding agents) 중 하나입니다.
저는 한동안 이를 데일리 드라이버 (daily driver)로 사용해 왔지만, 아직 탐색하지 못한 기능들이 여전히 많이 남아 있습니다.
이 글에서는 **OpenCode의 에이전트 기능 (agent functionality)**에 대해 살펴보겠습니다.
OpenCode에는 두 가지 유형의 에이전트가 있습니다:
- 기본 에이전트 (Primary agents)
- 서브 에이전트 (Subagents)
기본 에이전트 (Primary Agents)
이들은 사용자가 직접 상호작용하는 주요 에이전트입니다.
기본 에이전트에는 두 가지 유형이 있습니다:
Build
이것은 모든 도구가 활성화된 기본 에이전트입니다.
에이전트가 실제로 여러분의 코드베이스 (codebase)에서 작업을 수행하기를 원할 때 일반적으로 사용하는 방식입니다.
Plan
이 에이전트는 더 제한적입니다.
실제로 실행 모드 (execution mode)에 들어가기 전에 무언가를 반복적으로 계획하고 깊이 생각하고 싶다면, 이 에이전트를 사용할 수 있습니다.
핵심 아이디어는 계획 (planning)과 실행 (execution)을 분리하는 것입니다.
서브 에이전트 (Subagents)
서브 에이전트는 기본 에이전트가 특정 작업을 위해 호출할 수 있는 전문화된 어시스턴트 (assistants)입니다.
예를 들어, 기본 에이전트가 전체 코드베이스를 직접 탐색하는 대신, 그 작업을 전문화된 서브 에이전트에게 위임할 수 있습니다.
또한 @를 사용하여 이러한 전문화된 에이전트들을 직접 호출할 수도 있습니다.
OpenCode에는 세 가지 내장 서브 에이전트가 포함되어 있습니다.
General
연구 및 다단계 작업 (multi-step tasks)을 위해 설계된 범용 서브 에이전트입니다.
어느 정도의 조사나 여러 단계가 필요한 작업을 위임하고 싶을 때 사용할 수 있습니다.
Explore
이것은 코드베이스 탐색을 위해 설계된 **읽기 전용 에이전트 (read-only agent)**입니다.
예를 들어, 패턴을 기반으로 파일을 찾거나 프로젝트 전반에 걸쳐 무언가가 어떻게 구현되었는지 이해하고 싶다면 이 에이전트를 사용할 수 있습니다.
읽기 전용이기 때문에 변경 사항을 만들지 않고 코드베이스를 탐색할 수 있습니다.
Scout
Scout는 또 다른 읽기 전용 (read-only) 에이전트입니다.
이 에이전트는 외부 문서 (external documentation)를 조사하거나, 다른 저장소 (repository) 또는 업스트림 구현 (upstream implementation)과 같은 외부 코드를 비교하는 데 유용합니다.
따라서 현재 코드베이스 외부의 무언가를 조사해야 한다면 Scout가 유용할 수 있습니다.
OpenCode에서 자신만의 에이전트 만들기
OpenCode에서는 자신만의 에이전트를 직접 만들 수도 있습니다.
에이전트는 opencode.json에 JSON 형식을 사용하거나 Markdown 파일을 사용하여 정의할 수 있습니다.
글로벌 (global) 에이전트의 경우 다음 경로에 배치할 수 있습니다:
~/.config/opencode/agents/
프로젝트 특정 (project-specific) 에이전트의 경우 다음을 사용할 수 있습니다:
.opencode/agents/
예를 들어, copywriter.md 에이전트를 만들어 보겠습니다:
---
description: 명확하고 매력적이며 독자 중심적인 카피를 작성합니다
mode: subagent
...
이렇게 하면 특화된 **카피라이팅 에이전트 (copywriting agent)**가 생성됩니다.
그 후 다음과 같이 호출할 수 있습니다:
@copywriter
파일명이 에이전트 이름이 되므로, copywriter.md는 @copywriter가 됩니다.
여기서부터 상황이 흥미로워지기 시작합니다.
특정 작업을 어떻게 처리하고 싶은지 메인 에이전트에게 반복해서 설명하는 대신, 자체적인 지침 (instructions), 모델 (model), 온도 (temperature), 그리고 권한 (permissions)을 가진 특화된 에이전트를 만들 수 있습니다.
마무리
이상으로 OpenCode의 에이전트에 대해 알아보았습니다.
우리는 다음 내용을 살펴보았습니다:
- 기본 (Primary) 에이전트
- 빌드 (Build) 및 계획 (Plan) 모드
- 서브 에이전트 (Subagents)
- 내장된 General, Explore, Scout 에이전트
- 자신만의 커스텀 에이전트 만들기
OpenCode에는 탐색해 볼 가치가 있는 다른 여러 기능들이 있습니다.
이러한 기능들을 더 많이 이해할수록, 우리의 워크플로 (workflow)에 맞춰 OpenCode를 더욱 커스텀할 수 있습니다.
AI 에이전트(Agents)는 코드를 빠르게 작성합니다. 하지만 그들은 당신에게 알리지도 않은 채 조용히 로직을 제거하고, 동작을 변경하며, 버그를 유발하기도 합니다. 당신은 종종 이를 프로덕션(Production) 환경에서야 발견하게 됩니다.
git-lrc가 이 문제를 해결합니다. 이 도구는 git 커밋(commit)에 후킹(hook)하여, 변경 사항이 반영되기 전에 모든 디프(diff)를 검토합니다. 설정은 60초면 충분하며, 완전히 무료입니다.
모든 피드백과 기여자(contributors)를 환영합니다! 이 프로젝트는 온라인에 공개되어 있으며, 소스 사용이 가능(source-available)하여 누구나 바로 사용할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
