机制详解:多任务流并行管理、独立演化的完整实践指南)
Reef 场景Scenario机制详解多任务流并行管理、独立演化的完整实践指南【免费下载链接】reefContinual learning infra for self-improving agents项目地址: https://gitcode.com/gh_mirrors/reef7/reefReef 是一套面向自进化 Agent 的持续学习基础设施其中的场景Scenario机制是其多任务流并行管理与独立演化的核心每一个场景都独占一条推理 → 记录 → 训练 → 评估 → 发布的完整流水线彼此隔离、各自进化。本文用尽量少的代码带你理解 Reef 场景机制的设计思路、关键组件与常用操作。什么是场景为什么 Agent 需要它一句话定义一个场景 一条独立演化的学习任务。在 Reef 中场景不是简单的配置名而是一个自包含的聚合体aggregate。阅读 reef/scenario/scenario.py 可以发现每个Scenario实例独占四样东西组件作用源码位置ScenarioBinding冻结该场景的准入、Surface、推理运行时与推理后端binding.pyTrainer该场景专属的训练器处理器、算法状态reef/train/trainer.pyArtifactReleaseChain该场景自己的制品发布链Git 支撑一场景一 refrelease_chain.pyScenarioStore该场景的记录存储与提交日志会话reef/storage/scenario.py这意味着两个场景之间不共享训练状态、不共享发布历史、不共享记录水位。场景 A 训练到第 100 步、场景 B 还在第 3 步完全互不干扰——这就是多任务流并行、独立演化的底层保证。各模块的职责边界在包文档中写得非常清楚建议作为导航阅读reef/scenario/init.py。多任务流并行管理注册表如何调度场景所有场景的加载、查找与并发控制都收口在场景注册表ScenarioRegistry中源码见 reef/scenario/registry.py按名解析客户端请求携带x-reef-scenario头指定场景名注册表负责解析出对应的Scenario实例未知场景可按部署配置自动创建allow_implicit_creation或返回错误。每场景独立锁每个场景持有自己的RLock场景 A 的提交/回滚不会阻塞场景 B 的推理服务。训练场景不变量每个进程至多绑定一个训练场景权重训练场景推理型场景则可以任意多个并行存在。可枚举清单GET /reef/scenarios返回所有已知场景及其当前发布版本loaded / durable 两种状态。外部客户端如何区分任务流答案很简单所有推理与反馈请求都带x-reef-scenario头记录AgentRecord据此归属到对应场景。协议细节见 docs/reference/http-api.rst。独立演化每个场景都有自己的发布链场景机制最精妙的部分在于版本化演化。每个场景的每一次被接受的更新都会创建一个带父指针的 release并且三种身份严格分离详见 docs/advanced_topics/state-model.rstrelease_id—— Reef 的发布决策何时发布、谁审批content_id—— 被选中的模型/框架内容本身runtime_load_id—— 具体推理引擎的一次权重加载由此带来三个对使用者极有价值的操作均通过 HTTP 路由完成回滚RollbackPOST /reef/scenarios/{scenario}/rollback不重写历史而是把更早 release 的content_id以新的release_id重新发布为头步号保持单调。晋升PromotePOST /reef/scenarios/{scenario}/promote把一个待评审的 release 切为服务版本。提交Commit候选被评估门控通过后ScenarioCommitter 严格按先持久化字节 → 提交存储 → 推进服务头 → 应用训练器状态的顺序落盘崩溃后可完整恢复。场景的创建与崩溃恢复一次 load_or_create 搞定场景的创建/恢复统一由 reef/scenario/factory.py 中的ScenarioFactory.load_or_create()完成流程可以概括为五步注册调用后端fork()作为原子注册点并发下以持久化注册为准校验检查 release 选择器是否与场景既有绑定冲突冲突返回 HTTP 409恢复存储从提交日志还原场景步数、算法状态与记录高水位重建训练器由 Recipe 构建 trainer并重放高水位之后未被消费的记录已消费记录绝不二次训练激活制品在确认已提交的头版本可服务后才允许流量进入。任何一步失败工厂都会关闭本次尝试拥有的训练器与存储会话——不会出现半加载的僵尸场景。场景级模型配置按任务流切换推理模型 ️除了演化 Harness 内容场景机制还支持按场景替换推理模型POST /reef/scenarios创建时可通过model对象url、model、api、api_key把某个场景指向任意 OpenAI / Anthropic 协议的端点。要点✅ 创建幂等重复创建不会覆盖已有配置✅{model: null}可显式恢复部署默认模型✅ API Key 以0600权限的私有文件原子保存永不进入制品或 API 回执⚠️ 模型覆盖要求推理型运行时训练运行时拥有自己的权重。完整说明见 docs/user-guide/scenario-models.rst。场景常用 API 速查表路由用途GET /reef/scenarios列出所有场景与当前 releasePOST /reef/scenarios显式创建场景可附带模型配置POST /reef/scenarios/{scenario}/update更新训练模式 / 模型配置GET /reef/scenarios/{scenario}/commits分页查看已提交的元数据GET /reef/scenarios/{scenario}/releases该场景的发布历史新→旧POST /reef/scenarios/{scenario}/rollback回滚到更早的发布版本DELETE /reef/scenarios/{scenario}删除场景状态归档而非物理销毁多场景协同的端到端行为有专门的测试保障可参考 tests/reef_service/test_multi_scenario_bridge.py 与 tests/reef_service/test_multi_scenario_training.py。小结场景机制给工程师带来的三件事 隔离—— 记录、提交日志、算法状态、发布链全部按场景切分多任务流并行互不污染可恢复—— 提交日志 高水位重放让任何一次崩溃后的场景都能从最近一致点继续演化可运营—— 回滚、晋升、模型替换、归档都通过标准 HTTP 路由完成配合 docs/user-guide/operate.rst 即可运维一套多场景部署。想动手体验从 docs/getting-started/quickstart.rst 的推理与反馈快速上手开始再到 docs/developer-guide/write-a-recipe.rst 为自己的任务流写一个 Recipe你就拥有了第二条独立演化的场景流水线。【免费下载链接】reefContinual learning infra for self-improving agents项目地址: https://gitcode.com/gh_mirrors/reef7/reef创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考