ScienceDiscovery
English GitHub

Runtime Core 边界

本文描述进程内 native executor 的执行内核。JiuwenSwarm 运行自己的 Agent loop;共同的产品控制面见运行时架构。

@sciencediscovery/runtime-core 是稳定、与领域无关的执行内核。它拥有 Agent Loop 状态机, 只负责所有 Agent 执行共有的不变量:

运行时依赖四个端口,没有产品包依赖。RuntimeBuilder 是它的类型化注册入口,会拒绝不完整的 组合,并在运行开始前冻结端口注册表:

services/api/src/bootstrap/runtime.ts 是组合根。它的原生 Agent 适配器将端口连接到提示词构建、 历史压缩、模型传输、工具注册表、权限门禁、溯源钩子和 SSE 事件。这些策略刻意保留在 Runtime Core 外。子 Agent 通过既有的 task 工具派发,因此内核不定义独立的 Agent 派发路径。

依赖方向为:

apps -> services/api -> 能力适配器 -> packages/runtime-core

能力代码可以实现 Runtime Core 端口。Runtime Core 绝不能导入 HTTP/SSE、提供方客户端、工具、MCP、 权限、Artifact、溯源、Specialist 或其他 ScienceDiscovery 领域包。

当前能力归属:

services/api/src/bootstrap/platform.ts 为这些包选择具体的存储、MCP、网络、模型、评审和执行 适配器。HTTP 服务消费这个已组合的服务集合并转换 HTTP/SSE 请求,不拥有领域构造。SessionStore、 MCP Node 进程客户端、HTTP/SSE 转换,以及小型的 Reviewer-to-AgentRun 桥接仍是服务适配器。 能力包依赖窄端口,而不是 SessionStore 或其他服务实现。

动态上下文模式、Contributor 边界、预算和完整输入跟踪导出见动态上下文组装。

评审行为始终是显式的:注册 Artifact 不会自动派发评审。主 Agent 调用 review_checkpoint,结果通过 普通 Tool Result/SSE 路径返回。Runtime Core 和 Artifact manager 都不含 Review outbox 或隐式的 Review 协调器。

此前私有的 packages/agent-runtime 聚合包已在仓库中的所有导入迁移到各自能力包后移除;不保留兼容 服务定位器或重复运行时。

权限、溯源、Artifact、数据源和 Specialist 仍是领域服务/适配器,只能通过已注册工具或事件进入 执行。它们不得向 Runtime Core 添加控制分支。

pnpm architecture:check 强制执行这一方向:包不能导入 services/apps,生产服务不能使用兼容 门面,Runtime Core 不能使用非相对导入,已经移入包的领域源码不能在 services/api 下重新创建。