로컬(OpenRouter)은 게이트웨이를 안 거쳐서 백엔드가 OpenCode prompt 에 model{providerID,modelID} 를 실어 분기.
기본 openrouter/google/gemma-4-31b-it(고객사 605 와 같은 모델). 텍스트는 기본 GLM 5.2.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
CodeAssist 전용 OpenCode workspace
Django(5_django_backend)가 부르는 AI 엔진. ABAP_OPENCODE 의 OpenCode 와는 별도 인스턴스 — 거긴 AGENTS.md 가 "설계서 브레인스토밍" 규칙이라 즉답 도우미랑 충돌해서 따로 띄움.
띄우기 (개발 PC)
cd 5_django_backend/opencode
export OPENROUTER_API_KEY=sk-or-...
npx -y opencode-ai@1.18.6 serve --hostname 127.0.0.1 --port 4096
- 버전은 1.18.6 고정 —
docs-lib/opencode-sdk-1.18.6-types.d.ts가 이 버전 API 기준. - gotcha 1 —
OPENCODE_CONFIG_DIR: 이 환경변수가 잡혀 있으면(예: orca 같은 툴이 셸에 박아둠) workspace 의opencode.json·.opencode/agent를 무시하고 그쪽 걸 읽어서Agent not found: codeassist가 남. 띄우기 전에env -u OPENCODE_CONFIG_DIR -u ORCA_OPENCODE_CONFIG_DIR opencode serve …로 풀거나.zshrc에서 빼. - gotcha 2 — 프로젝트(directory): 1.18 서버는 한 프로세스가 여러 프로젝트를 다루고 요청마다
?directory=로 고름. Django 가OPENCODE_DIRECTORY(기본: 이 폴더 절대경로) 를 모든 요청에 붙이니, 서버를 다른 경로에서 띄우면.env의OPENCODE_DIRECTORY를 그 경로로 맞춰. 안 맞으면 세션이 딴 프로젝트에 생기고 prompt 가 로그에만 실패를 남기고 조용히 죽음(60초 뒤 error 로 끝냄). - 확인:
curl http://127.0.0.1:4096/session→[]. - SAP 조회(MCP)는
opencode.json의sap-icf.enabled를 true 로 바꾸고SAP_MCP_URL/SAP_MCP_KEY환경변수 주면 붙음 (ABAP_OPENCODE 의 :3200 서버 재사용).
파일
| 파일 | 뭐냐 |
|---|---|
AGENTS.md |
모든 세션에 붙는 지침 — 즉답, 코드펜스, 절차 질문 금지 |
opencode.json |
모델(OpenRouter GLM 5.2)·question 도구 끔·MCP |
.opencode/agent/codeassist.md |
Django 가 agent: "codeassist" 로 지정하는 에이전트. 파일 쓰기·bash 끔 |