Letta 프로바이더
Letta 프로바이더
Letta AI SDK 프로바이더 를 사용하면 AI SDK로 Letta 에이전트를 사용할 수 있어요.
기능은 다음과 같아요:
- 영속·장기 메모리
- 소스 출처가 있는 에이전트 레벨·모델 레벨 추론 메시지 모두에 접근
- 커스텀 에이전트 구성 도구와 MCP(Model Context Protocol) 지원
- 에이전트 관리 파일시스템 작업과 도구 기반 파일 접근
- Letta와 AI SDK 메시지 형식 간 변환을 위한 내장 유틸리티
- Long-Running Agent Executions 같은 모든 Letta Send Message API 기능
출처: 문서
본문
지원 모델 (Supported Models)
전체 지원 모델 목록은 Letta 문서를 참고하세요. 목록에 없는 모델의 경우, Letta를 OpenAI 프록시로 구성해 볼 수 있어요.
설정 (Setup)
Letta 프로바이더를 다음과 같이 설치할 수 있어요:
프로바이더 인스턴스 (Provider Instance)
@letta-ai/vercel-ai-sdk-provider에서 lettaCloud 또는 lettaLocal 프로바이더 인스턴스를 임포트할 수 있어요:
// 클라우드 사용자용
import { lettaCloud } from '@letta-ai/vercel-ai-sdk-provider';
// 자체 호스팅 사용자용
import { lettaLocal } from '@letta-ai/vercel-ai-sdk-provider';
// 커스텀 Letta 프로바이더 만들기
import { createLetta } from '@letta-ai/vercel-ai-sdk-provider';
const letta = createLetta({
baseUrl: '<your-base-url>',
token: '<your-access-token>',
});
기본 사용법 (Basic Usage)
Letta 대시보드에서 API 키를 받으세요.
# .env
LETTA_API_KEY=your-letta-api-key
import { lettaCloud } from '@letta-ai/vercel-ai-sdk-provider';
import { generateText } from 'ai';
const result = await generateText({
model: lettaCloud(), // 모델 구성(LLM, temperature 등)은 Letta 에이전트를 통해 관리돼요
providerOptions: {
letta: {
agent: { id: 'your-agent-id' },
},
},
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});
console.log(result.text);
고급 사용법 (Advanced Usage)
프로바이더 옵션 (Provider Options)
providerOptions.letta 파라미터로 Letta 특정 설정을 구성할 수 있어요:
import { lettaCloud } from '@letta-ai/vercel-ai-sdk-provider';
import { streamText } from 'ai';
const result = streamText({
model: lettaCloud(),
providerOptions: {
letta: {
agent: {
id: 'your-agent-id',
maxSteps: 100,
includePings: true,
streamTokens: true,
},
timeoutInSeconds: 300,
},
},
prompt: 'Tell me a story about a robot learning to paint',
});
에이전트 구성 (Agent Configuration)
메시지 생성을 위한 에이전트별 파라미터를 구성해요. 이 설정은 스트리밍·비스트리밍 작업 모두에 적용돼요.
사용 가능한 옵션:
id(string, 필수): Letta 에이전트의 IDmaxSteps(number): 에이전트 실행 최대 단계 수includePings(boolean): 스트림에 핑 메시지를 포함할지 여부streamTokens(boolean): 토큰 단위 스트리밍 활성화background(boolean): 장기 실행 작업을 위한 백그라운드 실행 활성화- Letta API 문서의 추가 파라미터
타임아웃 구성 (Timeout Configuration)
유형: number
기본값: 1000
에이전트 응답에 대한 최대 대기 시간(초)을 설정해요. 장기 실행 에이전트 작업이나 복잡한 추론 체인을 다룰 때 중요해요.
const result = streamText({
model: lettaCloud(),
providerOptions: {
letta: {
agent: { id: 'your-agent-id' },
timeoutInSeconds: 300, // 최대 5분 대기
},
},
prompt: 'Process this complex task...',
});
커스텀 도구와 MCP (Custom Tools and MCP)
Letta 에이전트는 프로바이더가 실행하는 도구를 통해 커스텀 도구와 MCP(Model Context Protocol) 서버를 지원해요. Letta 에이전트에 구성한 후 letta.tool()을 사용해 요청에 포함하면 Letta가 도구 실행을 처리해요.
import { streamText } from 'ai';
import { z } from 'zod';
import { lettaCloud } from '@letta-ai/vercel-ai-sdk-provider';
// 스트리밍과 함께 사용
const result = streamText({
model: lettaCloud(),
tools: {
web_search: lettaCloud.tool('web_search'),
memory_insert: lettaCloud.tool('memory_insert'),
memory_replace: lettaCloud.tool('memory_replace'),
core_memory_append: lettaCloud.tool('core_memory_append'),
my_custom_tool: lettaCloud.tool('my_custom_tool'),
// 선택적으로 설명과 스키마 제공 (플레이스홀더만 - 실행은 Letta가 처리)
typed_query: lettaCloud.tool('typed_query', {
description: 'Query with typed parameters',
inputSchema: z.object({
query: z.string(),
}),
}),
},
providerOptions: {
letta: {
agent: { id: agentId },
},
},
prompt: 'Tell me a story about a robot learning to paint',
});
다른 Letta 클라이언트 함수 사용 (Using other Letta Client Functions)
vercel-ai-sdk-provider는 @letta-ai/letta-client를 확장하므로, lettaCloud.client나 lettaLocal.client 또는 직접 생성한 커스텀 letta.client를 통해 작업에 직접 접근할 수 있어요.
// Letta Cloud 사용
import { lettaCloud } from '@letta-ai/vercel-ai-sdk-provider';
lettaCloud.client.agents.list();
// Letta Local 사용
import { lettaLocal } from '@letta-ai/vercel-ai-sdk-provider';
lettaLocal.client.agents.list();
더 많은 정보 (More Information)
Letta API에 대한 자세한 내용은 Letta API 문서를 참고하세요.