@hy-sde-org/dsh-graph-stream

中文文档
0.2.1-rc.5发布于 2026/11/01MITTypeScriptES Module零依赖

代理图流层:纯派生(记录、跟踪、准备、移交、调度协调)和流程本地协调器。

中文使用文档
文档目录11 节
  1. 总结
  2. 目录表
  3. 使用这个包
  4. 理解实现
  5. 确定性恒等式和排序
  6. 预测
  7. 和解和协调者
  8. 遗嘱执行人缝
  9. 进一步的探索
  10. 模型经验
  11. 已知的限制和延迟的工作

@hy-sde-org dsh-graph-stream

英语| 中文

总结

dsh-graph-stream 是Agent图的派生层。它层层叠叠 @hy-sde-org/dsh-graph-control (持久决策存储)和拥有 可以从提交的行重新计算的所有内容:工作状态投影、记录折叠、跟踪/路线派生、准备意图、输入切换和单次飞行协调驱动程序(AgentGraphCoordinator),它沿着Maka编写的驱动循环(供应→监督→选择→渲染→执行)对该存储。

拆分遵循Maka的一个硬性规则:存储是权威,流层除了通过存储自己的commit/claim/provision方法外,永远不会写入任何内容。这里的每一个投影都是确定的和纯粹的——重新计算它永远不会开始工作;允许和执行是存储密封的(在它观察到的时间表修订时,使用预先分配的转弯/运行身份进行索赔)。

id是确定的sha256切割为32十六进制字符(graph_intent_…, graph_operator_…, graph_edge_…, graph_route_…, graph_record_…, graph_claim_…),因此重播在构造上是幂等的。标识比较使用UTF-16代码单元顺序(compareAgentGraphIdentity),而不是语言环境比较。

这个包不提供任何工具、提示符或插件行——执行器适配器和管理器工具会使用它。

目录表

使用这个包

import Storage, { storageBackendServiceKey } from '@deepseek-ai/dsh-storage'
import { GraphControlStore } from '@hy-sde-org/dsh-graph-control'
import { AgentGraphCoordinator } from '@hy-sde-org/dsh-graph-stream'

const backend = await ctx[storageBackendServiceKey('sqlite')]
const unit = await backend.kv.open(GraphControlStore.descriptor)
const store = await GraphControlStore.open(unit)

const coordinator = new AgentGraphCoordinator(graphId, {
  store,
  executor: { provisionOperator, runClaimedAgentGraphIntent, stopSession },
  recordSource,
  newId,
})

await coordinator.scheduleUpdate({ graphId, addWork: [work] }) // commits, then wakes the drive
const result = await coordinator.reconcileAndWait()             // runs one drive to idle

理解实现

确定性恒等式和排序

stableHash(value) = sha256: +十六进制的规范化JSON(排序对象键, undefined/函数/→象征 "[undefined]", bigint→数值型字符串; required/enum 排序为 localeCompare,日期→ISO)。所有id都使用前32个十六进制字符。 compareAgentGraphIdentity UTF-16代码单元顺序在进程中是稳定的吗 localeCompare.

预测

  • 安排投影 (projectAgentGraphSchedule):将仅追加的更新日志折叠到模型可见的工作视图中;验证连续性(从1开始的修订),完成后没有更新,没有重复的工作id,错误的图id被拒绝。 stopped 赢了 superseded.
  • 记录褶皱 (readCommittedAgentGraphProjection):从每个(操作员,会话)提交的事件中派生仅引用的记录;跳过部分事件;每次激活最多一个终端记录;确定的订单。
  • 跟踪 (validateAgentGraphTraceTopology, buildAgentGraphTraceSnapshot):验证DAG(重复的id /端点,自循环,未知操作符,通过Kahn的循环)并派生出一条路由(记录×传出边)。
  • 准备 (buildAgentGraphReadinessSnapshot): map策略-每条路由通过声明的传入边缘接收一个意图,并根据触发记录进行密封(policyFingerprint, readinessContextFingerprint, graph_intent_… 通过稳定哈希)。
  • 切换 (hydrateAgentGraphInputHandoffs, renderAgentGraphScheduledWorkPrompt):解析有界结论文本(16 KiB/条,共48 KiB; … 省略号(对代码点进行二进制搜索)并呈现操作符提示符:指令+ GRAPH_OPERATOR_HANDOFF_PROTOCOL + <agent_graph_input_handoffs> 与 < 逃出来的一样 \u003c. 记录保持仅供参考;文本仅在呈现时解析。

和解和协调者

reconcileAgentGraphSchedule 走Maka的阶段:A提供操作符→B派生主管意图→C选择(现有索赔总是;新的上限) maxNewActivations、过剩→ activation_limit)→D呈现(全部或失败)→E执行(在修订时索赔→运行 admitExecution =在修订时开始执行)。状态: reconciled | waiting | limit_reached | failed | cancelled | stale. applyScheduleStops 替换(status: 'superseded')、取消索赔和批量停止会话。

AgentGraphCoordinator 是流程本地单次飞行驱动程序: scheduleUpdate 提交一行然后唤醒驱动器; reconcileAndWait 恰好连接一个驱动器; recover 重新启动后,以非空调度恢复图; stop/wake/isClosed 表面相同的生命周期。当工作或停止的目标仍然存在时,驱动器重新运行,并将现有的索赔视为已经分派(执行者根据索赔id进行重复)。

遗嘱执行人缝

export interface AgentGraphExecutor {
  provisionOperator(request: AgentGraphOperatorProvisionRequest): Promise<AgentGraphOperatorProvisionResult | undefined>
  runClaimedAgentGraphIntent(input: AgentGraphRunClaimedIntentInput): Promise<void>
  stopSession(sessionId: string, opts?: { reason?: string }): Promise<void>
}

协调器从不直接调用提供者——执行器包提供子代理/工作树支持的实现。

进一步的探索

  • @hy-sde-org/dsh-graph-control:该层折叠的持久行。
  • src/reconcile.ts / src/coordinator.ts:驱动回路和状态推导。
  • src/hash.ts / src/identity.ts:每个id和指纹所依赖的规范化和排序原语。
  • tests/graph-stream.spec.ts / tests/reconcile.spec.ts:投影、验证、切换和端到端驱动场景,针对真实的sqlite支持的存储。

模型经验

该包是纯TypeScript,具有狭窄的、单一职责的模块,没有环境状态。类型是显式的;结果是普通数据(除了协调器之外,没有跨模块边界的类实例)。错误进行 reason 验证失败和存储冲突错误的代码不加更改地传播。

已知的限制和延迟的工作

  • 准备策略类型: map 只有- - - - - - all_settled 而管理就绪类型则被推迟到管理工具层。
  • 没有客户端投影/检查点(onCheckpoint);没有工具视图分页;住院医师是不可能的。
  • 映射策略意图是派生的,但不是由调和器自动分派的——它们会出现在管理器工具上。
  • 唱片的形状是带有出处的复制(细长),故意偏离了Maka的18面全唱片;流层永远不会改变存储的记录。
  • 协调器是进程本地的:持有相同图存储的另一个进程不会自动唤醒这个驱动程序(唤醒传递是) dsh-graph-wakes)。

版本与发布记录

@hy-sde-org/dsh-graph-stream 共发布 9 个版本,首次发布于 2026/09/10;过去 12 个月发布了 9 个版本。

版本发布日期距今
0.2.1-rc.5latest2026/11/012 天前
0.2.1-rc.32026/10/259 天前
0.2.1-alpha.42026/10/1618 天前
0.2.1-alpha.22026/10/1321 天前
0.2.0-rc.22026/10/031 个月前
0.1.7-rc.22026/09/291 个月前

关于 @hy-sde-org/dsh-graph-stream 的常见问题

@hy-sde-org/dsh-graph-stream 是什么?

代理图流层:纯派生(记录、跟踪、准备、移交、调度协调)和流程本地协调器。

如何安装 @hy-sde-org/dsh-graph-stream?

在项目目录运行 npm install @hy-sde-org/dsh-graph-stream,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@hy-sde-org/dsh-graph-control(^0.2.1-rc.5)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@hy-sde-org/dsh-graph-stream 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@hy-sde-org/dsh-graph-stream 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@hy-sde-org/dsh-graph-stream 可以商用吗?

@hy-sde-org/dsh-graph-stream 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@hy-sde-org/dsh-graph-stream 还在维护吗?

最新版本 0.2.1-rc.5 发布于 2026/11/01(2 天前);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/09/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。