顺势而为
一次对话的内部骨架:拆开 Harness 的主循环与事件总线
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
顺势而为
社区首页
>
专栏
>
一次对话的内部骨架:拆开 Harness 的主循环与事件总线
一次对话的内部骨架:拆开 Harness 的主循环与事件总线
顺势而为
关注
发布于 2026-10-26 18:29:04
发布于 2026-10-26 18:29:04
172
0
举报
概述
几乎所有 Agent 框架最后都会长成同一个样子:模型说要调工具 → 执行 → 把结果喂回去 → 再问模型。真正拉开差距的,是这套循环怎么抽象。Harness 给了两个答案:
文章被收录于专栏:
技术专栏Herness
技术专栏Herness
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
上海同盟
目录
01 把一次对话拆成两层
02 turn():回合打开与步循环
03 preStep():模型看到什么,由它决定
04 step():模型请求 + 工具执行
05 buildRequest():发不发得出去,由它决定
06 先把事件总线本身看清楚
07 五种派发模式,一次讲清
模式 1 emit() —— 同步广播,只通知不等待
模式 2 parallel() —— 并发执行并等待,失败聚合
模式 3 serial() —— 串行 await,可短路
模式 4 bail() —— serial 的同步版
模式 5 waterfall() —— 瀑布链,可双向改写
08 实战:跟着 agent/pre-step 走一遍瀑布链
第 0 步 先记住「接力棒」模型
第 1 步 preStep() 从哪里发起
第 2 步 dispatch.waterfall() 到底做了什么
第 3 步 Cordis 怎么把监听器串成链
第 4 步 agent-instructions:工作区上下文怎么插进去
第 5 步 time-context:当前时间怎么追加到末尾
第 6 步 收口:preStep() 拿到结果之后
09 收尾:三条心法与三个练习
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档