返回标签

#源码阅读

9 篇文章,按发布时间排列。

OpenCode 源码

OpenCode 源码解析:Effect 运行时与生命周期

OpenCode 中的 Effect 不是为了把 TypeScript 写成“函数式风格”这么简单。它主要用来统一描述四件事:需要哪些依赖、可能怎样失败、怎样并发、结束时怎样清理。 例如可以把“按 ID 查会话”理解为:

OpenCode 源码

OpenCode 源码解析:Session V2 与事件溯源

Session V2 最值得关注的变化,不是类型名后多了一个 V2,而是它重新定义了会话执行的可靠性边界:用户输入先成为持久事实,随后才唤醒执行;模型与工具产生事件,Projector 再把事件变成可查询的消息状态。 经典 loop 可

OpenCode 源码

OpenCode 源码解析:工具、权限与 MCP

模型不能直接读文件、执行命令或访问 MCP Server。它只能产生结构化的工具调用意图;OpenCode 负责决定工具是否可见、参数是否合法、操作是否允许,以及结果怎样进入下一轮模型上下文。 经典工具规范位于 packages/ope

OpenCode 源码

OpenCode 源码解析:消息、上下文与压缩

理解 Agent“记忆”的第一步,是把三个东西分开:数据库中的完整记录、OpenCode 内部的消息结构、某一次请求真正发给模型的上下文。它们有关联,但绝不是同一个对象。 但编程 Agent 的中间过程还包括:

OpenCode 源码

OpenCode 源码解析:经典请求执行链路

这篇只追踪 packages/opencode 中的经典执行栈。目标是回答一个具体问题:用户输入“读取 README 并总结”后,系统怎样从一条消息走到工具调用,再走到最终回答? 真正的源码比这段伪代码多出的部分,几乎都在处理可靠性:权

OpenCode 源码

OpenCode 源码阅读导航

这组笔记以一次 Agent 请求为主线,解释 OpenCode 怎样接收输入、调用模型、执行工具、保存过程,并把实时状态返回客户端。目标不是逐文件翻译源码,而是建立一套能够继续验证和更新的心智模型。 这两条线不能揉成一张伪造的调用图。笔

源码解析

OpenCode 源码解析:常见概念

这篇不是词典,而是一张“源码阅读翻译表”:先弄清这些词在一般软件工程中的含义,再看它们在 OpenCode 里具体对应什么。 运行时是程序真正执行时所依赖的环境,负责调度代码、管理内存、提供文件和网络能力,并处理异步任务。

源码解析

OpenCode 源码解析:模块设计

opencode源码解析——总体概览 讨论系统分层;这篇只讨论模块边界:每个模块拥有哪部分事实、依赖谁,以及为什么不能随意合并。 读一个模块时,可以连续问四个问题:

源码解析

OpenCode 源码解析:总体概览

一次看似简单的“读取文件并解释”会跨过六层: 理解当前源码的关键不是背目录,而是先接受一个事实:本地版本中,成熟的 packages/opencode 执行栈与新的 Session V2 栈正在并存。