agents은(는) 무엇을 하나요?
Cloudflare Durable Objects를 사용하여 상태 저장형, 지속성 있는 에이전트 워크로드를 관리하여 효율적이고 확장 가능한 실시간 통신 및 스케줄링을 지원합니다.
개요
이 스킬은 Cloudflare의 Durable Objects 기능을 기반으로 구축된 에이전트 시스템을 설명합니다. Durable Objects는 글로벌하게 분산된 환경에서도 강력한 일관성과 상태 저장형 처리를 제공합니다.
주요 기능
- 상태 저장형 에이전트: 각 에이전트 인스턴스는 고유한 상태를 유지하며, 여러 요청 간에 지속성을 제공합니다.
- 실시간 통신: WebSocket을 통해 클라이언트와 에이전트 간의 양방향 실시간 통신을 지원합니다.
- 스케줄링: Cron 트리거를 사용하여 지연된 작업이나 주기적인 작업을 예약할 수 있습니다.
- 확장성: Cloudflare의 글로벌 네트워크를 통해 자동으로 확장되며, 트래픽에 따라 인스턴스가 생성됩니다.
사용 방법
wrangler.toml파일에 Durable Object 바인딩을 추가합니다.
[[durable_objects.bindings]]
name = "MY_AGENT"
class_name = "AgentClass"
- Durable Object 클래스를 정의합니다.
export class AgentClass {
constructor(state, env) {
this.state = state;
this.env = env;
}
async fetch(request) {
// 요청 처리 로직
return new Response("Hello from agent!");
}
}
- Worker에서 에이전트 인스턴스를 생성하고 통신합니다.
export default {
async fetch(request, env) {
let id = env.MY_AGENT.idFromName("unique-agent-id");
let stub = env.MY_AGENT.get(id);
return stub.fetch(request);
}
};
고급 기능
- 상태 관리:
state.storage를 사용하여 영구 데이터를 저장하고 검색합니다. - WebSocket 핸들링:
fetch핸들러 내에서 WebSocket 업그레이드를 처리합니다. - 알람:
state.storage.setAlarm()을 사용하여 특정 시간에 작업을 트리거합니다.