运行时设计:激活、工作进程与模型历史¶
本页面保留了早期设计笔记中已实现的决策。它描述了当前的边界;历史内存测量值与单机测试次数并非性能保证。
懒激活¶
工具/能力目录使用轻量导入的描述符。注册表检查不得急切导入未使用的提供者、解析器或可选模块。注册表按需加载实现;模块选择与插件审批在激活时仍然有效。兼容性导出可以使用懒包装器以保留现有导入路径。
前端同样延迟设置编辑器。在更改加载方式时,保留锚点/导航激活和身份验证的 single-flight 行为。使用导入边界测试和前端路由预算进行验证,而不仅仅是暖进程计时。相关源码位置:registries、module assembly 和 settings。
短期解析工作进程¶
重量级同步提取即使在线程中运行,也可能在长生命周期的 API 进程中保留原生库内存。隔离工作进程边界 通过 worker_process.py 启动短生命周期的解释器,使用内部可导入的可调用对象和私有临时输入/结果文件。
这是受信任的内部 IPC。其序列化的 Python 对象并非面向不受信任上传或网络输入的 API。客户端无法选择任意可调用对象。子进程边界在退出时释放其内存,但其本身并非针对不受信任代码的 OS 安全沙箱。
超时和取消必须在返回前终止并等待(join)进程树。并发由 DEEPTUTOR_ISOLATED_WORKERS 限制(默认两个);调用点可以覆盖默认超时。继续保持平台特定的清理以及结果/错误恢复由工作进程测试覆盖。解析器失败必须仍可与空结果的成功提取区分开来。
私有模型历史¶
显示消息与面向提供者的模型历史服务于不同目的。model_history.py 保留带版本的私有 model_turn,包含准备好的输入、快照、模型/工具消息、回放元数据和请求指纹。公开的会话响应和导出会将其隐去。没有有效模型元数据的旧行保留其显示历史回退。
共享循环将变化的运行时事实作为命名快照追加,同时保持常驻指令稳定。替换一个快照会改变该部分;它不得将源材料重新解释为系统策略。工具可用性、工作区路径和资源权限仍然来自其正常的权威来源。
保留/压缩必须将模型回合的工具调用和结果保持在一起。被中断的工具会获得明确的不可用结果,而不是伪造的成功响应。路由更改会移除不兼容的私有提供者回放字段,同时保留公开证据。更改必须保留已存储的对话内容和账户/工作区隔离。
缓存证据¶
请求缓存诊断会比较规范化的请求指纹和未更改的前缀消息。它们并不能证明提供者实际返回了缓存的 token。实际的提供者用量计数器是计费/缓存命中行为的证据;路由更改、驱逐、工具更改和压缩都可能使复用失效。
从模型历史回归测试和请求缓存测试入手。可选的 prompt-cache 集成测试使用合成输入与配置的真实提供者:
这可能会产生提供者用量。通过合成缓存探测并不等于生产环境的延迟或成本基准,并且特定阶段的流水线可能具有与共享聊天循环不同的历史契约。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 dee/DeepTutor