@hy-sde-org dsh-tool-graph
英语| 中文
总结
dsh-tool-graph Agent Graph的面向模型的工具层(以Maka的 stream-graph-supervisor-tools). 它贡献了三种工具 view_agent_graph, update_agent_graph, yield_agent_graph -加上 orchestration:graph 提示符部分,以及它们运行的主机端控制器。这些工具是仅根的和直接的:只有图的根会话可以调用它们,它们通过id来处理图,而不是将工作生成委托给模型。
主机组成控制-存储和流层包,构造一个 AgentGraphController,并在 agentGraphController 服务。插件解析该服务 ctx.get;当它不存在时,工具仍然会挂载(代理预设永远不会破坏可选主机程序集上的会话创建),并且每个图形工具调用都会失败 [agent-graph-unavailable] 直到主机提供控制器。所有持久决策都流经控制器的协调器,因此工具调用只提交一个存储更新,而不会重新运行提供程序。
每个模型可见列表都以显式为界 omitted 计数,每一个 update_agent_graph 负载在到达存储之前由Maka的判别容忍预处理器进行清理。源三重幂等使重放或重试调用成为no-op:相同的图/会话/密钥负载提交一次并返回现有行。
目录表
使用这个包
import toolGraph, { createAgentGraphController } from '@hy-sde-org/dsh-tool-graph'
import { GraphControlStore } from '@hy-sde-org/dsh-graph-control'
const store = await GraphControlStore.open(unit)
const controller = createAgentGraphController({
store,
rootSessionId: session.id,
newId,
options: { executor, recordSource, maxNewActivations: 4 },
})
ctx.provide('agentGraphController', controller)
await ctx.plugin(toolGraph, {})
每个图根会话只构造一个控制器。插件的 apply 注册三个工具和提示部分;将种子会话的代理与挂载的预设组合在一起 tool-graph 使工具解决。
理解实现
- 只是执行: DSH没有
direct_only/nesting工具标志,因此保护装置位于工具体中call.sessionId必须等于控制器的rootSessionId,否则not_root_session。标识来自实时执行上下文(agent.session.id加上turnBoundary投影的lastTurn)。 - 运行/把映射: DSH没有Maka运行列表,因此一个工具调用映射到代理循环转弯边界:
runId = graph_run_<n>和turnId = graph_turn_<n>从lastTurn,toolCallId从来电显示。地图是有记录的,不是声称与马卡相同。 - 幂等性:
graphUpdateId散列(graphId, sessionId, runId, turnId, toolCallId);一个显式的idempotencyKey替换run/turn/call的所有三个方法,以便在任何以后的回合中重试相同的更新只提交一次(created: false(相同的修订,一个存储行)。 - 预处理器:
cleanUpdateInput/cleanAddWorkInput通过discriminator -选择字段targetKind只保留其中一个agentId/subagentId/operatorId,replacementMode: 'none'滴replaces,指令被修剪。边界匹配Maka: 32个addWork项,64个输入id, 64个选择结果,60000个指令字符,20个停止目标,64个完成结果id, 4000个原因字符。 - 视图边界:通过一个不透明的活动(请求的)工作页面
work:<id>光标(每页64个);终端工作、停止的目标、记录(被截断的摘要)和准备意图被减少到64,每个都是明确的omitted计数。view_agent_graphIs total:未知图返回空快照。 - 后的语义工具从不轮询
yield_agent_graph调用claimSupervisorWake当请求的工作、现场索赔或准备意图存在并返回时nothing_to_yield否则。主机驱动协调并从持久唤醒行唤醒根会话。
进一步的探索
模型经验
模型看到三个工具和一个提示部分(这个包中的其他部分都是模型可见的):
view_agent_graph-一个图形的有界快照:工作状态,截断的记录摘要,准备意图,omitted计数和不透明nextCursor用于分页活动状态。update_agent_graph-每次调用一个持久的决策:通过添加工作(每个项目一个标识字段)targetKind,replaces一个已存在的工作id),停止目标,或者完成具有已提交结果id的图。idempotencyKey使重试安全。yield_agent_graph-结束监工的配合,图形工作继续进行;主机在下一个持久检查点唤醒根会话。orchestration:graph提示部分-指示主管放弃而不是投票,每波报告结果,永远不要发明工作id。
已知的限制和延迟的工作
- 没有图注册表:存储没有创建/列出图操作,所以
view_agent_graph在未知图上返回空快照,而不是unknown_graph(错误代码存在于未来的图形注册表中)。 - 完成的工作停留
requested(流层状态模型没有终端工作状态),因此yield_agent_graph.pendingWorkCount计数请求的调度行——活动(声明/意图)由唤醒门反映,而不是计数。 - 这些工具接受显式的
workId每个addWork项(Maka的扩展),因此更新可以确定地引用自己的新工作;确定性派生的id仍然是默认值。 - 该插件通过手工构建的测试组合来运行;装载机引导的cordis。Yml组合测试被推迟。预定的安装在 dsh-graph-host自述:主机行提供控制器,此包作为图根会话的预设行挂载。