给运行中的 Agent 中途插话:steering 的原理与实现
文章讲清了 Agent steering 的实现原理,即把执行循环的粒度从 turn 降到 step,在 step 边界开放可写的 inbox,让用户补充的话在下一个 step 被模型读到而不打断当前任务。
把 turn 拆成 step 并在 pre-step 边界合并 inbox,能换掉现在只能 cancel 重来的插话流程;代价是要自己处理消息幂等、落盘和长工具调用拉长边界。
文章讲清了 Agent steering 的实现原理,即把执行循环的粒度从 turn 降到 step,在 step 边界开放可写的 inbox,让用户补充的话在下一个 step 被模型读到而不打断当前任务。
把 turn 拆成 step 并在 pre-step 边界合并 inbox,能换掉现在只能 cancel 重来的插话流程;代价是要自己处理消息幂等、落盘和长工具调用拉长边界。
作者拆解 DeepSeek Harness 团队 10 月底开源的 Super-agent 架构,核心是把单会话 Agent 改成 Router 调度层加 Worker 执行层的常驻系统,Router 只做路由不配执行工具,Worker 隔离并发。
能拿走 Router-Worker 双层配置、AGENTS.md 规则和 Worker 知识库 Schema 三段模板,落到知识沉淀与本地部署线;前提是先把高频知识结构化沉淀,任务复用率低时这套账算不过来。
作者在 2 vCPU / 1.8 GiB 的阿里云 ECS 上只亲手做了两件事,装 DeepSeek Harness 和开通 RAM 子账号,其余建库、部署项目、开二级域名、扩证书、排查故障都交给 Agent 执行。
能拿走一套人机分工模板,人只装 DSH 和开 RAM 子账号,其余建库、开二级域名、扩证书、排障交给 Agent;代价是要自己定授权范围和密钥轮换,写操作还得人工点头。
作者通读 DeepSeek Harness(DSH)源码后,给自己列了一份约 1000 行、零第三方依赖的 Python 最小 CLI Agent 施工图,含 10 个模块、7 个决策点和 12 条不变量。
能拿走事件日志当唯一真源、历史靠投影推导、结果按模型顺序提交这套骨架,落到软件工厂的 CLI Agent 主循环;代价是要自己补 max_steps 和 dispatch 层超时,没有 OS 级沙箱时 bash 只能始终 ask。
作者逐层拆解 DeepSeek Harness 团队开源的 Super-Agent 原型 dsh-superagent-prototype,梳理其 Router-Worker 双层架构、事件驱动两级过滤、Thread 订阅直通、Inline & Spill 加链式召回、存算分离与 Watchdog 五块设计。
能拿走 Router-Worker 双层分派、Fast/Slow Path 两级事件过滤和 Thread 直投三条设计,落到多任务 Agent 产线;代价是要先装 DeepSeek Harness、不支持 Windows、0.1 原型很吃内存。
作者拆解了 30k star 的开源终端编码 Agent DeepSeek-Reasonix,它不做上下文压缩,而是用缓存优先、只追加的会话循环把长会话 Token 成本降下来。
能拿走三层上下文分区加只追加日志的会话设计,把长会话前缀缓存命中率拉高,落到本地编码 Agent 和长文档 Agent 的降本上;代价是强绑 DeepSeek 前缀缓存,换模型优势即失效,且上下文只增不减会撞窗口上限。
作者逐文件核对 DeepSeek Harness 团队 2026-10-31 发布的 Super-agent 架构文章与同日开源的 deepseek-ai/dsh-superagent-prototype(MIT/TypeScript,三天 1.36 万 star),指出原型实装的只有授权门禁,文章主角 Watchdog 在 docs/007 中并不存在。
能抄的是授权门禁三件套,主动行为默认影子模式只记账、准入规则写成代码而非提示词、凭证不可变且恢复前重验,可直接换掉现在靠提示词约束 Agent 越权的做法,前提是只支持单仓库且 Watchdog 未实装。
作者用 80 行纯标准库 Python 复现了主动性 Agent 的 Fast/Slow Path 两级过滤,6 条模拟事件中 3 条在程序层被零模型成本滤掉、1 条被语义层拒绝,仅 2 条进入派发。
能拿走 Fast/Slow Path 两级过滤的 80 行纯标准库模拟器和 observe/auto 双模式灰度,落到软件工厂的事件准入环节,代价是 Slow Path 用关键词替身,误报压力全转到提示词质量上。
作者复盘一次 Claude Code 会话因消息 930665 token 加 128000 输出预留超过 deepseek-v4-pro 的 1048576 上限而全部请求报 400 的事故,指出 /compact 需先发全量记录所以同样失败。
能拿走一套上下文超限的抢救顺序和两个 settings.json 配置,落到本地模型部署与软件工厂的长任务会话上;前提是接受输出预留从 128K 降到 64K,且 env 改动必须重启进程才生效。
文章以 DeepSeek《Super-agent 设计探索》的 Router/Worker 双层架构为蓝本,讲如何用事件驱动把任务起点从人身上移开,解决人只能同时跟进 3 到 5 个会话的注意力瓶颈。
能拿走两级过滤加路由表的事件调度骨架,代码可直接跑,落到软件工厂的告警、CI、日报自动化上;代价是慢路径语义判断要接真模型,且需自建事件中台和决策卡片。
作者在干净的 Ubuntu 22.04 上从零实测 DeepSeek Harness 0.2.1-rc.5,用 npx 或全局 npm 两条命令装好,让它写 Markdown 表格转 CSV 工具,1 轮 11 步产出 5 个文件、+678 行、合计 632 行代码,3 个测试 328 ms 全绿。
能拿走 Node 22 门槛、npm 11 需 --allow-scripts 放行原生模块、headless 只认环境变量 Key 这三个坑,落到本地模型部署和软件工厂的 CI 环节,代价是预览版会有破坏性变更。
LangGraph 实战系列第 5 讲介绍让 LLM 稳定输出 JSON 的做法,即用 model.with_structured_output(Schema, method="function_calling") 把交卷伪装成一次 tool call,由 Pydantic schema 锁定字段、类型和枚举,返回类型化对象而无需手工解析。
能拿走 with_structured_output 配 Pydantic schema 强制结构化输出的写法,落到知识沉淀和 Agent 派单链路上;代价是 schema 每轮占输入 token,DeepSeek 只能走 function_calling。
作者用 Python 3.12 加 browser-use v0.13.14 给本地 AI 中控接上浏览器能力,记录了三个致命坑及解法。启动竞态改用自己拉起 Chromium 开远程调试端口、轮询 CDP 就绪后再交给框架,Windows 后台子进程一律 DEVNULL 防管道死锁,代理需显式加 --proxy-bypass-list=127.0.0.1,localhost。
能拿走 CDP-Connect 自拉 Chromium 再轮询端点、DEVNULL 防 Windows 管道死锁、代理 bypass 本地地址、验证码关键词兜底上限 2 次,落到本地模型部署与软件工厂的浏览器工具链,代价是单任务 1~3 分钟且需高指令跟随模型。
作者把 6 岁小朋友的一句「想玩水浒、能选好汉、打高俅」原样交给 DSH(DeepSeek Harness)智能体,配合 DeepSeek V4.1 在不到 3 小时内从空目录生成可玩的 Unity 游戏《水泊梁山 · 一百单八将》,代码已开源。
可借鉴的是把 Unity 的 -batchmode、-runTests、-autotest、-shots 等命令行开关做成 Agent 自检回路,让它自己构建、截图、改错;代价是初始化顺序和材质缓存得自己管,且绑死 macOS 系统字体。
作者用 DeepSeek V4.1 Flash 搭了一套写长篇小说的 LLM 应用,分控制层 8 环节状态机、约束层 26 张按环节加载的规则卡、记忆层四本台账,连续推进 260 章约 70 多万字,返修率约 8%。
能拿走三层架构(8 环节状态机、26 张按环节加载的规则卡、四本台账)和写回四约束、摘要固定字段拼装、裁剪顺序写死,落到小说创作与知识沉淀线;代价是短篇摊不平约 6 万字符固定开销,换题材要手动清台账。
作者拆解 DeepSeek Harness 团队开源的 dsh-superagent(MIT),重点讲它的授权模型和默认 observe 模式,并用 60 行纯标准库 Python 模拟门控逻辑。
能拿走一套授权门控分级和 observe 灰度做法,用 60 行 Python 模拟显式请求与推断候选的分流,落到 Agent 派单流程上;代价是规则要团队自写,且真实实现还有 Mandate 版本校验等层未覆盖。
作者用 Spring AI 2.0.1 接 deepseek-chat 做流式对话,实测出两个不报错的坑:客户端断开后服务端与模型之间的流仍在消费 token,InMemoryChatMemoryRepository 只限单会话消息条数不限会话数量,10,000 个会话占 115 MB 堆内存,折算 10 万个约 1.1 GB。
能拿走 SseEmitter 断连检测加 dispose 取消上游订阅、Caffeine 给会话数设上限两段可照抄代码,落到本地模型部署和软件工厂的流式接口上,代价是内存数只是数量级、断连省下的 token 未实测。
阿里云云原生解读 DeepSeek 8 月开源的 DeepSeek Harness 及其 dsh-superagent-prototype,把跨会话保持上下文、并行推进多任务的 Agent 称为 Super-agent,并拆出双层架构、事件驱动、计算状态与环境分离、Watchdog 等模块。
能拿走双层架构、订阅直通、链式召回、投机执行、Watchdog 巡检五个模块的具体分工,落到软件工厂的多任务派单和本地环境接入;代价是 Router 批处理只提有效吞吐,云端与端侧默认互信,提示词注入会波及所有接入设备。
作者在原有串行 dev-workflow 基础上设计了 dev-workflow-router,由 Router 统一接收需求和反馈,分派给 Analyst/Planner、Coder、Reviewer 三个 Worker,在保留 #0 背景确认、#1 方案确认、#2 实现验证三道人工 gate 的前提下让可独立推进的工作提前开始。
可照搬 Router 加 Analyst/Coder/Reviewer 三角色分工、五行骨架和按影响分派反馈的做法,替换单 Agent 串行审批;代价是 token 增加、需自管文件所有权与版本快照。
文章基于提交 477b4f4205 的实现,拆解 DeepSeek Harness 如何协调多轮模型调用、工具执行与会话状态,把运行过程分为插件装配、回合驱动、会话日志、工具管道和异常处理五部分。
拆解了 turn/step/请求尝试三层边界、surface 投影与并发执行顺序提交的取舍,可对照改造自家 agent 循环的输入队列和日志恢复,代价是配置整段替换易丢字段、日志恢复不保证副作用回滚。