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
ToolRegistryprotocol 뒤 transactionalSQLiteRegistrypersistence - 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 LangGraphStateGraph- 명시적으로 활성화하는 동일 출처 OpenAPI 문서 간 제한적
$ref해석 - chained local reference, Path Item reference,
allOfobject composition OpenAPI handling 개선 - 분리된 스냅샷과 안전한 중단(fail-closed) 오류 처리 규칙을 갖춘, 순서가 보장된 신뢰된 동기·비동기 실행 전후 훅
Installation¶
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를 참고하십시오.