A2A

A2A

dracoblue/a2a-ai-provider는 A2A 프로토콜 호환 에이전트를 AI SDK와 함께 사용할 수 있게 해주는 커뮤니티 프로바이더예요. HTTP 위의 표준화된 JSON-RPC 인터페이스를 사용해 텍스트, 툴 호출, 아티팩트를 스트리밍·전송·수신할 수 있게 해줘요.

출처: 문서

본문

`a2a-ai-provider` 패키지는 지속적으로 개발 중이에요.

프로바이더는 공식 a2a-js SDK(@a2a-js/sdk)를 사용해 다음을 지원해요:

  • sendSubscribe와 SSE를 통한 스트리밍 텍스트 응답
  • A2A 서버로의 파일 & 아티팩트 업로드
  • 텍스트 및 파일 파트를 지원하는 멀티모달 메시징
  • A2A 호환 LLM 에이전트를 위한 완전한 JSON-RPC 2.0 준수

A2A에 대해 자세히 알아보려면 A2A 프로젝트 사이트를 방문하세요.

설정 (Setup)

npm에서 a2a-ai-provider를 설치하세요:

프로바이더 인스턴스 (Provider Instance)

A2A 서버용 프로바이더 인스턴스를 만들려면:

import { a2a } from 'a2a-ai-provider';

예시 (Examples)

이제 다음과 같이 AI SDK와 함께 프로바이더를 사용할 수 있어요:

generateText

import { a2a } from 'a2a-ai-provider';
import { generateText } from 'ai';

const result = await generateText({
  model: a2a('https://your-a2a-server.example.com'),
  prompt: 'What is love?',
});

console.log(result.text);

streamText

import { a2a } from 'a2a-ai-provider';
import { streamText } from 'ai';

const chatId = 'unique-chat-id'; // for each conversation to keep history in a2a server

const streamResult = streamText({
  model: a2a('https://your-a2a-server.example.com'),
  prompt: 'What is love?',
  providerOptions: {
    a2a: {
      contextId: chatId,
    },
  },
});

await streamResult.consumeStream();

console.log(await streamResult.content);

기능 (Features)

  • 텍스트 스트리밍: A2A 서버에서 토큰 단위로 출력을 스트리밍해요
  • 파일 업로드: 프롬프트의 일부로 파일을 보내요
  • 아티팩트 처리: 스트리밍 또는 최종 결과로 파일 아티팩트를 받아요

추가 리소스 (Additional Resources)

더 알아보기 (Learn more)

전체 사이트맵