ax-llm/ax

The pretty much "official" DSPy framework for Typescript

Ax – 구조화된 LLM 앱을 위한 다중 언어 프레임워크

정의 – Ax("ax-llm"으로 발음)는 대규모 언어 모델(LLM)과의 타입화된 상호작용을 한 번 정의하고 동일한 코드를 TypeScript/JavaScript, Python, Java, C++, Go, Rust 등 여러 언어에서 실행할 수 있게 해주는 라이브러리입니다. 시그니처(입출력 스키마)를 선언하기 위한 작은 DSL을 제공하며, 해당 설명을 지원되는 모든 제공자(OpenAI, Anthropic, Gemini 등)와 통신하는 언어별 클라이언트 라이브러리로 컴파일합니다.

핵심 개념

  • 시그니처 – 문자열 DSL, 유연한 f() 빌더 또는 Standard Schema v1 검증기(Zod, Valibot, ArkType)를 사용하여 요청/응답의 형태를 선언합니다. 프레임워크는 모델의 출력을 파싱하고 검증하여 보장된 타입의 결과를 제공합니다.
  • 배포 프로필 – 명명된 프로필(예: openai, together, deepseek)은 제공자별 엔드포인트와 연결을 캡슐화합니다. 제공자 전환은 한 줄 변경으로 가능합니다.
  • 에이전트 – 메모리, 체크포인트된 컨텍스트, 샌드박스 JavaScript 실행을 갖춘 장기 실행 도구 사용 액터입니다. 에이전트는 3단계 파이프라인을 실행합니다: 증류기 → 실행기(RLM 루프) → 응답기.
  • 플로우 – LLM 기반 노드의 타입화된 방향성 비순환 그래프입니다. 노드는 분기, 루프, 병렬 실행이 가능하며 프레임워크는 독립 노드를 자동으로 최적화합니다.
  • 최적화 도구 – 퓨삿 부트스트래핑, GEPA, 재사용 가능한 최적화 아티팩트에 대한 내장 지원.
  • 크로스 언어 코어 – 동일한 Ax IR이 각 대상 언어의 네이티브 패키지로 컴파일됩니다. 소스 TypeScript 패키지(@ax-llm/ax)가 표준 구현이며, 생성된 Python(axllm), Java(dev.axllm:ax), C++(axllm::axllm), Go, Rust 크레이트는 저장소에 포함되어 있습니다.

사용 방법(TypeScript 예제)

import { ai, ax } from "@ax-llm/ax";

const llm = ai({ name: "openai", apiKey: process.env.OPENAI_APIKEY });

const classify = ax(
  'review:string -> sentiment:class "positive, negative, neutral"'
);

const { sentiment } = await classify.forward(llm, {
  review: "This product is amazing!"
}); // sentiment는 "positive" | "negative" | "neutral"로 타입화됨

동일한 시그니처는 동일한 의미론으로 Python, Java 등에서 실행할 수 있습니다.

중요한 기능

  • 제로 프롬프트 엔지니어링 – DSL이 프롬프트를 자동으로 생성합니다.
  • 기본 스트리밍 – 결과가 도착하는 대로 파싱되어 조기 검증 및 취소가 가능합니다.
  • 타입화된 멀티모달 I/O – 텍스트와 함께 image, audio, file 필드를 지원합니다.
  • 도구(ReAct) 통합 – 모델이 호출할 수 있는 함수를 선언합니다.
  • 샌드박스 JS 런타임 – 에이전트는 세분화된 권한으로 강화된 환경에서 생성된 JavaScript를 실행합니다.
  • 메모리 및 스킬 – 에이전트는 실행 중에 벡터 저장소 또는 스킬 라이브러리를 쿼리할 수 있습니다.
  • 성능 인식 – 핫 경로는 제공자 SDK의 얇은 래퍼이며, 벤치마크는 원시 호출에 가까운 지연 시간을 보여줍니다.

시작하기

  • npm을 통해 TypeScript 패키지를 설치합니다(npm i @ax-llm/ax).
  • 번들된 예제를 npm run example -- <language> <path>로 실행합니다(예: npm run example -- python src/examples/python/generation/axgen-openai.py).
  • 다른 언어의 경우 게시된 패키지(pip install axllm, Maven Central, crates.io 등)를 추가하고 동일한 기호(ai, ax, agent, flow)를 가져옵니다.

대상 사용자

  • 언어 간 타입 안전성을 원하는 프로덕션 LLM 서비스를 구축하는 개발자.
  • 모델 계약의 단일 소스가 필요하고 코드 변경 없이 제공자를 전환하려는 팀.
  • 메모리, 도구 사용, 샌드박스 실행이 있는 에이전트가 필요한 프로젝트.

링크


위의 모든 세부 사항은 저장소의 README에서 직접 가져온 것입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트