AX Code 받기 · 무료문서

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

하네스 제어와 검증된 평가

상태: 활성

범위: 현재 상태

최종 검토: 2026-09-14

담당: ax-code 런타임

모델별 노력, 사고 스위치, 추론 재생은 현재 모델 추론 제어를 보십시오.

선택적 컨텍스트와 도구 제어

AX Code 구성에서 각 실험을 독립적으로 켭니다.

{
  "experimental": {
    "context_recovery": true,
    "mcp_tool_discovery": true,
    "tail_reminders": true,
    "read_only_recipes": true
  }
}

네 옵션 모두 기본값은 꺼짐입니다. 함께 채택하기 전에 자신의 모델로 작업 성공과 경과 시간을 측정합니다. 기존 도구 권한과 격리 설정은 유지됩니다. 성능 진단을 보십시오.

context_recovery은 context_recover을 노출하고, 성공한 압축 요약에 소스 포인터를 더합니다. 도구는 키워드, 메시지 ID, 선택적 부분 ID, 결과 한도를 받습니다. 되돌린 자료, 숨은 추론, 무시되거나 합성된 텍스트를 제외하고 현재 세션만 읽습니다. 압축 전 기록도 포함됩니다. 원래 메시지/부분 ID와 제한된 발췌를 반환합니다. 검색은 페이지당 최대 100개 부분과 각 부분의 처음 16,000자를 훑습니다. before는 더 오래된 부분으로 이어갑니다. 일치가 없다고 기록 전체에 그 텍스트가 없다는 증명은 아닙니다. 포크는 복사된 기록과 새 ID를 사용합니다. 자격 증명 할당은 발췌에서 가려집니다.

mcp_tool_discovery은 내장 도구를 계속 사용할 수 있게 하고, 연결된 MCP 도구를 위해 tool_search를 도입합니다. 검색은 일치하는 스키마를 최대 다섯 개 반환하고, 다음 모델 요청에서 그 도구를 사용할 수 있게 합니다. 실행하지는 않습니다. 선택은 세션으로 범위가 정해지고, 도구 32개로 제한되며, 요청마다 현재 수용과 교집합을 만듭니다. 큰 스키마는 검색 결과에서 빠지고 다음 요청에서 불러올 수 있습니다. tool_search가 거부되면 보통의 수용된 MCP 카탈로그가 계속 사용할 수 있습니다. 이름이 tool_search인 기존 도구와 충돌하면 오류가 납니다.

tail_reminders은 AX Code가 생성한 동적 턴 알림만 공급자 요청의 끝으로 옮깁니다. 저장된 사용자 메시지, 어시스턴트 추론, 도구 기록, 정적 지시는 바뀌지 않습니다. 모델 동작과 캐시 사용이 바뀔 수 있습니다. 그 자체로 속도 향상을 확립하지는 않습니다.

read_only_recipes은 read_recipe를 노출합니다. 일반 도구 디스패처를 통해 의존하는 read, glob 또는 grep 호출을 최대 여덟 개 실행합니다. 각 자식은 자신의 권한 검사, 훅, 취소, 세션 증거를 갖습니다. 레시피는 코드를 평가하거나, 셸 명령을 실행하거나, 파일을 쓰거나, MCP 도구를 호출하거나, 다른 레시피를 중첩할 수 없습니다.

{
  "steps": [
    { "id": "files", "tool": "glob", "parameters": { "pattern": "src/**/*.ts" } },
    {
      "id": "source",
      "tool": "read",
      "parameters": { "filePath": { "$ref": { "step": "files", "path": ["paths", 0] } } }
    }
  ],
  "select": [{ "step": "source", "path": ["text"] }]
}

기준 glob 결과에는 paths과 truncated가 있습니다. grep 결과에는 matches가 있고, 그와 함께 path, line, text이 있습니다. 읽기 결과에는 kind, 렌더링된 text, truncated이 있습니다. 이전 결과는 그 단계와 자체 속성 경로로 고릅니다. 배열 선택은 리터럴 contains 필터와 limit을 지원합니다. 반환된 상태와 잘림을 확인합니다. 레시피에는 60초 취소 기한, 32KB 인수 예산, 192KB 중간 예산, 제한된 최종 출력이 있습니다. 취소는 소유한 도구가 안정될 때까지 기다립니다. 새 저장소 지시나 미디어는 실행을 멈추고 일반적인 자식 출력을 유지하므로, 모델이 계속하기 전에 그것을 봅니다. 성공한 선택은 모델 요청에서만 중간 출력을 바꿉니다. 원래 자식 기록은 기록에 남습니다. 중단된 부모는 자식 출력을 유지합니다.

실행 중인 생성을 교정합니다

GET /session/{sessionID}/steering는 활성 생성 UUID와 최근 영수증을 반환합니다. HTTP 서버를 통해 프로젝트를 고를 때는 기존의 directory 쿼리 매개변수를 포함합니다.

POST /session/{sessionID}/steering을 다음으로 보냅니다.

{
  "expectedGeneration": "00000000-0000-4000-8000-000000000001",
  "clientID": "correction_1",
  "text": "Preserve the existing public function signature."
}

예의 UUID가 아니라 GET의 UUID를 사용합니다. accepted은 교정이 대기 중이라는 뜻입니다. applied은 루프 경계에서 사용자 메시지로 쓰였고 그 메시지 ID를 포함한다는 뜻입니다. 공급자 완료를 보장하지는 않습니다. rejected는 적용되지 않았다는 뜻입니다. 수명 주기 훅이 수용을 거부할 수 있습니다. 받아들여진 교정은 곧 끝날 생성을 한 번 더 반복하도록 늘리므로, 결승선에서 보낸 교정은 거부되지 않고 적용됩니다. 취소와 오류는 여전히 대기 중인 교정을 거부하며, 오래된 생성은 후속 세대에 텍스트를 받아들이게 할 수 없습니다. 같은 재시도는 유지된 같은 영수증을 반환합니다. 기존 클라이언트 ID 아래의 다른 내용은 HTTP 409를 반환합니다. TUI ctrl+s 지금 보내기 동작이 이 엔드포인트를 사용합니다.

한 단계의 병렬 도구 호출

모델이 하나의 어시스턴트 메시지에서 여러 도구 호출을 내보내면, 런타임은 세션 범위의 읽기/쓰기 게이트를 통해 동시에 실행합니다. 읽기 전용 도구는 레인을 공유하고 겹칩니다. 파일 편집, bash, bash_input, 노트북 편집, ops_apply, MCP 도구, 동시성에 안전하지 않은 자식을 포함한 batch는 배타 레인을 차지하고 도착 순서대로 혼자 실행됩니다. 기다리는 동안 중단된 호출은 실행되지 않습니다. 배치는 자신이 보내는 호출에 대해 자신의 순서 장벽을 유지하고, 자식 세션은 자신의 게이트를 갖습니다.

영수증은 프로세스 로컬이며, 세션당 최대 256개, 대기 요청 32개입니다. 종료 영수증과 비활성 세션 항목은 내보내질 수 있습니다. 다시 시작한 뒤에는 새 세대를 얻고 저장된 메시지를 맞춥니다. 이 API는 다시 시작을 가로질러 지속적인 영수증 조회를 약속하지 않습니다. 생성된 SDK는 session.steering와 session.steer을 노출합니다.

저장된 후속을 실행 중인 턴으로 조향합니다

POST /task-queue/{taskID}/steer은 대기 중인 후속의 텍스트를 세션의 실행 중인 생성에, 다음 단계 경계에서 받아들입니다. POST /session/{sessionID}/steering과 같은 전달 지점입니다. 같은 요청에서 대기열 행을 취소하고, 감사를 위해 행 페이로드에 steeredInto(생성 UUID)와 steeredAt을 기록합니다. 16,000자까지의 텍스트만 있는 후속은 조향할 수 있습니다. 조향된 텍스트는 실행 중인 턴의 에이전트, 모델, 도구를 적용합니다. 첨부, 후속이 아닌 종류, 이미 안정된 행, 너무 큰 텍스트는 HTTP 400으로 거부됩니다. 요청 도중에 다른 상태로 경주하는 행은 HTTP 409를 반환합니다.

응답은 최신 대기열 항목과 null일 수 있는 영수증을 담습니다. 활성 생성이 없으면 행은 그대로 두고 응답은 null 영수증과 함께 generation_not_active을 보고합니다. 호출자는 그때 POST /task-queue/{taskID}/send-now로 폴백할 수 있습니다. 그것은 행을 대기열 앞으로만 옮기고, 여전히 턴이 끝나기를 기다립니다. 조향된 행은 되돌릴 수 없지만, cancelled으로 /queue 기록에 감사 필드와 함께 계속 보입니다.

TUI에서 input_submit_steer 키 바인딩(기본 ctrl+s)은 입력된 초안이 있으면 그것을 조향합니다. 바쁜 세션 위의 빈 작성기에서는 저장된 대기열의 조향 가능한 접두부를 FIFO 순서로 올립니다. 첫 번째 조향 불가 행에서 멈추므로, 이후 후속이 그 앞으로 뛰어넘지 않습니다. 사이드바 후속 구역과 /queue 대화 상자는 같은 행별 지금 조향 동작을 제공하고, 대기 중인 후속 근처의 힌트가 바인딩된 키를 보여 줍니다. 생성된 SDK는 taskQueue.steer을 노출합니다.

검증된 작업에서 스킬을 제안합니다

스킬 후보는 AX Code의 기존 로컬 저장소에 있는 명시적 기록입니다. 승격하기 전에는 스킬 탐색에 들어가지 않으며, 자동 모델 호출이나 지시 다시 쓰기를 일으키지 않습니다.

제안 JSON 파일에는 name, description, applicability, procedure, evidence을 넣습니다. 그중 마지막은 sessionID, messageID, partID을 포함합니다. 증거는 현재의 깨끗한 Git 리비전에 대해 실행된 테스트 또는 타입 검사 봉투가 있는, 원래의 성공한 verify_project 결과를 식별해야 합니다. 성공 문장이나 임의의 셸 종료는 충분하지 않습니다. 검증은 같은 리비전에서 다른 세션의 성공한 검증을 인용해야 합니다.

ax-code skill candidate propose --proposal proposal.json
ax-code skill candidate show verified-procedure
ax-code skill candidate validate verified-procedure --proposal independent-evidence.json
ax-code skill candidate promote verified-procedure
ax-code skill candidate retire verified-procedure

깨끗한 리비전 검사가 의미 있으려면 입력 JSON을 작업 트리 밖이나 무시되는 로컬 디렉터리에 둡니다. 승격은 기존 스킬을 덮어쓰지 않고 .ax-code/skill/{name}/SKILL.md을 만듭니다. 승격 전에 소스 증거를 다시 확인합니다. 심볼릭 링크된 디렉터리는 거부됩니다. 폐기는 후보 자신의 바뀌지 않은 파일만 제거합니다. 수동 편집은 충돌을 일으킵니다. 캐시된 스킬 탐색을 새로 고치려면 기존 런타임 인스턴스를 다시 시작합니다. 통과한 검사는 그 검사에 대한 증거를 확립합니다. 승격 전에 절차의 적용 가능성을 검토합니다.

맞춰진 실험을 캡처합니다

소스 checkout에서 다음을 사용합니다.

pnpm --dir packages/ax-code exec tsx script/harness-eval.ts run /path/to/manifest.json > /path/to/runs.ndjson
pnpm --dir packages/ax-code exec tsx script/harness-eval.ts compare /path/to/runs.ndjson baseline candidate

신뢰하는 운영자 매니페스트에는 명시적인 provider/model, runtimeRevision, 선택적 CLI command argv, repetitions, timeoutMs, 이름이 있는 arms 정확히 두 개, tasks가 있습니다. 각 팔에는 선택적 features(위의 실험 플래그)과 toolProfile이 있습니다. 각 작업은 id, prompt, 인라인 files(path/content), oracle을 제공합니다. 오라클은 코딩 프로세스가 끝난 뒤 Node가 실행하는 신뢰된 JavaScript입니다. process.argv[1]는 임시 픽스처를 식별합니다. 그 코드는 에이전트 작업 공간 밖에 남으며 모델 응답에서 오지 않습니다.

각 시도는 새로운 Git 픽스처를 받습니다. 오라클은 처음 픽스처에서 종료 1로 실패해야 합니다. 러너는 고정된 헤드리스 CLI 호출을 사용하고, 반복 사이에 팔 순서를 바꾸며, 시간 제한을 적용하고, 완료된 시도 뒤에 오라클을 다시 실행합니다. elapsedMs는 코딩 프로세스와 실행 후 검증을 포함합니다. verificationMs은 후자를 따로 식별합니다. 픽스처 설정과 처음의 실패 검사는 제외됩니다. 스트림은 완료, 실패, 시간 초과, 취소된 시도를 끝나는 대로 기록합니다. 원문 프롬프트, 서브프로세스 출력, 자격 증명은 평가 기록에 내보내지지 않습니다. 중단된 코호트는 불완전하게 남으며 맞춰진 비교를 만들 수 없습니다.

비교는 중복과, 없거나 맞지 않는 작업/모델/코호트/반복 쌍을 거부합니다. 실패하고 검증되지 않은 시도는 성공률 분모에 남습니다. 지연 중앙값과 짝지은 비율은 검증된 성공에 명시적으로 조건이 붙습니다. P95는 작업/모델/코호트/팔 칸 안에서 성공 관찰 20개가 필요합니다. 칸을 섞은 집계는 그것을 생략합니다. 코호트는 매니페스트를 해시하지만, 런타임 리비전과 외부 공급자/구성/캐시 조건은 여전히 운영자 제어가 필요합니다. 작은 스모크 실행이 일반적인 속도 우위를 확립하거나 기본값 변경을 정당화하지는 않습니다.

기능 선택과 복구 진단

자율 요청은 모델에 컨텍스트가 최소 64,000토큰 있고, 추론 지원과 도구 지원이 있을 때 긴 에이전트 컨텍스트 팩을 포함할 수 있습니다. 레지스트리 항목이 없는 모델은 세 가지를 모두 해석된 모델 메타데이터에 선언해야 합니다. 보충 팩에는 2,048토큰 문자 추정 상한이 있습니다. 대화 창이 아닙니다. 명시적인 부정 선언과 등록된 제한은 수용을 막습니다. 이 프롬프트 텍스트 최적화는 캐시나 보존된 사고 호환을 확립하지 않으며, 자동 Super-Long 기한과 속도를 바꾸지도 않습니다. 그것들은 기존 자격과 재정의 규칙을 유지합니다.

최신 사용자 메시지 이후 연속된 구조화 도구 실패 두 번(합성 꼬리 알림 전에 셈)은, 쓸 수 있는 노력 변형이 있으면 다음 모델 호출에서 더 깊은 추론을 요청합니다. 성공한 도구 결과는 횟수를 초기화합니다. 명시적인 사용자 노력과 구성된 추론 옵션이 우선합니다. 이것은 노력 선택을 바꾸지, 재시도 한도나 도구 권한을 바꾸지 않습니다.

로컬 llm.request 재생 이벤트에는 capabilityResolution이 포함됩니다. 프로토콜, 컨텍스트 창, 컨텍스트 팩이나 Super-Long 모드가 선택되었는지, 연속 도구 실패, 추론 선택 또는 적용되지 않은 이유입니다. boundary: "policy-selection"는 AX Code의 결정을 설명합니다. 플러그인과 공급자 SDK는 여전히 최종 요청을 바꿀 수 있습니다. 명시적인 GPT-6 노력 값은 보존됩니다. API는 low 이상을 요구하며, none이나 minimal는 요구하지 않습니다. 이벤트는 프롬프트나 자격 증명 본문 대신 요청 해시를 유지합니다. 노력 변형이 없다고 공급자 기본 사고가 꺼졌다는 뜻은 아닙니다.

짝지은 하네스 캡처는 입력, 출력, 추론, 캐시 읽기 토큰, 완료된 도구 호출, 도구 오류를 위해 CLI의 JSON step_finish과 tool_use 이벤트를 읽습니다. 중복 부분 ID는 한 번만 셉니다. metricsStatus는 observed, partial 또는 unavailable입니다. 잘렸거나 잘못된 스트림과 중단된 시도는 합계를 보류합니다. 비교는 각 지표의 관찰된 실행 수와 빠진 실행 수, 중앙값을 보고하며, 관찰이 있는 실패 시도도 포함합니다. 빠진 값은 빠진 채로 남습니다. 이 카운터는 내보낸 런타임 이벤트를 설명하지, 공급자 요금, 자식 세션 사용량, 네이티브 CLI 내부 도구를 설명하지 않습니다. 종료 도구 이벤트가 없는 완전한 관찰 스트림은 도구 호출 0을 보고합니다. 오라클 검증이 작업 성공의 원천으로 남습니다. 사용량만으로 성공한 복구나 더 나은 품질이 확립되지는 않습니다.