코딩 에이전트
코드베이스에서 작업하는 에이전트를 구축하세요. 파일을 읽고 편집하며, 샌드박스에서 명령과 테스트를 실행하고, 여러 단계의 작업을 계획하고, 목표를 향해 자율적으로 반복하며, 병렬 검토자를 조율합니다. 이 모든 기능은 모든 모델 제공업체에서 ADK-Rust에 기본으로 제공됩니다.
이는 모놀리식 프레임워크가 아니라 몇 가지 집중된 구성 요소로 조립됩니다:
| 구성 요소 | 제공 내용 | 페이지 |
|---|---|---|
adk-devtools | 작업공간 디렉터리로 범위가 제한된 내부 루프 도구 — read_file, write_file, edit_file, glob, grep, bash | 개발 도구 |
CodingAgent (adk-agent의 기능 coding) | 해당 도구와 계획 write_todos 도구, 최소 프롬프트를 LlmAgent에 연결하는 한 번의 호출 하네스 | 하네스 |
CLI (adk-rust code / goal / ultracode) | 네이티브 명령: 일회성 작업, 자율 목표 모드 및 병렬 울트라 검토 | CLI |
그래프 워크플로 (adk-graph) | 여러 전문 에이전트로 병렬 분기하고 종합 — "울트라" 패턴 | 워크플로 |
| 예제 | 실행 가능한 예제 크레이트 3개 | 예제 |
ADK-Rust이 처음인가요? 먼저 소개와 빠른 시작을 읽어 보세요. 이 섹션에서는 에이전트, 도구, 세션, 그리고 (선택 사항인) 메모리와 그래프를 기반으로 설명합니다.
만들 수 있는 것
- 일회성 코딩 작업 — "실패하는 테스트를 통과하게 만들기", "
/health경로 추가하기". 에이전트가 탐색하고, 편집하고, 테스트를 실행한 후 결과를 보고합니다. - 자율 목표 모드 — 목표와 검증 가능한 성공 조건(종료 코드가 0이어야 하는
명령)을 제공하면, 에이전트가 계획 → 실행 → 검증을 반복하며 성공할 때까지
또는 예산이 소진될 때까지 스스로 수정합니다. 지속 가능하고 재개할 수 있습니다.
(Codex/Hermes
/goal스타일.) - 초정밀 리뷰 워크플로 — 구현한 다음 정확성/엣지 케이스/스타일 검토를
병렬로 분배하고, 검토 결과를 종합한 후 승인될 때까지 수정합니다.
(Claude Code
ultracode/ultrareview스타일.)
설치
# The harness (pulls in the dev tools) + a model provider
adk-agent = { version = "2.1.0", features = ["coding"] }
adk-devtools = "2.1.0"
adk-model = { version = "2.1.0", features = ["gemini"] }
adk-runner = "2.1.0"
adk-session = "2.1.0"
개발 도구는 샌드박스를 우선으로 하며 무거운 종속성이 없으므로 설치 용량이
작게 유지됩니다. 병렬 워크플로에는 adk-graph만 필요합니다.
60초 빠른 시작
use adk_agent::coding::CodingAgent;
use adk_devtools::Workspace;
use adk_runner::Runner;
use adk_session::{CreateRequest, InMemorySessionService, SessionService};
use adk_core::{Content, SessionId, UserId};
use std::sync::Arc;
# async fn run(model: std::sync::Arc<dyn adk_core::Llm>) -> anyhow::Result<()> {
// One call builds a coding agent over a confined workspace.
let coding = CodingAgent::builder()
.model(model)
.workspace(Workspace::new("./my-repo"))
.build()?;
let sessions: Arc<dyn SessionService> = Arc::new(InMemorySessionService::new());
sessions.create(CreateRequest {
app_name: "demo".into(), user_id: "u".into(),
session_id: Some("s".into()), state: Default::default(),
}).await?;
let runner = Runner::builder()
.app_name("demo")
.agent(coding.agent()) // -> Arc<dyn Agent>
.session_service(sessions)
.build()?;
let mut events = runner
.run(UserId::new("u")?, SessionId::new("s")?,
Content::new("user").with_text("Add a function add(a,b) to add.py and run it."))
.await?;
// stream `events`: FunctionCall / FunctionResponse / Text …
# Ok(()) }
터미널을 선호하시나요? adk-rust code "make the failing test pass"도 동일한 작업을 수행합니다 —
CLI을 참조하세요.
다음 단계
- 개발 도구 — 도구 모음과 샌드박스 처리된
Workspace. - 하네스 —
CodingAgent, 계획 루프, 권한 모드. - CLI —
code,goal(지속 가능/재개 가능),ultracode. - 워크플로 —
adk-graph에서의 병렬 초정밀 리뷰. - 예제 — 실행 가능한 예제 크레이트 세 개.
전체 설계 근거는 docs/design/coding-agent.md에서도 확인할 수 있습니다.