코딩 하니스 (CodingAgent)
CodingAgent는 adk-agent에서 coding 기능 뒤에 제공되는 얇은 하니스로, dev tools, 계획 write_todos 도구, 그리고 최소한의 코딩 시스템 프롬프트를 일반적인 LlmAgent에 연결합니다. 이는 새로운 에이전트 타입이 아니라 *configuration over LlmAgent*이므로, 기본 adk-agent 빌드를 가볍게 유지합니다(이 기능이 adk-devtools을 끌어옵니다).
하나 빌드하기
use adk_agent::coding::CodingAgent;
use adk_devtools::Workspace;
let coding = CodingAgent::builder()
.model(model) // any adk-model provider (required)
.workspace(Workspace::new("./my-repo")) // sandboxed (required)
.instruction("Follow the project's existing style; prefer small diffs.") // optional, appended
.build()?;
let agent = coding.agent(); // Arc<dyn Agent> — hand to a Runner
빌더 옵션:
| 메서드 | 효과 |
|---|---|
.model(Arc<dyn Llm>) | 모델(필수). |
.workspace(Workspace) | 도구가 제한되는 작업 공간(필수). |
.name("…") | 에이전트 이름(기본값 "coding-agent"). |
.instruction("…") | 기본 코딩 프롬프트에 추가되는 추가 안내입니다. |
.tool(Arc<dyn Tool>) | 추가 도구(MCP, function tool, …)를 등록합니다. |
.without_todos() | write_todos 계획 도구를 비활성화합니다. |
연결된 항목
-
개발 도구 모음 — 작업 영역에 범위가 지정된 read/write/edit/glob/grep/bash.
-
write_todos— 모델이 짧은 작업 목록을 기록하고 갱신하는 데 사용하는 계획 도구. 하니스에서 다시 읽어 옵니다:for todo in coding.todos() { println!("[{}] {}", todo.status, todo.content); // pending | in_progress | completed } -
최소한의 프롬프트 — 1k 토큰 미만의 기본 지침("변경하기 전에 탐색", "편집하기 전에 읽기", "테스트를 실행해 검증", "계획 추적"), 기능이 큰 프롬프트가 아니라 도구와 스킬에서 나오도록 의도적으로 작게 유지됨.
루프
당신은 다른 에이전트처럼 CodingAgent를 실행합니다 — Runner를 통해서요. 한 턴 안에서 기본 LlmAgent는 이미 계획 → 실행 → 관찰 루프를 수행합니다: 도구를 호출하고, 그 결과를 보고, 끝날 때까지 계속합니다. 일반적인 턴은 다음과 같습니다:
write_todos(...) # plan
glob / grep / read_file # explore
edit_file / write_file # change
bash("…test…") # verify
write_todos(... completed) # update plan
→ final summary
다중 턴 작업에서는 같은 Runner + 세션을 호출 전반에 걸쳐 재사용하면 에이전트가 자신의 이전 작업을 바탕으로 이어서 진행합니다(자기가 작성한 파일을 다시 읽고 수정함). coding_agent 예제를 보세요 (multiturn 모드).
메모리 및 스킬
기반이 LlmAgent이므로, ADK의 나머지는 모두 조합할 수 있습니다:
- 교차 세션 프로젝트 메모리를 위해
Runner에MemoryService(예: bi-temporal knowledge graph)를 연결합니다. - 프롬프트를 부풀리지 않고 기능을 확장하기 위해
adk-skill를 통해 lazy skills를 추가합니다. - 훅/가드레일(
adk-plugin,adk-guardrail)이 도구 호출을 결정적으로 차단합니다.
실행하기
하니스는 Arc<dyn Agent>를 생성합니다; adk-runner로 이를 구동하세요( 빠른 시작 참조) 또는 이 모든 것을 감싸는 CLI를 사용하세요.
다음: The CLI →