Prompt Server System Design
- 1. Краткое резюме
- 2. Контекст и границы
- 3. Архитектурные требования
- 4. Предполагаемые компоненты
- 5. Базовый сценарий
- 6. Целевые API-группы
- 7. Language Surface Model
- 8. Границы безопасности и доверия
- 9. Надёжность и деградация
- 10. Сравнение с adjacent systems
- 11. Операционные свойства
- 12. Связанные документы
Статус: planned, not implemented.
1. Краткое резюме
Prompt Server задуман как deterministic delivery boundary поверх published
assets. Он должен отделить authoring system от runtime consumption и работать
только с опубликованными данными, не наследуя draft или GUI-specific semantics.
В целевом виде это не просто remote render endpoint, а published prompt
registry + deterministic render API.
2. Контекст и границы
В области охвата:
-
published prompt registry;
-
read-only resolve/render API;
-
published-only access;
-
parameter validation;
-
deterministic delivery runtime.
Вне области охвата:
-
authoring;
-
draft mutation;
-
AI-assisted editing;
-
automatic semantic rewrite;
-
доступ к GUI review states и raw preview semantics.
Смежные и целевые будущие клиенты:
-
C++ remote client;
-
Python remote client / SDK;
-
backend services;
-
agent runtimes.
3. Архитектурные требования
Будущий server boundary должен:
-
работать только с published repository view;
-
использовать deterministic render path как основной runtime contract;
-
делать blocks and compositions адресуемыми server entities;
-
не иметь mutation endpoints;
-
fail closed при недоступности published data;
-
не fallback-ить к draft state;
-
иметь более строгий API, чем внутренний authoring engine.
4. Предполагаемые компоненты
Планируемые компоненты:
-
server API layer Внешний контракт для registry lookups, resolve и render.
-
published repository access layer Читает только published assets.
-
renderer Выполняет deterministic resolve/render published compositions.
-
optional parameter validation layer Проверяет runtime params до render.
-
authn/authz layer Ограничивает доступ к delivery API.
-
future remote client layer Вне server runtime, включает C++ и Python clients к одному server contract.
-
local bindings layer Вне server runtime, включает local C++ and Python surfaces поверх того же engine semantics.
5. Базовый сценарий
Шаги:
-
Клиент на C++ или Python запрашивает published composition, block или render.
-
Server resolve-ит identity и version через published repository.
-
Для render-запроса выполняется parameter validation.
-
Renderer строит deterministic result.
-
Server возвращает metadata и, если нужно, rendered text клиенту.
6. Целевые API-группы
На уровне capability ожидаются три группы endpoint-ов:
-
registry endpoints lookup published blocks/compositions, versions and metadata.
-
resolve endpoints получить resolved composition view и входящие published dependencies.
-
render endpoints получить deterministic rendered prompt с runtime params.
На этом этапе не фиксируется окончательный transport, но shape контракта должен поддерживать примерно такие сценарии:
-
GET /blocks/{id} -
GET /compositions/{id} -
GET /compositions/{id}/versions -
POST /render -
POST /resolve
7. Language Surface Model
В целевой архитектуре нужно различать четыре поверхности:
-
C++ local APIlocal engine access. -
Python local APIlocal engine access with Python-idiomatic form. -
C++ remote clientserver access over remote contract. -
Python remote clientserver access over the same remote contract.
Server design не должен предполагать, что Python является единственным или основным удалённым клиентом.
8. Границы безопасности и доверия
Ключевые правила:
-
draft assets недоступны server runtime;
-
publish/update/delete не являются частью server API;
-
server не должен выполнять authoring-side AI workflows;
-
GUI-specific preview modes не являются частью delivery contract.
9. Надёжность и деградация
При недоступности published repository:
-
сервис должен fail closed.
При некорректных параметрах:
-
сервер должен возвращать validation error.
При отсутствии runtime implementation:
-
документация должна явно помечать capability как planned, а не как уже работающий сервис.
10. Сравнение с adjacent systems
Этот server design ближе к prompt registry/render service, чем к:
-
generic LLM gateway;
-
observability platform;
-
remote authoring API.
Поэтому его корректнее сравнивать с prompt-management частью Langfuse-like систем, а не с full tracing platform.
Сильные стороны такого выбора:
-
сохраняется asset-centric модель;
-
версии и identity остаются first-class concepts;
-
deterministic render остаётся центральным runtime contract.
11. Операционные свойства
Ожидаемые свойства:
-
published-only policy;
-
deterministic rendering;
-
stricter runtime API surface;
-
отдельный operational surface по сравнению с GUI/TUI workbench;
-
возможность использовать один и тот же published prompt через несколько типов клиентов и из двух language surfaces.