-
OpenCode 로컬 AI 에이전트의 첫걸음, 계획(Plan) — 가설 수립과 마일스톤 설계IT 2026. 6. 8. 22:00
AI 에이전트가 개발 도구를 사용할 때 가장 범하기 쉬운 실수는 앞뒤 상황을 파악하지 않고 무작정 파일 전체를 조회(`read`)하거나 전체를 검색(`grep`)하는 '도구 폭격(Tool Bombing)'입니다. 이는 컨텍스트 윈도우(Context Window)를 빠르게 소진시키고, 엉뚱한 방향으로 코드를 고쳐 시스템을 망가뜨리는 주원인입니다.
`open-code` 프로젝트와 커뮤니티는 이를 방지하기 위해 "도구를 호출하기 전에 반드시 가설을 수립하고 계획 문서를 명세화"하는 철저한 계획(Plan) 단계를 거칩니다.
① 계획(Plan) 단계의 핵심 철학
`open-code` 규칙 파일(`config/AGENTS.md`)에 기술된 계획 단계의 핵심 제약 사항은 다음과 같습니다.
Tool 호출 규율 (Plan 관련)
Plan 먼저, 그 다음 도구: 모르는 코드를 만났으면 무작정 grep/read 폭격을 날리기 전에 반드시 한 줄로 가설을 세우라.
3 step 이상 작업은 task list로 분해: 다 끝내고 한꺼번에 보고하지 말고 단계별로 알리라.에이전트는 이 룰을 기반으로 행동을 시작하기 전, 자신의 추론 과정을 스스로 통제하는 시스템을 만듭니다.
② 계획(Plan) 단계의 전체 워크플로우
계획 단계는 단순히 해야 할 일을 나열하는 것을 넘어, 현 시스템의 성능을 실측하고 병목을 식별하는 정교한 분석 과정입니다.
각 단계별 상세 가이드 및 예시
1. 사용자 요구사항 수신
- 에이전트 루프 단계: 목표 정의 및 트리거 (입력 단계)
- 단계 설정 이유: 에이전트가 독자적으로 행동을 시작하기 전, 외부(사용자)로부터 최종 목표(Goal)를 부여받는 준비 구간입니다. 루프의 시작점 역할을 합니다.
- 쉬운 설명: 사용자가 해결하고 싶은 문제나 얻고자 하는 결과물을 에이전트에게 전달하는 단계입니다.
- 예시: "Qwen3.6 모델 기반 에이전트의 응답 속도가 75초 소요되는 지연을 최적화해줘."
2. 현 상황 및 병목 구간 실측
- 에이전트 루프 단계: 관찰 (Observation)
- 단계 설정 이유: 코드를 함부로 고치기 전에, 현재 시스템의 리소스 상태, 환경 설정, 에러 로그 등의 객관적인 사실을 수집하고 파악하는 관찰 과정입니다.
- 쉬운 설명: 문제가 왜 발생했는지 막연하게 추측하기 전에, 현재 시스템의 진짜 상태 데이터를 있는 그대로 측정해 보는 단계입니다.
- 예시: Ollama 서버의 `Context 길이`, `Flash Attention 활성화 여부`, `KV Cache Type` 등의 인프라 상태를 실측하여 오버헤드 요인을 분석합니다.
3. 1줄 가설 수립 및 탐색 범위 축소
- 에이전트 루프 단계: 계획 (Planning) - 가설 수립
- 단계 설정 이유: 수집한 관찰 데이터(사실)를 기반으로 "어떻게 해결할 것인가"에 대한 가정을 세우고, 작업할 영역을 좁히는 첫 번째 의사결정 단계입니다.
- 쉬운 설명: 분석한 데이터를 보고 "이 부분이 원인일 테니, 여기만 집중해서 고쳐보자" 하고 추측하며 탐색 범위를 좁히는 단계입니다.
- 예시: "가설: Ollama의 Context 크기를 제한하고 Flash Attention을 활성화하면 attention 연산 병목이 해결되어 속도가 단축될 것이다." (이후 탐색 범위를 관련 설정 파일로 좁힘)
4. 상세 실행 계획서 작성 (`docs/` 폴더)
- 에이전트 루프 단계: 계획 (Planning) - 설계
- 단계 설정 이유: 가설을 실행하기 위한 구체적인 작업 방법과 아키텍처 수정을 문서의 형태로 상세 설계하는 정교한 계획 수립 과정입니다.
- 쉬운 설명: 머릿속에 그린 해결 방법을 글로 풀어내어 "앞으로 이런 설계로 변경을 진행하겠다"는 구체적인 청사진을 작성하는 단계입니다.
- 예시: `docs/opencode-latency-opt.md` 계획 문서 생성 및 런타임 튜닝 세부 방안 기록.
5. 단계별 Task List 분해
- 에이전트 루프 단계: 계획 (Planning) - 태스크 분해
- 단계 설정 이유: 거대한 하나의 목표를 에이전트가 실행 가능한 최소 작업 단위(Task)로 나누어 마일스톤을 수립하는 세부 계획 고도화 과정입니다.
- 쉬운 설명: 큰 산을 한 번에 넘을 수 없듯이, 작업을 1단계, 2단계, 3단계처럼 작은 단계들로 쪼개어 차근차근 해결할 순서를 정하는 단계입니다.
- 예시: Phase 1(런타임 튜닝), Phase 2(에이전트 로직 최적화), Phase 3(인프라 마이그레이션) 등으로 실행 태스크를 분할.
6. 리스크 식별 및 롤백 가이드 정의
- 에이전트 루프 단계: 계획 (Planning) - 예외 처리 설계
- 단계 설정 이유: 최적화 시 발생할 수 있는 부작용이나 예외적인 실패 리스크를 파악하고, 비상시 이전 상태로 안전하게 복구할 계획을 미리 세우는 대비 단계입니다.
- 쉬운 설명: "만약 이 수정을 적용했다가 전체 서버가 먹통이 되면 어떻게 원래대로 되돌리지?"에 대한 비상 대응책을 미리 마련하는 단계입니다.
- 예시: KV 캐시 양자화 적용 시 모델 품질 저하 리스크가 있으면, 감지 즉시 이전 FP16 상태로 환원하고 컨텍스트 길이를 단축하는 등의 대응책 수립.
7. 사용자/시스템 실행 승인 확보
- 에이전트 루프 단계: 행동(Action) 진입 관문 / 최종 승인
- 단계 설정 이유: 계획 수립 단계를 모두 끝마치고, 실제 파일을 수정하거나 명령어를 실행하는 행동(Action) 단계로 넘어가기 위해 사용자나 시스템의 게이트키퍼로부터 동의를 구하는 게이트웨이입니다.
- 쉬운 설명: 준비한 완벽한 계획을 들고 가 사용자에게 "이제 진짜 수정을 시작해도 될까요?" 물어보고 승인을 받아내는 단계입니다.
- 예시: 작성된 Task List를 최종 브리핑한 뒤 사용자의 승인 피드백을 확보하고 도구를 실행. (승인 이후, 실질적인 코드 수정이라는 행동(Action)과 속도 개선을 확인하는 검증(Verification)이 이어집니다.)
③ 요약: 계획 단계가 주는 실질적인 효과
도구를 사용하기 전에 수립되는 정밀한 계획은 다음 두 가지 실질적인 가치를 제공합니다.
- 컨텍스트 오버헤드 최소화: 불필요한 파일을 불러오지 않으므로 LLM에 전달되는 프롬프트의 품질과 속도가 비약적으로 향상됩니다.
- 개발 예측 가능성 확보: 개발 도중 예상치 못한 자원 부족이나 롤백 상황이 발생했을 때 에이전트 스스로 복구가 가능해집니다.
이 글은 생성형 AI의 도움을 받아 작성되었습니다. 원본 자료를 기반으로 AI가 초안을 생성하고, 작성자가 검토·편집하였습니다.
'IT' 카테고리의 다른 글
Claude에 브라우저 눈과 손을 달다 — Playwright MCP 플러그인 (0) 2026.06.10 Claude에 GitHub 전체를 연결하다 — GitHub MCP 플러그인 실전 가이드 (0) 2026.06.10 Claude Code에서 나만의 AI 전문가 만들기 — 서브에이전트 제작 가이드 (0) 2026.06.10 품질과 지식의 정합성 보장, OpenCode의 자율 검증(Verify) 메커니즘 (0) 2026.06.09 안전하고 확실한 구현, 실행(Execute) — permission 가드레일과 터미널 실행 제어 (0) 2026.06.08 오픈소스 에이전트 OpenCode는 세상을 어떻게 관찰하는가? — 로컬 에이전트의 관찰 엔진 분석 (0) 2026.06.08 에이전트 루프의 파수꾼, 검증(Verification) — 행동의 결과를 평가하고 멈추는 법 (0) 2026.06.07 에이전트 루프의 실행력, 행동(Action) — 생각에서 변화로 나아가는 도구 호출 (0) 2026.06.07 에이전트 루프의 나침반, 계획(Planning) — 복잡함을 나눌 때 시작되는 문제 해결 (0) 2026.06.06 에이전트 루프의 첫 단추, 관찰(Observation) — 세상의 상태를 맥락으로 번역하기 (0) 2026.06.06