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 서비스를 구축하는 개발자.
- 모델 계약의 단일 소스가 필요하고 코드 변경 없이 제공자를 전환하려는 팀.
- 메모리, 도구 사용, 샌드박스 실행이 있는 에이전트가 필요한 프로젝트.
링크
- npm: https://www.npmjs.com/package/@ax-llm/ax
- PyPI: https://pypi.org/project/axllm/
- crates.io: https://crates.io/crates/axllm
- Maven Central: https://central.sonatype.com/artifact/dev.axllm/ax
- Discord 커뮤니티: https://discord.gg/DSHg3dU7dW
위의 모든 세부 사항은 저장소의 README에서 직접 가져온 것입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트