코딩 에이전트

코드베이스에서 작업하는 에이전트를 구축하세요. 파일을 읽고 편집하며, 샌드박스에서 명령과 테스트를 실행하고, 여러 단계의 작업을 계획하고, 목표를 향해 자율적으로 반복하며, 병렬 검토자를 조율합니다. 이 모든 기능은 모든 모델 제공업체에서 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을 참조하세요.

다음 단계

  1. 개발 도구 — 도구 모음과 샌드박스 처리된 Workspace.
  2. 하네스CodingAgent, 계획 루프, 권한 모드.
  3. CLIcode, goal(지속 가능/재개 가능), ultracode.
  4. 워크플로adk-graph에서의 병렬 초정밀 리뷰.
  5. 예제 — 실행 가능한 예제 크레이트 세 개.

전체 설계 근거는 docs/design/coding-agent.md에서도 확인할 수 있습니다.

코딩 에이전트 - ADK-Rust 문서 | ADK-Rust