claude-agent-rs
Claude Code CLI와 완벽 호환되는 프로덕션 레디 Rust SDK
English | 한국어
Claude Code CLI의 OAuth 토큰을 그대로 사용할 수 있는 순수 Rust SDK입니다. Node.js 서브프로세스 없이 Claude API를 직접 호출하며, Prompt Caching과 Progressive Disclosure를 완벽 지원합니다.
왜 claude-agent-rs인가?
| 특징 | 설명 |
|---|---|
| Claude Code CLI 호환 | from_claude_cli() 한 줄로 기존 인증 사용 |
| Prompt Caching | 시스템 프롬프트 자동 캐싱으로 토큰 비용 90% 절감 |
| 순수 Rust | Node.js 의존성 없음, ~50MB 메모리 |
| 13개 내장 도구 | Read, Write, Edit, Bash, Glob, Grep, Task 등 |
| Progressive Disclosure | 필요할 때만 스킬/규칙 로딩으로 컨텍스트 최적화 |
| 멀티 클라우드 | Anthropic, AWS Bedrock, Google Vertex AI, Azure Foundry |
설치
[]
= "0.1"
= { = "1", = ["full"] }
빠른 시작
1. 간단한 쿼리
use query;
async
2. 스트리밍 응답
use stream;
use StreamExt;
use pin;
async
3. Agent + Tools (핵심 사용법)
use ;
use StreamExt;
use pin;
async
인증 방법
Claude Code CLI (권장)
기존 Claude Code CLI 인증을 그대로 사용합니다:
let client = builder
.from_claude_cli
.build?;
// Agent도 동일하게
let agent = builder
.from_claude_cli
.build
.await?;
필요 조건: claude --version으로 CLI가 인증되어 있어야 합니다.
자동 포함 기능:
- OAuth Bearer 토큰
- Prompt Caching (
cache_control: ephemeral) - 필수 베타 플래그 (
claude-code-20250219,oauth-2025-04-20)
API Key
let client = builder
.api_key
.build?;
환경 변수
// ANTHROPIC_API_KEY 자동 사용
let client = from_env?;
클라우드 공급자
// AWS Bedrock
let client = builder
.bedrock
.build?;
// Google Vertex AI
let client = builder
.vertex
.build?;
// Azure AI Foundry
let client = builder
.foundry
.build?;
13개 내장 도구
파일 도구
| 도구 | 설명 |
|---|---|
Read |
파일 읽기 (이미지, PDF, Jupyter 노트북 지원) |
Write |
파일 생성/덮어쓰기 |
Edit |
문자열 치환 기반 정밀 편집 |
Glob |
패턴 기반 파일 검색 (**/*.rs) |
Grep |
정규식 내용 검색 (ripgrep 기반) |
NotebookEdit |
Jupyter 노트북 셀 편집 |
실행 도구
| 도구 | 설명 |
|---|---|
Bash |
셸 명령 실행 (타임아웃, 백그라운드 지원) |
KillShell |
백그라운드 프로세스 종료 |
에이전트 도구
| 도구 | 설명 |
|---|---|
Task |
서브에이전트 생성 및 실행 |
TaskOutput |
백그라운드 작업 결과 조회 |
TodoWrite |
작업 목록 관리 |
Skill |
등록된 스킬 실행 |
WebFetch |
URL 콘텐츠 가져오기 |
도구 접근 제어
// 모든 도구 활성화
builder.tools
// 특정 도구만 허용
builder.tools
// 특정 도구 제외 (보안)
builder.tools
Progressive Disclosure
필요한 시점에 스킬과 규칙을 동적으로 로딩하여 컨텍스트 윈도우를 효율적으로 사용합니다.
스킬 시스템
use ;
let agent = builder
.from_claude_cli
.skill
.tools
.build
.await?;
트리거 기반 활성화
스킬은 명시적 호출 또는 트리거 키워드로 활성화됩니다:
// 명시적: /deploy production
// 트리거: "프로덕션에 배포해줘" → "배포" 키워드 감지 → deploy 스킬 활성화
슬래시 명령
.claude/commands/deploy.md:
---
description: 프로덕션 배포
allowed-tools:
- Bash
- Read
---
$ARGUMENTS 환경에 배포합니다.
Prompt Caching
Claude Code CLI 인증 사용 시 자동으로 Prompt Caching이 활성화됩니다.
동작 방식
첫 번째 요청: cache_creation_input_tokens (캐시 생성)
두 번째 요청: cache_read_input_tokens (캐시 히트, 90% 비용 절감)
캐시 통계 확인
use CacheStats;
let stats = default;
stats.update; // cache_read: 1000, cache_creation: 0
println!;
println!;
메모리 시스템
CLAUDE.md 파일을 자동으로 로드하여 프로젝트 컨텍스트를 제공합니다.
@import ./docs/architecture.md
@import ~/global-rules.md
- -
로딩 우선순위: ~/.claude/CLAUDE.md → 프로젝트 루트 → 현재 디렉토리
커스텀 도구
use ;
use async_trait;
;
환경 변수
| 변수 | 설명 |
|---|---|
ANTHROPIC_API_KEY |
Anthropic API 키 |
ANTHROPIC_MODEL |
기본 모델 (default: claude-sonnet-4-5) |
CLAUDE_CODE_USE_BEDROCK |
AWS Bedrock 사용 |
CLAUDE_CODE_USE_VERTEX |
Google Vertex AI 사용 |
CLAUDE_CODE_USE_FOUNDRY |
Azure Foundry 사용 |
예제
# 기본 쿼리
# 스트리밍 응답
# Agent 실행 루프
# 전체 도구 테스트
테스트
# 단위 테스트 (인증 불필요)
# CLI 인증 테스트 포함
# 전체 검증
테스트 현황: 516개 테스트 통과
License
MIT 또는 Apache-2.0 (선택)