恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Deepseek Agent Harness教程(五) | 事件系统:五种分发模式,让插件各司其职

  • 首页
  • 资讯中心
  • /
  • Deepseek Agent Harness教程(五) | 事件系统:五种分发模式,让插件各司其职

相关资讯

基于大数据的同城租房大数据可视化分析系统(源码+lw+部署文档+讲解等) 2026/8/25 23:50:44
先开专票后转账:哪家AI平台API聚合平台API中转服务能极速响应的企业级大模型通道 2026/8/25 23:50:44
企业级 CDP 架构对比:CRM 生态、事件管道、云数仓与一体化平台 2026/8/25 23:50:44

最新资讯

腾讯云ADP智能体接入QQ群:从零搭建AI社群助手指南
LangGraph 核心构建:从 StateGraph 到条件边的工作流设计
双指针算法:力扣面试高频考点与实战解析
小厂技术面试全攻略:高频考点与实战技巧
双指针算法在力扣面试题中的核心应用与实战技巧
Qt跨线程通信:invokeMethod原理、应用场景与性能优化实战

今日推荐

Python random 模块常用函数详解:从入门到实战
Hermes接入团队协作后,我推翻了三个效率假设
免费AI大模型调教指南:打造专属网文写作助手

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Deepseek Agent Harness教程(五) | 事件系统:五种分发模式,让插件各司其职

发布时间:2026/8/25 23:50:44
Deepseek Agent Harness教程(五) | 事件系统:五种分发模式,让插件各司其职 DeepSeek Harness 事件系统五种分发模式让插件各司其职从“打电话”到“喊广播”一文看懂 Agent 框架的通信机制一、为什么需要事件DeepSeek Harness 的核心理念是“一切皆插件”。模型适配器、工具注册表、会话日志、Agent 主循环……全部是可替换的插件。问题来了插件之间怎么通信如果插件 A 要调用插件 B就得直接引用它——这就产生了耦合。更麻烦的是如果 A 调 B、B 又依赖 A就会形成循环依赖。Harness 的答案是事件。简单打个比方服务Service 打电话。你知道找谁拨号等对方接拿到答案再干活。事件Event 在办公室里喊一嗓子。你不知道谁在听甚至可能没人听喊完你就继续干自己的事。事件把“谁关心这件事”从“说话的人”那里剥离出去。想加一个新的监听方写个插件在配置里让它监听那个事件就行了——被监听的包一个字都不用改。二、五种分发模式速览Harness 的事件系统提供了五种分发模式对应不同的交互契约模式是否 await是否有返回值能否中断典型场景emit❌❌❌广播事实日志、遥测parallel✅❌❌必须等所有人都完成刷盘serial✅✅✅问一圈谁先答用谁bail❌✅✅同步版的 serialwaterfall✅✅✅请求改写/否决中间件下面逐个拆解。1. emit喊一嗓子就走这是最简单的模式。监听器同步执行返回值被忽略异常会阻断后续监听器。// 监听器记日志ctx.on(tool/executed,(name:string,duration:number){console.log([LOG] 工具 ${name} 执行耗时${duration}ms)})// 监听器上报遥测ctx.on(tool/executed,(name:string,duration:number){console.log([METRIC] tool.duration:${duration}ms)})// 发出事件不等任何人ctx.emit(tool/executed,code-search,123)关键点适合“通知类”场景——日志、监控、审计。喊完就走谁听谁不听发话的人不关心。2. parallel一起跑一起等所有监听器并行执行必须全部完成才算成功。有一个失败就抛出AggregateError。// 监听器1落盘ctx.on(session/flush,async(sessionId:string){awaitwriteToDisk(sessionId)})// 监听器2上报遥测ctx.on(session/flush,async(sessionId:string){awaitsendTelemetry(sessionId)})// 必须等两个都完成awaitctx.parallel(session/flush,session-abc-123)Harness 中session/flush是极少数使用 parallel 的事件。刷盘这种事必须确认所有数据都落稳了才能继续。3. serial排队问谁先答用谁监听器按注册顺序执行第一个返回有效值的监听器终止链条。什么是“有效值”null、false、undefined算“放行”继续往下问。其他任何值包括空字符串、数字0、空对象{}都算“有效答案”会立即返回并终止。ctx.on(agent/should-stop,async({cost}){if(cost10)returnCost exceeded// 有效值终止returnnull// 放行下一位})ctx.on(agent/should-stop,async({turn}){if(turn5)returnToo many turnsreturnundefined// 放行})// 问一圈谁先给出停止理由就用谁的constreasonawaitctx.serial(agent/should-stop,{turn:3,cost:12})在 Harness 中agent/turn-stopping就是用 serial 模式的——各插件依次判断是否应该停止当前轮次谁先给出“该停了”的理由谁就说了算。4. bailserial 的同步版和 serial 逻辑完全一样区别在于不 await——所有监听器必须是同步函数。ctx.on(slash/input-begin-command,(input:string){if(input.startsWith(/help)){return{command:help,args:input.slice(5)}}returnnull})// 同步调用不等constresultctx.bail(slash/input-begin-command,/help 如何安装)适合那些不能把调用链染成async的场景。5. waterfall洋葱模型最难也最强大这是最复杂、最核心的模式。监听器形成一个洋葱链每个监听器都可以调用next()把控制权交给下游不调用next()直接返回 →短路下游全部跳过修改传给下游的参数包装下游返回的结果// 监听器1缓存检查最外层ctx.on(agent/request,async(payload,next){if(cache.has(payload.prompt)){returncache.get(payload.prompt)// 不调 next() → 短路}returnnext()// 继续往里走})// 监听器2请求日志中间层ctx.on(agent/request,async(payload,next){console.log([请求] prompt长度${payload.prompt.length})constresultawaitnext()console.log([响应] 耗时${Date.now()-start}ms)returnresult})// 监听器3参数改写最内层ctx.on(agent/request,async(payload,next){constmodified{...payload,temperature:Math.min(payload.temperature,1.0)}returnnext(modified)// 修改后继续往下传})// 调用方提供“默认实现”最内层constresultawaitctx.waterfall(agent/request,{prompt:介绍一下AI,temperature:1.5},async(payload){// 真正调用 LLM APIreturnawaitcallLLM(payload)})关键纪律在 waterfall 中如果你只是“路过看一眼”比如记个日志必须调用await next()并把结果返回。忘了调next()链条就从这里静默断开所有下游都不会执行——不会报错只会发现“工具不跑了”。Harness 中agent/pre-step、agent/request、tools/execute、tools/pre-execute等核心扩展点都采用 waterfall 模式。三、一句话收尾事件是 Harness 让插件“各司其职、互不打扰”的秘诀。五种分发模式覆盖了从“广播通知”到“洋葱中间件”的全部通信需求——选对模式插件就像拼乐高一样插上去就能用拔下来系统不受影响。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号