分类: systems
-
为什么 Agent Loop 也是插件?DeepSeek Harness 的插件系统
TLDR:在 DeepSeek Harness 里,Plugin 不是完整程序之外的可选附件,而是由 Cordis 装入同一 Node.js 进程、拥有明确依赖和生命周期的 TypeScript 模块。DSH 先用 Cordis 建立 Context;Cordis 再等待 Service、激活 Plugin,并在它离开时撤回它创建的 Effect。最常见的激活入口是 apply(ctx);Tool 只是 Plugin 可能注册的一项模型可见动作。Tool Registry、Session,甚至 Agent Loop 本身也都是 Plugin。
-
一句“修掉这个 Bug”之后:DeepSeek Harness 如何组织 Turn 与 Session?
TLDR:在 DeepSeek Harness 里,Follow-up Input 可以唤醒 Agent Loop。Turn 是一段连续运行,里面可以有多个 Step;每个 Step 对应一次模型请求,以及这次模型输出要求执行的 Tool。Session Event Log 记录的不只是聊天,还包括运行边界、模型可见内容和动作结果。Agent Loop 作为 Plugin 负责按顺序协调这些 Service,而 Persistence、Resume、Crash Recovery 与 Fork 都建立在同一份历史之上。
-
Agent Loop 只是起点:DeepSeek Harness 在模型之外做了什么?
TLDR:Agent Loop 解释了模型怎样在推理和工具调用之间循环。Harness 还要决定模型能看到什么、把工具请求变成实际操作、保存任务进度,并在危险动作触及系统之前把它拦下来。

-
Crafting Interpreters(三):在运行之前确定名字
Resolver 会在运行前冻结变量身份:每个变量使用点要么得到固定的 local depth,要么明确走 global lookup, 因此 closure 捕获的可变 environment 可以继续变化,但源码层面的 binding 不会改变。

-
Crafting Interpreters (IV):Resolver 铺路,Interpreter 填值
jlox 的对象系统没有另起一套运行时:class、instance、method、this、inheritance 和 super 都落回 LoxClass、LoxInstance、LoxFunction、environment、closure 和 resolver distance。

-
Crafting Interpreters(II):树开始运行
AST 只有被解释器遍历后才会变成一次运行:表达式产生值,语句制造效果,环境保存状态,控制流选择子树,闭包保留被捕获的作用域。

-
Crafting Interpreters(I):当源码开始拥有结构
源码会分阶段变成可执行结构:扫描器先切出 token 边界,解析器再把优先级和结合性落实成 AST,后续阶段直接消费这棵保存下来的树。
-
Codex 源码阅读(VI):上下文工程
Codex 上下文是一个托管的运行时表面:AGENTS.md、skill、线程历史、压缩和运行时设置都有所有权规则,长任务才不会中途断掉。