合订本The archive2026 年 7 月至今Since July 2026
文章Writing
读源码的长文,和工作里想明白的随笔。按时间倒排,新的在上面。Long reads from reading source, and notes on things figured out at work. Newest first.
共 11 篇11 pieces
八月August2026 年 · 4 篇2026 · 4 pieces
- 随笔Note · 意图识别NLULLM 没有消灭意图识别,只是把它变成了路由LLMs didn't end intent recognition. They turned it into routing.taxonomy 设计错了,后面全是坑。Get the taxonomy wrong, and everything after it is a trap.12 分钟12 min
- 源码阅读 · 八Source reading · 8 · OpenHarness 的 Agent 运行时The OpenHarness agent runtime谁定义,谁派活,谁来跑Who defines, who dispatches, who runs多 Agent 不是一个模块,是三层各管一段:定义层回答「有哪些 agent」,调度层回答「这次派谁」,执行层回答「怎么跑起来」。Multi-agent is not one module but three layers, each owning one part: the definition layer answers “which agents exist”, the dispatch layer “who goes this time”, and the execution layer “how it runs”.12 分钟12 min
- 源码阅读 · 七Source reading · 7 · OpenHarness 的 Agent 运行时The OpenHarness agent runtime外部工具接进来,走的还是同一条管线External tools, same pipelineMCP 把外部工具与资源接到 agent。OpenHarness 做 client:连上 server,用适配器把每个 MCP tool 注册成普通 BaseTool,再走同一套管线。MCP connects external tools and resources to the agent. OpenHarness is the client: it connects to servers, registers each MCP tool as an ordinary BaseTool through an adapter, and sends it down the same pipeline.14 分钟14 min
- 源码阅读 · 六Source reading · 6 · OpenHarness 的 Agent 运行时The OpenHarness agent runtime先给目录,用到再翻正文Catalog first, body on demandSkill 是 Markdown + YAML frontmatter。系统 prompt 只放清单;正文按需加载——模型走 skill 工具,用户走 /skill-name。A skill is Markdown plus YAML frontmatter. The system prompt holds only the catalog; the body loads on demand: the model goes through the skill tool, the user through /skill-name.11 分钟11 min
七月July2026 年 · 7 篇2026 · 7 pieces
- 长文Long read · 上下文工程Context EngineeringCodex 说 272K,OpenCode 说 500KCodex says 272K, OpenCode says 500K同一套 GPT OAuth,Codex 显示 272K,OpenCode 显示 500K。数字并不只是大小不同,它们代表的上下文口径也不同。With the same GPT OAuth, Codex shows 272K and OpenCode shows 500K. The numbers differ in more than size: they count the context in different ways.11 分钟11 min
- 源码阅读 · 五Source reading · 5 · OpenHarness 的 Agent 运行时The OpenHarness agent runtimeHook 返回 blocked,不等于真的拦住了A hook returning blocked doesn't stop anything by itselfHook 是生命周期节点上的异步扩展机制:适合门禁、审计、通知与校验;但它不是能任意改写 prompt、工具入参或工具结果的通用中间件。Hooks are asynchronous extensions at lifecycle points: good for gates, audits, notifications and checks, but not a general-purpose middleware that can rewrite prompts, tool inputs or tool results at will.11 分钟11 min
- 随笔Note · 工作流Workflow能用 workflow 的地方,先别上 AgentIf a workflow can do it, hold off on the agent能用编排 workflow 解决的业务,绝不轻易使用 Agent。If an orchestrated workflow can solve the business problem, don't reach for an agent lightly.2 分钟2 min
- 源码阅读 · 四Source reading · 4 · OpenHarness 的 Agent 运行时The OpenHarness agent runtime九道检查,顺序就是安全策略Nine checks, and the order is the policy工具执行前的统一闸门:先硬拦敏感路径与 deny 列表,再按模式决定放行、弹确认还是直接拒绝。One gate before any tool runs: sensitive paths and the deny list are blocked outright first, then the mode decides whether to allow, ask for confirmation, or refuse.9 分钟9 min
- 源码阅读 · 三Source reading · 3 · OpenHarness 的 Agent 运行时The OpenHarness agent runtime从零写一个工具,到模型能调用它From an empty file to a tool the model can call工具不只是给 LLM 的函数列表。它还定义输入、权限、生命周期事件,以及结果如何回到下一轮对话。A tool is more than a function list handed to the LLM. It also defines inputs, permissions and lifecycle events, and how its result returns to the next turn of the conversation.10 分钟10 min
- 源码阅读 · 二Source reading · 2 · OpenHarness 的 Agent 运行时The OpenHarness agent runtime模型答完了,任务还没完The model is done. The task isn't.第一篇沿着一条消息画出了 Query Loop 的地图;这一篇继续走进 Engine,观察每一轮怎样开始、被拦截、压缩、执行,并最终结束。The first piece mapped the Query Loop by following one message. This one walks into the Engine to watch how each turn starts, gets intercepted, compacted and executed, and finally ends.13 分钟13 min
- 源码阅读 · 一Source reading · 1 · OpenHarness 的 Agent 运行时The OpenHarness agent runtime按下回车之后After you press EnterAgent 不只是一次模型请求。这篇笔记从一条用户消息出发,跟踪它如何被装配、流式发送,并在工具调用与文本回复之间循环。An agent is more than one model request. Starting from a single user message, this note follows how it is assembled, streamed out, and looped between tool calls and text replies.7 分钟7 min
到底了。第一篇写于 2026 年 7 月 11 日。That's all. The first piece was written on 11 Jul 2026.