콘텐츠로 이동

SchemaRouter 0.4.0

SchemaRouter 0.4.0은 첫 non-prerelease baseline을 더 operational한 runtime으로 확장하면서 동일한 좁은 책임을 유지합니다. Natural-language request를 schema-constrained tool call로 compile하고 explicit local trust boundary를 통해 실행합니다.

Durable registry/trace storage, richer bounded decision surface, stronger OpenAPI ingestion, native LangGraph integration, trusted execution hook을 추가합니다. Persistence, model-assisted selection, network reach, interception behavior를 바꿀 수 있는 기능은 explicit opt-in 또는 local control입니다.

Highlights

  • public ToolRegistry protocol 뒤 transactional SQLiteRegistry persistence
  • validated non-executing replay를 가진 append-only SQLiteRunTraceStore
  • registry version으로 cached되는 exact-recall candidate indexing
  • identifier preservation/deterministic fallback의 bounded output-field selection
  • FieldSpec.path를 통한 explicit nested-object projection
  • local metadata precheck와 provider veto-only semantics의 conservative evidence-sufficiency decision
  • application-owned embedding callable용 provider-neutral EmbeddingDecisionBackend
  • structured finite-choice output + local revalidation의 local OllamaDecisionBackend
  • schemarouter[langgraph]를 통한 native LangGraph StateGraph
  • 명시적으로 활성화하는 동일 출처 OpenAPI 문서 간 제한적 $ref 해석
  • chained local reference, Path Item reference, allOf object composition OpenAPI handling 개선
  • 분리된 스냅샷과 안전한 중단(fail-closed) 오류 처리 규칙을 갖춘, 순서가 보장된 신뢰된 동기·비동기 실행 전후 훅

Installation

pip install schemarouter

Optional integrations:

pip install "schemarouter[mcp]"
pip install "schemarouter[langchain]"
pip install "schemarouter[langgraph]"
pip install "schemarouter[llamaindex]"
pip install "schemarouter[jev]"
pip install "schemarouter[otel]"

Ollama support는 추가 Python SDK가 필요 없습니다. Application이 OllamaDecisionBackend를 명시적으로 생성해 locally installed model에 opt-in합니다.

Persistence와 replay

SQLiteRegistry는 trusted invoker/credential을 serialize하지 않고 catalog metadata를 transactionally persist합니다. Reopened registry는 deterministic ordering과 monotonic registry version을 보존합니다.

SQLiteRunTraceStore는 validated runtime event stream을 persist하고 planner/network/tool을 다시 실행하지 않고 replay할 수 있습니다. Payload redaction은 runtime event contract가 통제합니다.

Bounded decisions

Optional decision layer는 독립적으로 통제되는 세 surface를 다룹니다.

  • candidate / endpoint selection
  • output-field selection
  • conservative evidence sufficiency

Embedding, Jev, Ollama, provider-neutral callable backend는 locally authorized finite option에서만 선택할 수 있습니다. Unknown ID는 fail closed하며 abstention/error는 configured fallback policy를 따르고 model output은 schema member를 만들거나 execution authority를 부여할 수 없습니다.

OpenAPI

Trusted source에 대해 cross-document OpenAPI reference를 explicit enable할 수 있습니다. Resolution은 entry document origin으로 제한되고 redirect/depth/document-count/aggregate-byte limit이 있습니다. Default는 off입니다.

Planner는 더 많은 same-document reference와 allOf object-composition case를 처리하면서 full runtime JSON Schema validation과 machine-readable compatibility reporting을 유지합니다.

Execution hooks

신뢰된 실행 전후 훅은 원본에서 분리된 스키마·호출·결과 스냅샷을 관찰할 수 있습니다. 훅은 호출이나 결과를 변경할 수 없으며, 값을 반환하는 동작은 유효하지 않습니다. 훅 실패는 재시도하지 않고, 비동기 훅을 기다리는 실행 전후에는 스키마와 바인딩 상태를 다시 확인합니다.

Compatibility와 validation

0.4.0은 0.3.0 대비 intentional public API removal이 없습니다. Pre-1.0이므로 이후 0.x minor에는 documented compatibility change가 있을 수 있습니다.

Required release gate:

  • Python 3.10–3.14 core tests
  • Windows + Python 3.14 smoke
  • Pyright
  • 82% branch coverage floor
  • minimum runtime dependency
  • wheel·sdist 빌드 및 새 환경 설치 스모크 테스트
  • strict MkDocs
  • LangChain, LangGraph, LlamaIndex, Jev, MCP, OpenTelemetry 연동

Python 3.15는 non-blocking preview이며 live public-service/provider benchmark는 deterministic merge blocker가 아닌 external evidence입니다.

Security posture

  • remote schema/model output은 execution authority가 아님
  • persistent registry는 trusted invoker/credential을 serialize하지 않음
  • external OpenAPI reference는 explicit/same-origin/bounded
  • bounded-decision provider는 option을 invent하거나 missing evidence를 upgrade할 수 없음
  • execution hook은 call/result contract를 mutate할 수 없음
  • runtime payload tracing은 default redacted
  • 만료된 스키마 지문 및 호출기 바인딩 거부
  • retry는 trusted local opt-in이 없으면 read-only default

상세 contract/roadmap은 CHANGELOG.md, SECURITY.md, docs/versioning.md, docs/framework-maturity.md를 참고하십시오.