AX Code 받기 · 무료문서

이 페이지는 영어 문서의 번역입니다. 명령, 식별자, 예제는 그대로입니다. 런타임 7.24.4 · SDK 2.6.7. 영어 원문

HTTP와 OpenAPI 호환성

상태: 활성 범위: 현재 상태 최종 검토: 2026-09-02 담당: ax-code sdk

AX Code에는 두 가지 통합 경로가 있습니다.

아래 JSR 패키지 이름은 릴리스 준비가 되었지만 아직 첫 공개 버전을 받지 않았습니다.

  • 자사 TypeScript와 JavaScript 앱 통합에는 @defai-digital/ax-code-sdk을 사용합니다.
  • 자사 앱과 데스크톱 GUI 작업에는 @defai-digital/ax-code-sdk/headless 또는 @defai-digital/ax-code-sdk/grpc를 사용합니다.
  • 다른 언어나 호환 프로세스 경계가 필요하면 ax-code serve과 OpenAPI 계약을 사용합니다.
  • AX Code가 전송의 양쪽을 모두 소유하는 자사 데스크톱 GUI 작업에는 네이티브 SDK 전송을 사용합니다.

HTTP/OpenAPI 경로는 호환과 생성된 클라이언트를 위한 기반입니다. Python, Go, Java, Rust와 그 밖의 클라이언트가 같은 서버 API를 호출하게 하며, AX Code가 모든 언어의 완전한 공식 패키지를 유지하겠다고 약속하지는 않습니다. gRPC/네이티브 계약을 쓸 수 있을 때 자사 데스크톱 GUI 안의 선호되는 특권 브리지로 보지 마십시오. 더 이상 자사 JavaScript SDK 하위 경로로 노출되지도 않습니다.

경로를 고릅니다

필요 권장 경로 이유
같은 프로세스의 TypeScript나 JavaScript 소스 작업 공간 createAgent() 어댑터 비공개 AX Code 런타임 소스 패키지를 의도적으로 해석할 수 있을 때만 사용 가능
자사 데스크톱/네이티브 GUI @defai-digital/ax-code-sdk/grpc 더 좁은 헤드리스 계약, 서버 스트리밍, 메타데이터와 기한에 유리하고 WebView 노출이 적음
로컬 백엔드가 있는 TypeScript나 JavaScript @defai-digital/ax-code-sdk/headless 전체 HTTP SDK 표면을 노출하지 않고 수명 주기와 이벤트 투영을 형식 있게 유지
Python, Go, Java, Rust, 또는 다른 런타임 packages/sdk/openapi.json에서 클라이언트 생성 언어마다 자사 패키지 유지보수를 더하지 않고 HTTP 계약을 재사용
CI, 자동화, 일회성 스크립트 ax-code serve에 대한 HTTP 호출 단순한 배포 모델과 쉬운 프로세스 격리

오늘 공식인 것

  • @defai-digital/ax-code-sdk는 자사 TypeScript와 JavaScript SDK입니다. 공개 앱 경계는 headless과 grpc입니다.
  • @defai-digital/ax-code-sdk/grpc는 자사의 선택적 데스크톱/네이티브 헤드리스 전송 퍼사드입니다.
  • @defai-digital/ax-code-sdk/headless은 로컬 백엔드 프로세스 경계를 위한 자사 TypeScript와 JavaScript 수명 주기/이벤트 SDK입니다.
  • packages/sdk/openapi.json는 생성된 HTTP 클라이언트를 위한 OpenAPI 스냅샷입니다.
  • 생성된 JavaScript가 아닌 클라이언트는 HTTP 위의 통합으로 지원되지만, 패키지 담당자, 시험, 릴리스 워크플로가 없으면 자사 게시 패키지가 아닙니다.

기본 HTTP 흐름

서버를 시작합니다.

export AX_CODE_SERVER_PASSWORD="$(openssl rand -base64 24)"
ax-code serve --hostname=127.0.0.1 --port=4096

@defai-digital/ax-code-sdk/headless 수명 주기 도우미는 일회용 Basic Auth 비밀번호를 만들고, 반환된 클라이언트를 일치하는 Authorization 헤더로 자동 연결합니다. 수동 ax-code serve 사용자는 AX_CODE_SERVER_PASSWORD을 명시적으로 설정하고 해당하는 Basic Auth 헤더를 보냅니다. /doc의 실시간 OpenAPI 문서와 모든 서버 엔드포인트는 루프백 전용입니다.

SDK가 관리하는 백엔드 도우미는 0.0.0.0 같은 네트워크 호스트 이름을 항상 거부합니다. 이전 allowNetworkBind 옵션은 소스 호환을 위해 남아 있지만 더 이상 로컬 전용 정책을 우회하지 않습니다. 데스크톱 GUI 셸은 @defai-digital/ax-code-sdk/grpc나 프로세스 안 SDK 경계를 선호해야 합니다.

HTTP 런타임 도우미는 더 이상 공개 JavaScript SDK 하위 경로가 아닙니다. @defai-digital/ax-code-sdk/headless, gRPC HTTP 폴백, 이전 AX Code 런타임 코드가 쓰기 때문에 패키지에는 생성된 클라이언트 내부가 아직 들어 있습니다. 외부 통합은 @defai-digital/ax-code-sdk에서 HTTP 런타임 값을 가져오지 말고, 헤드리스, gRPC, 또는 OpenAPI 스냅샷에서 생성한 클라이언트를 사용해야 합니다.

서버 건강을 확인합니다.

curl http://127.0.0.1:4096/global/health

스냅샷을 JSON과 OpenAPI로 검증한 뒤 OpenAPI 스냅샷에서 클라이언트를 생성합니다.

openapi-python-client generate --path packages/sdk/openapi.json
oapi-codegen -package axcode -generate types,client packages/sdk/openapi.json > axcode.gen.go
openapi-generator-cli generate -i packages/sdk/openapi.json -g java -o ./ax-code-java

생성 가드레일

OpenAPI 문서를 언어 중립 계약으로 취급합니다. 작은 사용성 계층이 필요하지 않다면 개별 경로를 감싸는 큰 래퍼를 손으로 유지하지 마십시오.

AX Code 버전과 생성된 클라이언트 버전을 함께 고정합니다. 서버 경로 스키마가 바뀌면 클라이언트를 다시 생성하고, 명확한 호환 메모와 함께 릴리스합니다.

생성된 코드를 손으로 쓴 도우미와 분리합니다. 생성된 파일은 바꾸기 쉬워야 하고, 손으로 쓴 파일은 인증, 기본값, 재시도, 더 높은 수준의 편의 API만 담아야 합니다.

서비스 경계 동작을 유지합니다. JavaScript가 아닌 클라이언트는 HTTP 서버 경로를 사용하며, 프로세스 안의 createAgent(), JavaScript 사용자 정의 도구 실행, @defai-digital/ax-code-sdk/testing 유틸리티를 받지 않습니다.

생성된 클라이언트를 자사 상태로 올리기 전에 어려운 부분을 다룹니다.

  1. OpenAPI 검증이 CI에서 실행됩니다.
  2. 계약 시험이 ax-code serve을 시작하고 대표적인 경로를 호출합니다.
  3. 클라이언트가 이벤트 API를 노출하면 스트리밍이나 SSE 동작을 시험합니다.
  4. 디렉터리 범위 헤더와 인증 동작을 문서화합니다.
  5. 게시, 버전 관리, 소유가 명시적입니다.

SDK 패키지에는 현재 스냅샷을 위한 가벼운 로컬 가드가 있습니다.

pnpm run check:openapi

SDK 패키지 안에서 작업할 때는 패키지 수준 명령도 사용할 수 있습니다.

pnpm --dir packages/sdk/js run validate:openapi

이것은 packages/sdk/openapi.json이 파싱 가능한 JSON인지, OpenAPI 3.x를 선언하는지, 생성된 클라이언트에 필요한 핵심 경로를 포함하는지 검증합니다.