OpenCode Go가 저렴하고 가성비가 좋습니다.
현재의 방식은 Opus 5.5 (Claude Pro 월 $20)를 사용하여 계획을 세우고,
OpenCode Go의 월 $10 구독으로 DeepSeek V4.1 Flash를 저렴하게 확보하여
실행 부대로 활용해 주야를 가리지 않고 자동화하여 작동시키는 것입니다.
총합은 월 $30이 되지만, 그럼에도 불구하고 Max를 계약하는 것보다 저렴합니다.
하지만 OpenCode를 그대로 사용하면 하네스(harness) 자체의 성능이 그리 좋지 않습니다.
그래서 **DeepSeek Harness (dsh)**로 교체하면 다음과 같은 효과가 기대됩니다.
- 캐시 히트율(Cache hit rate)이 올라가 토큰을 절약할 수 있고
- 모델의 성능을 최대한으로 끌어낼 수 있으며
- 왠지 모르게 출력 속도마저 100 tok/s 이상으로 빨라지는 것 같습니다 (라는 소문도 있습니다).
이를 사용하면, 하나의 iOS 앱이라도 OpenCode + dsh만으로 단 몇 줄의 지시만으로 만들 수 있습니다.
구독료가 API 요금과 비교하여 얼마나 이득인지 보여주는 앱
자신이 원하는 논문이 한국어 번역 및 이미지/동영상과 함께 표시되는 앱
여기까지만 파악하면, 전부 읽을 필요는 없습니다. (애초에 자동화된 무언가를 시키기 위한 글이기 때문에, 사람이 시간을 들여 읽는 것은 본말전도입니다.)
만약 도입해보고 싶거나 일단 무료 프레임으로 시험해보고 싶다면, 이 글을 저장해 두고 나중에 이 기사 링크를 AI에게 던져서 하네스를 연결하는 단계까지 처리하도록 시키면 됩니다.
※이 글은 2026년 11월 시점의 환경에 대한 메모입니다. OpenCode Go의 요금, 제공 모델, 사용 상한 등은 변경될 수 있으니 공식 정보를 확인해 주십시오.
서론: 모든 것을 비싼 모델로 할 필요는 없다
솔직히 말해서, 저는 Opus 5.5를 신격화하지 않습니다. 계획을 세울 때나 실패 원인을 분석할 때는 정말 믿음직합니다. 하지만 모든 구현, 조사, 테스트, 문서 업데이트까지 Opus 5.5에게 맡기면, 청구서를 볼 때마다 '이 작업, 정말 Opus가 아니어도 됐던 건 아닐까?'라는 생각이 듭니다.
Opus 5.5는 비쌉니다. 비싸다는 것 자체는 나쁘지 않습니다. 나쁜 것은, 싸지 않아도 되는 일에 높은 모델을 계속 사용하는 것입니다. 연구원에게 서류 정리를 시키는 것과 같아서, 작업의 질은 올라가지 않는데 피로감만 증가합니다.
반면, 실제 코딩 작업의 상당 부분은 '적당히 똑똑하면 돌아가는' 종류의 일입니다. 설계 방향이 결정되어 있고, 변경 범위가 명확하며, 테스트 방법까지 정해져 있다면, Opus 5.5가 아니어도 충분히 싸울 수 있습니다. 오히려 그런 일을 Opus 5.5에게 맡기는 시간은 저에게는 사고의 중단에 불과합니다.
그래서 역할을 분담하기로 했습니다.
- 계획/분해/검토는 Opus 5.5 -
- 대량 구현/조사/테스트는 DeepSeek V4.1 Flash -
- 실행 하네스는 DeepSeek Harness (dsh) -
- DeepSeek V4.1 Flash의 공급원은 OpenCode Go (월 $10)
이 구성을 사용하면, 고가 모델은 '판단이 필요한 부분'에만 사용하고, 저가 모델로 '양이 필요한 부분'을 돌릴 수 있습니다. 게다가 dsh로 교체하면서 캐시 히트율과 디코드 속도가 빨라진 느낌을 받았습니다.
서브 에이전트를 여러 개 돌리고 있으면, 어느새 '이건 Opus에게 시킬 일인가?'라고 스스로 묻게 됩니다. 대부분의 대답은 No이고, No라고 말하면서도 Opus에 던지고 있기 때문에 지갑이 아픕니다.
이 글에서는 그 구성의 생각과 실제로 도입할 때의 절차를 정리합니다. 도입 과정에서 헷갈렸던 부분을 '사람이 할 작업'과 'AI에게 맡길 수 있는 작업'으로 나누고, 복사 붙여넣기용 프롬프트도 준비했습니다.
대상 독자
- AI 코딩의 토큰 비용을 줄이고 싶은 사람
- 고가 모델과 저가 모델의 사용 분배에 관심이 있는 사람
- OpenCode Go나 dsh를 시험해보고 싶은 사람
- 서브 에이전트를 대량으로 돌리는 워크플로우를 만들고 싶은 사람
결론: 이런 식으로 분담했습니다
| 역할 | 담당 | 이유 |
|---|
| 플래너 (Planner) | Opus 5.5 | 문제 설정, 태스크 분해, 설계 판단, 최종 검토 |
| ... | | |
| 처리 흐름은 다음과 같습니다. | | |
[Opus 5.5]
계획/태스크 분해/수용 조건 정의
|
...
핵심은 dsh를 플래너에게 맡기지 않는 것입니다. dsh는 실행 계층에만 전념하게 하고, 계획과 최종 판단은 Opus 5.5가 담당하도록 합니다. 이렇게 하면 저가 모델의 실패를 고가 모델로 쉽게 만회할 수 있습니다.
Opus 5.5가 '두뇌'이고 DeepSeek V4.1 Flash가 '실행 부대'인 이유
저는 벤치마크를 무조건적으로 신뢰할 생각은 없습니다. 하지만 'Opus가 더 똑똑한 것 같다'는 분위기만으로 모델을 선택하는 것은 더욱 싫습니다. 그래서 공개된 벤치마크로 확인했습니다. FrontierCS 2 (2026년 11월 4일 기준)는 컴퓨터 과학 논문의 주요 기여를 코드에서 추출하여 AI 에이전트가 재구현하고, 인간의 참조 구현을 모든 지표에서 능가할 수 있는지 겨루는 48개 과제의 벤치마크입니다.
| 모델 (하네스) | FCI | 통과율 | 추정 API 비용/과제 |
|---|
| Claude Opus 5.5 (Claude Code) | 51.2 | 58.3% (28/48) | 약 $20.0 |
| DeepSeek V4.1 Flash (DeepSeek Harness) | 28.4 | 12.5% (6/48) | 약 $0.11 |
FCI(FrontierCS Capabilities Index)는 능력 지수이며, 숫자가 클수록 어려운 과제를 통과하기 쉽다는 의미입니다. 10포인트 차이는 '지표를 능가할 오즈'가 약 2.7배가 된다는 뜻입니다. Opus 5.5와 DeepSeek V4.1 Flash의 차이는 22.8포인트이므로, 오즈로 따지면 약 10배에 달합니다. 정답이 하나로 결정되지 않는 설계 판단을 Opus 5.5에게 맡기는 것은 바로 이 격차 때문입니다.
반면에 API 비용은 약 187배 차이가 납니다. DeepSeek V4.1 Flash의 FCI는 Opus 5.5의 약 55%에 불과하지만, 과제당 약 $0.11의 API 비용으로 돌아가며, 하네스는 DeepSeek Harness (dsh)를 사용합니다. 설계가 결정되고 변경 범위와 테스트가 명확한 실행 과제의 경우, 이 단가 차이가 그대로 가성비의 차이로 이어집니다.
이는 신념의 문제가 아니라, 업무의 종류와 단가의 문제입니다. Opus 5.5 역시 통과율 58.3%로 만능은 아니므로, 플랜 최종 확인은 인간이 진행한다는 전제하에 읽어주시면 좋겠습니다.
연구 과제의 통과율을 그대로 실무 성공률로 해석하지 마십시오. 계획 능력만을 측정한 지표도 아닙니다. API 비용은 종량제 추정치이며, OpenCode Go의 월 $10 (Opus 포함 시 월 $30)과는 청구 형태가 다릅니다. 하네스 역시 Opus 쪽은 Claude Code, DeepSeek 쪽은 dsh로 통일되어 있지 않습니다.
본 기사 설정에서는 dsh의 프로바이더가 OpenCode Go뿐이므로, Opus 5.5는 dsh 외부(Claude Code나 웹 채팅)에서 구동됩니다. 플래너의 출력은 plan.md와 같은 파일에 저장하여 워커에게 전달합니다. 리뷰는 차분과 테스트 결과를 다시 Opus 5.5 쪽으로 되돌리는 방식으로 진행됩니다.
참고로, dsh에서 서브 에이전트를 어떻게 구동하는지는 버전에 따라 달라집니다. 여기서는 역할 분담과 설정에 초점을 맞추고, 구동 방법의 상세 내용은 생략합니다.
왜 OpenCode Go인가
OpenCode Go는 월 $10이라는 고정 비용으로 DeepSeek V4.1 Flash와 같은 모델을 사용할 수 있는 구독 서비스입니다. 공식 페이지(2026년 11월 기준)에는 Go 플랜이 월 $10, 상위의 Go Plus가 월 $40으로 표시되어 있습니다. DeepSeek V4.1 Flash는 '5시간당 약 43,000 요청, 월 $100 상당'이라는 기준으로 제시되어 있습니다.
무제한은 아니지만 한도는 있습니다. 그럼에도 불구하고 개인 사용자가 여러 서브 에이전트를 구동하는 용도로는 충분히 큰 숫자라고 느낍니다. 작성 시점의 제 환경에서는 opencode-go 프로바이더로부터 deepseek-v4.1-flash와 deepseek-v4-pro가 보입니다.
여기서 지갑 이야기를 하겠습니다. 저의 경우, Opus 5.5 쪽에 월 $20이 비용으로 들어갑니다. OpenCode Go의 월 $10을 합치면 총액은 월 $30입니다. OpenCode Go 단독의 $10만 보면 '매우 싸다'고 보일 수 있지만, 실제로 지불하는 금액은 $30입니다. 그럼에도 불구하고 모든 것을 Opus 5.5 상위 플랜(Max)으로 돌리는 것보다는 저렴합니다.
| 항목 | 월액 | 역할 |
|---|
| Opus 5.5 측 플랜 | $20 | 계획 및 리뷰 |
| ... | | |
요금은 작성 시점의 제 계약에 따른 것이며, 플랜명이나 가격은 변동될 수 있습니다. Max에도 Max만의 가치는 있으므로, 이는 '제 용도에서는'이라는 비교입니다.
OpenCode Go의 장점은 '최고의 모델'이 아니라 '적당히 좋은 모델'을 대량으로 사용할 수 있다는 점이라고 생각합니다.
- Opus 5.5 정도의 추론 능력은 필요하지 않다.
- 그럼에도 불구하고 구현, 리팩토링(Refactoring), 테스트(Test), 조사, 문서 업데이트에는 충분하다.
- 서브 에이전트(Sub-agent)로 병렬로 실행시켜도 지갑에 미치는 피해가 적다.
물론 OpenCode Go가 있다면 Opus 5.5가 필요 없다는 의미는 아니다. 어려운 설계 판단이나 실패했을 때의 원인 규명은 여전히 높은 모델이 더 강하다. 따라서 '모든 것을 저렴한 모델로 한다'기보다는, 작업의 종류에 따라 분리하는 것이 중요하다.
금액 비교는 토큰 양이나 캐시 적중률(Cache hit rate)에 따라 달라지므로 단순하게 말할 수는 없지만, '계획은 Opus, 실행은 DeepSeek'으로 구성하면 같은 예산으로 더 많은 작업을 돌릴 수 있다는 인상을 받는다. 특히 서브 에이전트를 여러 개 구동하는 워크로드는 효과를 본다.
주의: 요금, 모델, 사용 제한은 변경될 수 있다. 계약 전에 공식 웹사이트의 최신 정보를 확인해 주길 바란다.
왜 dsh인가
OpenCode의 하네스(Harness)는 나에게 잘 맞지 않았다. 사용법이 안 좋기 때문일 수도 있지만, 서브 에이전트 제어나 긴 세션에서의 캐시 적중률에 아쉬움을 느꼈다.
dsh (DeepSeek Harness)로 바꾼 후 인상이 달라졌다.
- 캐시가 효율적이라고 느껴짐: 동일한 시스템 프롬프트나 동일한 접두사(Prefix)를 반복하는 워크로드에서 캐시 적중률 표시가 높았다.
- 디코드 속도가 빠름: 내 환경에서는 1회 실행당 100 tok/s가 넘는 디코드 속도가 표시된 적이 있다.
- 서브 에이전트를 돌리기 쉬움: 실행 계층으로 분리하여 사용할 수 있다.
- UI에서 사용량 확인 가능: 토큰 수, 캐시 적중률, 턴 수 등을 확인할 수 있다.
다만, 이것은 엄밀한 벤치마크는 아니다. OpenCode의 하네스와 동일 조건으로 비교 측정된 것도 아니며, 프롬프트 길이, 캐시 상태, 머신, 네트워크, 모델 버전에 따라 크게 달라진다. 어디까지나 '내 환경에서는 이렇게 느꼈다'라는 참고값으로 읽어주었으면 한다.
내 환경은 다음과 같다.
- macOS (Apple Silicon)
- Node.js v22.23.4
- dsh 0.2.1-rc.5
- OpenCode CLI 1.19.4
- 검증에 사용한 모델:
opencode-go<br/>
/deepseek-v4.1-flash<br/>
(무료 모델도 별도로 시도함)
설정의 전체 개요
dsh로 OpenCode Go를 사용하려면 크게 3가지 구성 요소가 필요하다.
- OpenCode API 키: (Go 구독용. 무료 모델을 테스트한다면 Zen용도도 포함. 사람이 준비해야 함)
- opencode.ai로 헤더를 주입하는 플러그인: (AI로 생성 가능)
- dsh의 프로바이더 설정: (AI로 생성 가능)
파일 구조로 보면 다음과 같다.
~/.dsh/
├── plugins/
│ └── opencode-headers/
...
플러그인 위치는 자유지만, cordis.patch.yml에 적힌 file:// 경로와 일치시켜야 한다. 여기서는 ~/.dsh/plugins/ 아래에 배치했다.
왜 플러그인이 필요한가 하면, opencode.ai 측에서 'OpenCode 공식 클라이언트로부터의 요청인지'를 확인하기 때문이다. dsh의 pi-ai는 자체 헤더를 보내기 때문에 그대로는 거부될 때가 있다. 그래서 OpenCode CLI와 같은 user-agent와 x-opencode-client를 추가한다.
이것은 비공식적인 우회책(workaround)이므로, OpenCode 측의 사양 변경으로 인해 작동하지 않게 될 가능성이 있다. 이용 약관 범위 내에서 자기 책임 하에 사용해 주었으면 한다.
사람이 해야 할 부분
여기는 AI에게 맡기기 어렵다. 아니, 맡겨서는 안 된다.
1. OpenCode 계정과 Go 구독을 준비한다
- OpenCode 계정을 생성한다.
- OpenCode Go에 가입한다 (작성 시점 기준 월 $10).
- 대시보드에서 API 키를 발급받는다.
결제와 로그인이 얽혀있기 때문에, 이곳은 인간의 작업이다.
2. API 키를 안전하게 보관한다
API 키는 비밀번호와 같은 취급을 해야 한다.
- Git에 커밋하지 않는다.
- 채팅에 붙여넣지 않는다.
- 스크린샷에 찍히게 하지 않는다.
- 사용하지 않게 되면 만료시킨다.
dsh는 ~/.dsh/.credentials.yaml에 키를 저장한다. 파일 권한은 600으로 설정해 두는 것이 좋다.
chmod 600 ~/.dsh/.credentials.yaml
3. Node.js와 dsh 준비하기
제 환경에서는 Node.js v22.23.4로 작동을 확인했습니다. dsh는 npx로 실행할 수 있습니다.
node --version
npx --yes @deepseek-ai/dsh --version
필요한 Node.js 버전은 변경될 수 있습니다. 실행되지 않는 경우 dsh의 README도 확인해 주십시오.
4. API 키를 dsh에 등록하기
dsh 설정 화면(Models)에 API 키 입력란이 있다면, 그곳에 넣는 것이 가장 쉽습니다.
찾기 어려울 경우, ~/.dsh/.credentials.yaml의 refs에 직접 추가합니다.
version: 1
refs:
OPENCODE_API_KEY: sk-... # OpenCode Zen (무료 모델)용
...
기존의 records나 다른 refs가 있는 경우에는 지우지 말고, refs에 키를 추가합니다.
refs의 이름은 나중에 나오는 apiKeyEnv와 일치시킵니다. 한 개의 키로 opencode와 opencode-go 양쪽에 접근할 수 있다면, 둘 다 OPENCODE_API_KEY로 설정해도 좋습니다.
UI로 등록한 경우, --dump-config와 ~/.dsh/.credentials.yaml의 refs를 확인하여 apiKeyEnv와 같은 이름으로 저장되어 있는지 확인합니다.
5. dsh 실행 및 모델 선택하기
npx --yes @deepseek-ai/dsh web
브라우저가 자동으로 열립니다. 열리지 않는 경우, 터미널에 표시된 URL을 여십시오.
화면 오른쪽 아래의 모델 선택에서 다음 중 하나를 선택합니다.
- 실사용용 (本番用):
opencode-go → DeepSeek V4.1 Flash
- 시험 사용용 (お試し用):
opencode → DeepSeek V4.1 Flash Free
모델 피커에서는 제공업체(provider)별로 그룹이 나뉘어 있습니다. opencode와 opencode-go는 별개이므로, 혼동하지 않도록 주의해야 합니다.
모델명은 자주 변경됩니다. 원문 기사(2026년 8월)에서는 deepseek-v4-flash-free였고, 제 환경(2026년 11월)에서는 deepseek-v4.1-flash-free였습니다. 기사 표기보다 피커에 표시된 이름을 우선하여 사용해 주십시오.
AI에게 맡길 수 있는 부분
파일 생성, YAML 편집, 설정 검증, 실행(시작), 문제 해결은 AI에게 맡길 수 있습니다. 단, API 키 입력만은 사람이 직접 해야 합니다.
| 작업 | 사람 | AI | 보충 |
|---|
| OpenCode 계정 생성 | ✅ | ❌ | 결제/로그인 |
cordis.patch.yml 편집 | ❌ | ✅ | YAML 편집 |
| 설정 검증 | △ | ✅ | --dump-config |
| dsh 실행 | △ | ✅ | 백그라운드 실행 |
복사/붙여넣기용 프롬프트 1: 설정
AI 에이전트에게 파일을 생성하도록 지시하는 프롬프트입니다. API 키는 전달하지 않습니다. 프롬프트 1을 사용할 때는, 나중에 설명할 '설정 파일' 섹션의 플러그인과 YAML도 함께 붙여넣어야 합니다.
당신은 나의 macOS 환경에서 DeepSeek Harness (dsh)를 설정하는 에이전트입니다.
목적은, dsh의 web 프로파일로 OpenCode Go의 DeepSeek V4.1 Flash를 사용할 수 있게 하는 것입니다.
전제:
...
설정 파일 섹션의 file:///Users/yourname/...는 자신의 환경에 맞게 수정해야 합니다. 프롬프트 1로 AI에게 전달할 때도, 같은 경로로 수정한 후 붙여넣습니다. Windows의 경우 file:///C:/Users/<user>/.dsh/plugins/opencode-headers/index.js와 같은 형태가 됩니다.
복사/붙여넣기용 프롬프트 2: 실행 및 검증
dsh의 web 프로파일을 실행하여 설정이 반영되었는지 확인하세요.
npx --yes @deepseek-ai/dsh --profile web --dump-config로 설정을 확인합니다.
npx --yes @deepseek-ai/dsh web --no-open --port 5199를 백그라운드에서 실행합니다.
...
복사 붙여넣기용 프롬프트 3: 문제 해결(Troubleshooting)
dsh에서 OpenCode Go 모델을 호출했을 때 오류가 발생했습니다. 다음 관점에서 분리하여 확인해 주세요.
- 모델 선택 실수
...
복사 붙여넣기용 프롬프트 4: 플래너/워커/리뷰어(Planner/Worker/Reviewer)
Opus 5.5로 계획을 세우고 DeepSeek V4.1 Flash에 전달할 때의 프롬프트 예시.
# 플래너 (Opus 5.5)
당신은 시니어 엔지니어입니다. 다음 태스크를 DeepSeek V4.1 Flash의 서브 에이전트가 실행할 수 있는 단위로 분해하세요.
출력 형식:
...
# 워커 (DeepSeek V4.1 Flash)
당신은 태스크 <ID>의 구현 담당자입니다. 다음 계획을 따르세요.
- 목적: ...
...
# 리뷰어 (Opus 5.5)
다음 차이점과 테스트 결과를 검토해 주세요.
관점:
...
설정 파일(Configuration Files)
다음은 운영 환경에서 OpenCode Go를 기본값으로 설정했을 경우의 예시입니다.
플러그인 (Plugin)
~/.dsh/plugins/opencode-headers/index.js에 배치합니다. 내용은 원문 기사의 코드를 그대로 사용했습니다.
export const name = 'opencode-headers'
const OpenCodeHost = 'opencode.ai'
const OpenCodeHeaders = Object.entries({
...
cordis.patch.yml
# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
- id: opencode-headers
...
opencode와 opencode-go는 별도의 키를 사용하는 것을 가정하여, 각각 OPENCODE_API_KEY와 OPENCODE_GO_API_KEY로 분리했습니다. 동일한 키로 양쪽에 접근할 수 있는 경우, 둘 다 OPENCODE_API_KEY로 설정해도 됩니다. 이 경우 refs의 이름도 통일해야 합니다.
무료 모델로 테스트하고 싶다면, agent-default-model을 다음과 같이 변경합니다.
- id: agent-default-model
name: '@deepseek-ai/dsh-agent-default-model'
config:
...
credentials.yaml
version: 1
refs:
OPENCODE_API_KEY: sk-... # OpenCode Zen용
...
기존의 records나 다른 refs가 있는 경우 삭제하지 않고 추가합니다. 값은 절대 공개하지 않습니다. 파일을 Git으로 관리하지 않습니다. 권한(permission)은 600으로 설정합니다.
설정 확인
npx --yes @deepseek-ai/dsh --profile web --dump-config
다음 3가지를 확인하세요.
opencode-headers가 file://...로 입력되어 있는지 -
llm-pi-ai에 opencode와 opencode-go가 존재하는지 -
agent-default-model이 의도한 프로바이더/모델인지
dsh 실행
npx --yes @deepseek-ai/dsh web
브라우저가 자동으로 열립니다. 열리지 않는 경우, 표시된 URL을 여세요. --no-open을 추가하면 자동 오픈을 막을 수 있습니다.
주요 포인트(Key Takeaways)
opencode와 opencode-go는 별개입니다
- 여기가 가장 헷갈리는 부분입니다.
opencode = OpenCode Zen. 무료 모델(deepseek-v4.1-flash-free 등)이 존재함 -
opencode-go
========================================
OpenCode Go: 유료 구독 모델(예: deepseek-v4.1-flash 등)이 존재하며, Model Picker에서는 별도의 그룹으로 표시됩니다. 로컬 환경에서 opencode-go 측에서 deepseek-v4.1-flash-free를 선택할 경우 'Model is unavailable' 메시지가 나타나거나, opencode 측에서 deepseek-v4.1-flash를 선택할 경우 'Model access is disabled'와 같은 메시지가 표시된 적이 있습니다.
제공자(Provider)와 모델 ID의 조합을 일치시키는 것이 중요합니다.
QUOTA (할당량)
- 무료 모델은 무료 할당량이 소진되면, 무료 모델인
deepseek-v4.1-flash-free가 계정의 무료 할당량을 사용합니다. 이 할당량이 소진되면 opencode.ai에서 HTTP 429의 FreeUsageLimitError가 반환되며, dsh에서는 QUOTA 또는 'Request quota exhausted.'라고 표시됩니다.
이는 설정 오류가 아닙니다. 무료 할당량 리셋을 기다리거나 OpenCode Go의 다른 모델로 전환해야 합니다.
MISSING_CREDENTIAL (자격 증명 누락)
cordis.patch.yml의 apiKeyEnv와 ~/.dsh/.credentials.yaml의 refs 키 이름이 일치하지 않으면 MISSING_CREDENTIAL 오류가 발생합니다. 만약 opencode와 opencode-go에서 다른 별칭을 사용하고 있다면, 두 구성 세트를 모두 확인해야 합니다.
설정 측과 저장 측에서 동일한 이름을 사용해야 합니다.
apiKeyEnv: OPENCODE_GO_API_KEY
refs:
OPENCODE_GO_API_KEY: sk-...
file:// (파일 경로)
- 플러그인의
name은 file:// URL로 지정해야 합니다. macOS의 경우 file:///Users/..., Windows의 경우 file:///C:/Users/...와 같이 슬래시 개수와 드라이브 문자에 주의해야 합니다.
name: 'file:///Users/yourname/.dsh/plugins/opencode-headers/index.js'
agent-default-model (기본 에이전트 모델)
- UI에서 모델을 변경하거나 dsh의 UI에서 모델을 전환할 경우, 해당 선택 사항이
cordis.patch.yml의 agent-default-model에 반영될 수 있습니다. 즉, UI에서 선택한 모델이 새로운 기본값이 됩니다.
'설정 파일에 적었는데 다음 번에 실행하니 모델이 바뀌어 있다'고 느낀다면, UI 선택 사항이 저장되었을 가능성을 의심해야 합니다. 설정 파일과 UI 양쪽 모두를 확인하세요.
6. 플러그인의 User-Agent는 고정값입니다
이 플러그인은 로컬 OpenCode CLI의 버전에 관계없이 opencode/latest/1.18.18/cli라는 고정값을 전송합니다. 작동하지 않게 되면, OpenCode CLI가 실제로 전송하는 User-Agent에 맞춰 업데이트해야 합니다.
7. 이는 비공식적인 임시 해결책입니다
opencode.ai의 클라이언트 판별을 회피하기 위한 헤더 주입 방식이므로, OpenCode 측의 사양 변경으로 인해 작동하지 않을 수 있습니다. 이용 약관을 확인하고 자기 책임 하에 사용해야 합니다. API 키를 공유하거나 타인의 계정으로 사용해서는 안 됩니다.
운영 팁 (운용 노하우)
계획은 Opus 5.5, 실행은 DeepSeek V4.1 Flash
가장 중요한 원칙입니다. DeepSeek V4.1 Flash는 저렴하지만, 설계 판단까지 맡기면 실패할 수 있습니다. 계획 수립, 태스크 분해, 수용 조건 정의, 최종 검토는 Opus 5.5에 남겨두세요.
태스크는 작게, 완료 조건은 명령어로 검증 가능하게 만드세요
워커에게 전달하는 태스크는 변경 범위가 작고 테스트로 합격 판정이 가능한 형태로 만들어야 합니다. '좋게 고쳐줘'가 아니라, 어떤 파일을 어떤 조건을 충족하도록 바꿀지를 명확히 하세요.
병렬화할 수 있는 것은 병렬화하세요
독립적인 조사, 테스트 추가, 문서 업데이트 등은 병렬로 던지기 쉽습니다. 의존 관계가 있는 태스크는 순서대로 실행해야 합니다.
리뷰를 생략하지 않기
저가 모델의 출력물은 반드시 검토해야 합니다. 차이점, 테스트 결과, 설계와의 일관성을 확인하세요. 최종 판단은 Opus 5.5로 되돌리는 것이 좋습니다.
캐시와 사용량 관찰하기
dsh UI에는 토큰 수와 캐시 히트율(Cache Hit Rate)이 표시됩니다. 동일한 접두사(prefix)를 반복하는 워크로드에서는 캐시가 잘 작동합니다. 사용량을 모니터링하면서 프롬프트 구성이나 태스크 분할 방식을 조정해야 합니다.
민감 정보를 워커에게 넘기지 않기
서브 에이전트(Sub-agent)에게 API 키를 전달할 필요는 없습니다. dsh 측에서 인증을 완료시키고, 워커에게는 코드와 태스크만 전달하면 됩니다.
요약
- 높은 성능의 모델은 계획 및 리뷰에 사용하고, 저가 모델은 대량 실행(Mass Execution)에 활용합니다.
- OpenCode Go는 월 $10입니다. Opus 5.5의 월 $20와 합치면 총 월 $30로 운영할 수 있습니다.
- dsh는 캐시 및 디코딩 속도 면에서 좋은 인상을 주었습니다 (수치는 환경에 따라 다름).
- 다만, 성능 값은 환경 의존적입니다. 벤치마크가 아닌 참고값으로 활용해야 합니다.
- 도입 시 주요 난관은
opencode와 opencode-go의 차이점, API 키 참조명, 플러그인 경로 등입니다. 인간이 처리하는 영역은 계정/결제/API 키이며, 파일 생성 및 설정은 AI에게 맡길 수 있습니다.