Gemini-Harness๋ฅผ Gemini CLI v0.28.0+ ์ฌ์ฉ์ ํ๊ฒฝ์ ์ค์น ๊ฐ๋ฅํ Python ํจํค์ง๋ก ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ. pyproject.toml ๊ตฌ์กฐ, ์ต์คํ ์ ๋งค๋ํ์คํธ, MCP ์๋ฒ์ ์ฌ๋์/ํธ๋ฆฌ๊ฑฐ ๋ช ๋ น ๋ณํ ์ ๊ณต, LangGraph ๋ฒ์ ํธํ ํ ์ ๋ต, ์ง์ ์ , ์ฌ์ฉ์ ์ค์นยท์ ๊ทธ๋ ์ด๋ยท์ ๊ฑฐ ํ๋ฆ, CI ๋ฐฐํฌ. ๋ฐฐํฌ ์ํฐํฉํธ ์์ฑ, ์ค์น ๊ฒฝํ ์ค๊ณ, LangGraph ์ ๋ฐ์ดํธ ๋๋น ์์กด์ฑ ๊ด๋ฆฌ ์ ๋ฐ๋์ ์ฐธ์กฐ.
Gemini CLI(v0.28.0+) ๋ด์ฅ ์คํฌ๊ณผ gemini-3.1-pro-preview Python SDK, MCP Server๋ฅผ LangGraph ๋ ธ๋์์ ํธ์ถํ๋ ํจํด. subprocess ๋ธ๋ฆฌ์ง, API ๋ํผ, MCP ์ด๋ํฐ, ํ์์์ยท์ฌ์๋ยทcommand injection ์ฐจ๋จ. Gemini ๊ด๋ จ ํตํฉ ์ฝ๋ ์์ฑยท๋๋ฒ๊น ์ ๋ฐ๋์ ์ฐธ์กฐ.
Gemini-Harness ํ๋ก์ ํธ(revfactory/harness v1.2.0์ LangGraph+Gemini ํฌํธ)์ ์ค๊ณยท๊ตฌํยทํตํฉยท๊ฒ์ฆ์ ์ ๋ฌธ๊ฐ ํ์ผ๋ก ์ํํ๋ ์ค์ผ์คํธ๋ ์ดํฐ. LangGraph ๋ฐํ์ ์์ฑ(harness_runtime.py), workflow.json ์คํค๋ง ์ค๊ณ, Gemini CLI(v0.28.0+) ํตํฉ, gemini-3.1-pro-preview API ๋ํ, ๋ฉํ ์์ด์ ํธ/์คํฌ ํ ํ๋ฆฟ ์ค๊ณ, 6 ์ํคํ ์ฒ ํจํด ํฌํธ, self-critique ๋ฃจํ ๊ตฌํ, ํตํฉ QA ๋ฑ ๋ณธ ํ๋ก์ ํธ ๊ด๋ จ ์์ ์ ๋ฐ๋์ ์ด ์คํฌ์ ์ฌ์ฉ. ํ์ ์์ (๋ค์ ์คํ, ๋ถ๋ถ ์์ , ์ฌ๊ฒ์ฆ, workflow.json ์คํค๋ง๋ง ์์ , ํน์ ์์ด์ ํธ๋ง ์ฌํธ์ถ, ์ด์ ๊ฒฐ๊ณผ ๊ฐ์ , ์ ๋ฐ์ดํธ, ๋ณด์, ์๋ณธ ํ๋ค์ค ์ฌ๋๊ธฐํ)์๋ ์ด ์คํฌ์ ์ฌ์ฉ. ๋จ์ ๊ฐ๋ ์ง๋ฌธ(LangGraph๋?)์ ์ ์ธ.
revfactory/harness v1.2.0์ Gemini + LangGraph ์คํ์ผ๋ก ํฌํ ํ ๋ ๋ณด์กดํด์ผ ํ ์ฌ์๊ณผ ์์ํ ๋งคํ. Claude Code ์์ํ(TeamCreate/SendMessage/TaskCreate/Agent)๊ณผ LangGraph ๊ตฌํ์ ๋์, 6๊ฐ ์ํคํ ์ฒ ํจํด์ LangGraph ๋ณํ ํํธ, ์ถ๋ ฅ ํฌ๋งท(`.agents/`, workflow.json) ๋ช ์ธ. ํฌํ ๊ฒฐ์ ยท์๋ณธ ์คํ ํ์ธยท๊ตฌํ ์ผ๊ด์ฑ ๊ฒํ ์ ๋ฐ๋์ ์ฐธ์กฐ. "์๋ณธ๊ณผ ๋๋ฑํ๊ฐ" ๊ฒ์ฆ ๊ธฐ์ค ํฌํจ.
Gemini-Harness์ ํต์ฌ ์ํคํ ์ฒ ํจํด. **Manager + Worker + Registry (Swarm-style)** โ ์ ์ ๊ทธ๋ํ ์์์ State์ agent registry๋ก ๋ฐํ์ ๋์ ์์ด์ ํธ๋ฅผ ํํํ๊ณ , ๋จ์ผ Worker(dispatcher) ๋ ธ๋๊ฐ registry ์ํธ๋ฆฌ๋ฅผ ์ ํ ์คํํ๋ค. Command/Send API, ์์ด์ ํธ ๊ฐ ํต์ (inbox), 6 ์ํคํ ์ฒ ํจํด ๊ตฌํ, self-critique ๋ฃจํ, LangGraph ๋ฒ์ ํธํ ์ด๋ํฐ. harness_runtime.py ์ค๊ณยท๊ตฌํ ์ ๋ฐ๋์ ์ฐธ์กฐ.
Gemini-Harness ๋ฐํ์์ด ๋์ ์์ฑํ๋ SYSTEM_PROMPT.md์ SKILL.md์ ํ ํ๋ฆฟยทJSON Schemaยทlinter ๊ท์น. workflow.json ์คํค๋ง v1 ์ ์, ํ์/์ ํ ํ๋, ๊ธ์ง ํจํด, ๋ฒ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ต. ๋ฉํ ๋ ๋ฒจ ์์ฑ๋ฌผ ํ์ยท๊ฒ์ฆ ์์ ์ ๋ฐ๋์ ์ฐธ์กฐ.
Self-critique ๋ฃจํ์ ์ค๊ณยท๊ตฌํยท์ ๋ ์ธก์ . LangGraph conditional edge ๊ธฐ๋ฐ ๊ตฌ์กฐ์ ๋ฃจํ, retry counter, diff ํ๊ฐ, A/B ์คํ์ผ๋ก ๊ฒฐํจ ๊ฐ์์จ ์ธก์ . PRD์ 80% ๊ฒฐํจ ๊ฐ์ acceptance criteria ๊ฒ์ฆ, self-correction ๋ฃจํ ์ค๊ณ, near-miss ํธ๋ฆฌ๊ฑฐ ํ ์คํธ ์ ํ์.