ADK-Rust v2: 에이전트 프레임워크에서 프로덕션 런타임으로.
도구, 워크플로, 상태, 실시간 미디어, CodingAgent, 개방형 프로토콜 및 운영 제어가 하나의 구성 가능한 Rust 시스템이 된 이야기.
지난 3월, ADK-Rust v0.5에 대한 이야기를 공개했습니다. 이 릴리스를 통해 프레임워크는 검색, 코드 실행, 추가 모델 공급자, 영구 그래프, 암호화된 세션, 그리고 유용한 시작 프로젝트를 생성할 수 있는 CLI 등 더 많은 기능을 수행할 수 있게 되었습니다.
다음 질문은 더 어려웠습니다. 이러한 기능들이 개발자가 구성하고, 관찰하고, 보호하고, 배포하고, 계속 실행할 수 있는 하나의 프로덕션 시스템이 될 수 있을까요? v2로의 여정이 그 답입니다. ADK-Rust는 성장하는 에이전트 툴킷에서, 에이전트가 대화하고, 도구를 사용하고, 작업을 조율하고, 아티팩트를 생성하고, 개방형 프로토콜을 통해 협업하는 제품을 위한 Rust 런타임으로 변화했습니다.
이전 챕터 읽기: ADK-Rust v0.5v2로 가는 길
에이전트 기능을 시스템으로 전환하는 6개월.
각 릴리스는 프로덕션 문제의 다른 부분을 해결했습니다. 이들은 함께 개발자가 하나의 Rust 런타임을 중심으로 합리적으로 구축할 수 있는 것을 변화시켰습니다.
프레임워크는 더 많은 종류의 작업을 학습했습니다
RAG, 코드 실행, 공급자 개선, 영구 그래프, 암호화된 세션, 그리고 cargo-adk는 하나의 Rust 에이전트가 할 수 있는 일을 확장했습니다.
에이전트가 실제 시스템 경계를 넘었습니다
A2A는 완전한 원격 작업 흐름에 도달했습니다. AWP는 웹사이트에 에이전트 인터페이스를 제공했습니다. MCP 서버는 관리형 수명 주기를 얻었으며, 메모리와 공유 상태는 더 큰 제품에 대해 더 안전해졌습니다.
컴포지션이 개발자 경험이 되었습니다
기능 계층은 기본 종속성 표면을 줄였습니다. ACP가 출시되었고, 스키마는 각 모델 공급자에 맞게 조정되었으며, 템플릿과 애드온은 아키텍처를 복사하는 작업 대신 선택 사항으로 만들었습니다.
기반이 안정화되었습니다
39개의 크레이트가 시맨틱 버전 관리 약속, 강화된 문서 게이트, 보안 작업, 평가, 관리형 런타임 및 엔터프라이즈 배포 API와 함께 안정적인 계층에 도달했습니다.
런타임이 제품의 중추가 되었습니다
CodingAgent와 CodeAct가 에이전트 제품군에 합류했습니다. 도구 호출, 진행 상황, 결과, 취소, 실시간 미디어, 지식 그래프 메모리 및 개방형 프로토콜은 이제 명시적인 런타임 계약을 통해 전달됩니다.
전환점
프로덕션 에이전트는 모델 호출 그 이상입니다.
초기 에이전트 예시는 자연스럽게 프롬프트, 모델, 응답에 중점을 두었습니다. 실제 제품은 나머지 작업을 빠르게 드러냈습니다: 누가 도구를 호출할 수 있는지 결정하고, 상태를 보존하고, 진행 상황을 표시하고, 승인 후 재개하고, 생성된 파일을 이동하고, 실패를 추적하고, 다른 팀에 속한 서비스와 통신하는 것 등입니다.
v2는 이러한 책임을 Rust 계약을 가진 프레임워크의 관심사로 다룹니다. 모델은 여전히 중요하지만, 도구, 세션, 이벤트, 콜백, 경계 및 운영 정책을 포함하는 호출 내에서 실행됩니다. 모델을 중심으로 제품을 재설계하지 않고도 모델을 교체할 수 있습니다.
이것이 주요 버전 뒤에 있는 아키텍처 변화입니다: 에이전트 동작과 제품 인프라가 이제 동일한 런타임에서 만나면서도, 구성하고 테스트하기에 충분히 분리되어 있습니다.
v2 아키텍처
전체 제품을 통해 하나의 작업을 따라가세요.
요청은 사람 인터페이스 또는 에이전트 프로토콜을 통해 도착할 수 있습니다. Runner는 요청에 컨텍스트를 부여하고, 올바른 에이전트 형태를 호출하며, 도구, 상태 및 운영 제어가 작업을 지원하는 동안 유형화된 이벤트를 스트리밍합니다.
사람과 시스템
제품 표면
하나의 실행 계약
Runner 및 유형화된 이벤트 스트림
작업의 형태를 선택하세요
구성 가능한 에이전트
에이전트에게 유용한 도달 범위를 제공하세요
도구, 지식 및 상태
프로덕션 환경을 이해하기 쉽게 유지
운영 제어
프로세스 내부
에이전트, 도구, 세션, 콜백, 이벤트 및 취소는 Rust 트레이트와 타입을 공유합니다.
경계를 넘어
MCP, A2A, ACP, AWP, HTTP 및 실시간 전송은 소유자가 다른 시스템을 연결합니다.
제품에 표시
동일한 이벤트 스트림은 CLI, 웹 UI, API 클라이언트, 추적 뷰어 또는 원격 에이전트를 구동할 수 있습니다.
작동 방식 확인
실행 경로는 제품 인터페이스입니다.
유용한 에이전트는 최종 문장 이상의 것을 보여줘야 합니다. v2는 모든 의미 있는 단계에 이벤트 스트림 내의 위치를 부여하여 개발자가 작업이 진행되는 동안 인터페이스를 구축할 수 있도록 합니다.
요청
사람, 서비스 또는 에이전트가 작업을 시작합니다.
결정
에이전트 또는 워크플로가 다음 의미 있는 작업을 선택합니다.
실행
도구, 전문가, 모델 또는 원격 시스템이 단계를 수행합니다.
스트림
타입이 지정된 이벤트는 호출, 진행 상황, 결과 및 상태 변경을 전달합니다.
계속
런타임이 응답하거나, 입력을 위해 일시 중지하거나, 재시도하거나, 나중에 다시 시작합니다.
테스트 스위트를 실행하는 CodingAgent를 상상해 보세요. UI는 도구 호출, 줄 단위 stdout 및 stderr, 타입이 지정된 결과, 모든 상태 또는 아티팩트 변경 사항, 그리고 에이전트의 다음 결정을 하나의 상관된 스트림을 통해 수신합니다. 작업에 승인이 필요하거나 프로세스가 중단된 경우, 세션과 체크포인트는 계속할 명확한 지점을 제공합니다.
v2가 개발자에게 제공하는 것
에이전트 수명 주기를 위한 단일 프레임워크.
하나의 대화형 에이전트로 시작하여 제품이 필요로 할 때만 구조를 추가할 수 있습니다. 시스템이 성장함에 따라 동일한 핵심 계약이 유지됩니다.
에이전트는 다양한 방식으로 작동할 수 있습니다
유연한 추론을 위해 LLM 에이전트를 사용하고, 알려진 시퀀스를 위해 결정론적 워크플로 에이전트를 사용하며, 분기 및 지속적인 작업을 위해 그래프를 사용하고, 음성 및 비디오를 위해 실시간 에이전트를 사용하고, 리포지토리 작업을 위해 CodingAgent를 사용하거나, 모델이 다단계 작업을 실행 가능한 코드로 표현해야 할 때 CodeAct를 사용하세요.
진행 상황은 API의 일부입니다
도구 호출 및 도구 결과는 타입이 지정된 이벤트입니다. 장기 실행 도구는 에이전트 응답과 동일한 스트림으로 진행 상황을 내보낼 수 있으며, 호출 ID는 요청, 실시간 출력 및 최종 결과를 연결합니다. UI는 로그를 스크랩하지 않고도 작업을 렌더링할 수 있습니다.
상태는 단일 모델 턴보다 오래 지속될 수 있습니다
세션은 대화를 보존하고, 아티팩트는 생성된 파일을 유지하며, 그래프 체크포인트는 워크플로를 재개하고, 의미론적 또는 이중 시간적 지식 그래프 메모리는 에이전트에게 이후 세션에서도 유용한 컨텍스트를 제공합니다.
개방형 프로토콜은 명확한 작업을 가집니다
MCP는 도구와 리소스를 연결하고, A2A는 독립적으로 배포된 에이전트를 연결하며, ACP는 CodingAgent 클라이언트와 서버를 연결하고, AWP는 웹사이트에 사람 인터페이스와 함께 에이전트를 위한 구조화된 인터페이스를 제공합니다.
자율성에는 운영 경계가 있습니다
권한 부여 콜백, 범위 지정 도구, 가드레일, 승인, 샌드박스 정책, 취소, 원격 측정, 평가 및 감사 증거를 통해 팀은 에이전트가 무엇을 할 수 있는지 결정하고 나중에 발생한 일을 검사할 수 있습니다.
필요한 제품을 컴파일합니다
최소 티어는 첫 번째 에이전트를 작게 유지합니다. Standard는 일반적인 프로덕션 스택을 추가하고, enterprise는 실시간, 브라우저, RAG, 결제 및 AWP를 추가하며, full은 가장 무거운 오디오 및 실행 기능을 추가합니다. 사전 설정이 너무 광범위할 경우 개별 기능은 계속 사용할 수 있습니다.
시작 경험
작업 형태를 선택한 다음, 자신에게 맞게 만드세요.
v2 CLI는 실행 형태를 스캐폴드하고 주변 기능을 추가할 수 있습니다. 생성된 프로젝트는 여전히 직접 작성하고 검토할 Rust 코드처럼 보입니다.
생성 및 확인
cargo install cargo-adk
cargo adk new support-agent \
--template tools \
--addon sessions \
--addon telemetry \
--addon guardrails
cd support-agent
cargo adk build
cargo run에이전트 구성
let agent = LlmAgentBuilder::new("support")
.description("Resolves customer issues")
.instruction("Use the reviewed tools and cite evidence.")
.model(Arc::new(model))
.tool(Arc::new(LookUpOrder))
.before_tool(approval_gate)
.build()?;
Launcher::new(Arc::new(agent))
.run()
.await?;12개의 템플릿은 일반적인 시작 아키텍처를 다룹니다. 9개의 애드온은 세션, 원격 측정, MCP, 인증, 브라우저 도구 및 가드레일과 같은 기능을 구성합니다. cargo adk build 배포 전에 생성된 프로젝트를 확인합니다.
v2 소스에 대해 검증됨
이야기 뒤에 숨겨진 세부 사항.
다음 장은 실제 에이전트와 함께 시작됩니다
첫 번째 워크플로를 구축하세요. 프로덕션 경로를 열어두세요.
하나의 요청, 하나의 가시적인 도구 호출, 그리고 이해하는 하나의 세션으로 시작하세요. ADK-Rust v2는 제품이 준비되었을 때 이 작은 에이전트에게 워크플로, 메모리, 개방형 프로토콜, 실시간 인터페이스, 보안 및 배포로 가는 직접적인 경로를 제공합니다.