연결 프로그램이 시작될 때 GET /openapi/v1/runtime-config를 호출하고,
설정한 주기마다 갱신합니다. 이 엔드포인트에는 config:read와
policies:read 권한이 모두 필요합니다.
contentHash는 프롬프트 본문의 소문자 SHA-256 16진수 값입니다. 기존
프롬프트를 교체하기 전에 반드시 검증합니다.
변경된 경우에만 받기
응답에는 revision을 기준으로 만든 ETag가 포함됩니다. 다음 요청에서
이 값을 전달합니다.
304 Not Modified 응답에는 본문이 없습니다. 현재 설정을 계속 사용하며
캐시 파일을 다시 저장하지 않습니다.
로컬 캐시 동작
다른 언어 SDK도 다음 순서로 구현하는 것이 좋습니다.
- 이전에 검증한 설정을 로컬 저장소에서 읽습니다.
- 캐시가 정상이면 서버 응답을 기다리지 않고 먼저 사용합니다.
- 서버 확인은 백그라운드에서 진행합니다.
- 전체 응답 검증이 끝나고
revision이 바뀐 경우에만 교체합니다.
- 설정한 주기와 무작위 지연을 적용해 갱신합니다.
- API에 접근할 수 없으면 마지막으로 정상 확인한 설정을 유지합니다.
관련 실행 이벤트와 이슈 기록에는 versionId를 promptVersionId로
연결합니다. 이를 통해 실행 결과를 실제 사용한 프롬프트 버전과 연결할 수
있습니다.
정책은 도구 호출 직전에 로컬에서 판단합니다. 도구가 동작할 때마다 API를
호출하지 않습니다.
TypeScript SDK .lynxconf
TypeScript SDK는 마지막으로 검증한 설정을 압축된 .lynxconf 파일로 저장할
수 있습니다.
파일 저장은 기본적으로 꺼져 있습니다. path를 생략하면 운영체제의 사용자
캐시 디렉터리를 사용합니다. 파일을 쓸 수 없는 환경에서는
cache.storage에 별도 저장 구현을 전달할 수 있습니다.
.lynxconf는 버전이 있는 짧은 JSON 구조를 gzip으로 압축한 바이너리
파일입니다. LXCF 식별자와 SHA-256 체크섬을 포함합니다. 새 설정 전체가
검증되고 revision이 달라졌을 때만 임시 파일을 쓴 뒤 원자적으로
교체합니다. shutdown()은 진행 중인 저장이 끝날 때까지 기다립니다.
손상됐거나 현재 API·워크스페이스·클라이언트와 맞지 않는 캐시는 삭제하고
서버에서 다시 받습니다. API 키는 .lynxconf에 저장하지 않습니다.
프롬프트에는 외부에 공개하면 안 되는 지침이 포함될 수 있습니다. 로컬 캐시를
애플리케이션 설정과 같은 수준으로 보호하고, 프롬프트 본문이나 API 키를 진단
로그에 남기지 마세요.