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 에이전트의 ID
  • maxSteps (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 문서를 참고하세요.

더 알아보기 (Learn more)

전체 사이트맵