关于 mdflow — Context OS for AI Coding Agents
ContextOS 是面向 AI 编码 Agent 的本地开发运行时,将代码证据、命令、架构、计划和验证状态保存在对话之外。它覆盖项目理解、实现与审查,并可选用 Micro 和隔离式 CLI worker。
主要功能
- 01按任务检索源码与 AST 证据
- 02持久保存命令输出和回执
- 03架构 Blocks 与 Chains
- 04范围化修改与验证
- 05可选 Micro 和隔离式 CLI worker
- 06可恢复的计划与项目状态
适用场景
- 01查阅相关代码而不加载整个文件
- 02获取测试重点输出而无需重跑命令
- 03委派实现并审查隔离的改动
- 04在新会话中恢复项目工作
MCP 相关
ContextOS 提供本地 MCP 运行时,让编码助手操作仓库和项目状态。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e MDFLOW_PROJECT_ROOT ghcr.io/yubinbin32-ops/mdflow:0.3.7MDFLOW_PROJECT_ROOTAbsolute path of the mounted project directory containing .mdflow.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/yubinbin32-ops/mdflow:0.3.7stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ContextOS
AI 开发的上下文外骨骼。
优化完整开发生命周期。减少重复的 Token 使用,并让上下文保持聚焦。
本地 MCP 运行时 · 精准证据 · 持久化回执 · 实时架构
为你的 Agent 配备外骨骼

ContextOS 是一个本地开发运行时,位于 AI 编码 Agent 与代码仓库之间。它将源代码证据、命令日志、计划、架构和验证回执保存在主对话之外,然后返回下一步决策所需的内容。
OS 支持完整的 AI 开发生命周期:理解项目、规划、检查证据、执行、实现、验证、审查和恢复工作。精准读取、可复用命令、流水线、Blocks、Chains、持久化计划、Micro 和 CLI 都服务于同一目标:减少不必要的 Token 消耗和上下文占用,同时让开发以可检查的项目状态为依据。
你现有的编码助手仍由你掌控。OS 在其下方提供执行和记忆层,其中包括有界的 API Micro 辅助,以及在任务适合委派时采用隔离的 CLI 实现。
在一项录制的真实开发任务中,与原生工具相比,完整的 OS + Micro + CLI 工作流将主线程上下文峰值降低了 63.8%,并将主线程累计原始 Token 降低了 77.4%。查看下方的任务、比较和限制。
为什么长时间编码会变得成本高昂
一个小问题往往会触发大段文件读取。一次测试失败就会让日志塞满对话。Agent 会反复查看相同代码、重复运行命令,并花费精力重新梳理先前做出的决定。随后,多文件实现又与规划和审查共用同一个上下文窗口。
结果很熟悉:对话变得拥挤、解释一再重复、项目状态难以确定,也没有足够空间进行下一个有价值的决策。更大的上下文窗口只是推迟问题;开发需要一种能让工作跨越工具和会话延续下去的方式。
OS 如何延续工作
You → Main agent: plan, scope, architecture, review
│
└─ ContextOS: evidence, commands, changes, persistent state
├─ API Micro: bounded discovery, summaries, small checks
├─ CLI worker: isolated implementation → report → integration
└─ Desktop App: architecture, plans, checkpoints, settings
证据和日志会保存在本地。工作者在各自的上下文中读取任务证据,并返回精简的报告。变更通过 OS 传递,以保持文件归属、验证和项目图谱彼此关联。新会话可以恢复计划和回执,而不必重新梳理整段对话记录。
能力及其实际效果
| 能力 | 工作方式 | 实现效果 |
|---|---|---|
证据 · ask | 检查确切路径、行范围和 AST 符号;通过结果 ID 恢复早先的证据,并检查源代码版本。 | 阅读相关实现,并复用有效证据,而不是反复加载整个文件。 |
命令 · command | 执行一次,保存 stdout/stderr 和退出状态,然后通过命令 ID 获取指定部分。 | 将构建噪声留在主上下文之外,无需重新运行进程即可获取有用的失败信息。 |
批处理 · pipeline | 按串行或并行方式组合已知步骤,并提供每步结果和继续执行能力。 | 减少工具往返次数;通过一次调用组合相互独立的读取和检查。 |
| 架构 · Block | 将精选的源文件绑定到具有边界、状态和验证证据的架构单元。 | 明确归属,并让实现变更与架构保持关联。 |
| 架构 · Chain | 将 Block 连接成项目路径,并记录它们之间的关系和进度。 | 查看各项能力之间的依赖关系,并跨模块边界跟踪功能。 |
变更 · change / integrate | 通过 OS 应用范围明确的变更,或合并工作者隔离的差异,并附带验证凭证。 | 审查实际变更,并在实现过程中保持架构状态更新。 |
轻量助手 · micro | 配置的 API 模型执行范围有限的检索、摘要、诊断或小幅编辑,并返回精简报告。 | 将常规工具循环转交给成本更低的助手上下文;让主 Agent 专注于判断。 |
实现 · agent | 配置的 CLI 适配器在隔离工作区中执行任务,支持后台收集,并返回变更、检查结果和阻碍因素。 | 将复杂实现移出主对话,并整合可供审查的结果。 |
| 连续性 · 计划、任务、会话 | 在项目的 OS 状态中保存意图、进度、规则、决策和凭证。 | 跨对话继续实际项目工作,并在 App 中检查进度。 |
当任务约定明确时,Micro 和 CLI 会有所帮助。小型确定性读取可直接使用 OS;大型实现则适合交给 CLI 工作者。委派会产生开销,因此 OS 会让其执行过程和结果可供检查。
三种开发工作流的实测对比
记录的对比从提交 0dd6431 开始。全新的宿主对话和隔离工作树接收了相同的真实功能任务:计划依赖项的添加/移除/列出、持久化、对未知目标、重复项、自引用和循环的验证、MCP 路由,以及覆盖领域、应用、存储和 MCP 层的测试。历史测量记录。
| 工作流 | 主线程上下文峰值 | 相较原生工具的减少幅度 | 主线程原始令牌数 | 通过的测试 |
|---|---|---|---|---|
| 原生工具 | 234,174 | 基准 | 8,016,375 | 778 / 778 |
| OS + API Micro | 145,694 | 37.8% | 4,993,135 | 778 / 778 |
| OS + API Micro + CLI | 84,681 | 63.8% | 1,809,566 | 781 / 781 |
**这里的“上下文减少 60%”是什么意思:**主 Agent 单次请求的输入峰值从 234,174 个令牌降至 84,681 个令牌。这描述的是这项实测任务,而非对每个代码库的承诺,也不代表所有工作者令牌的总和。
完整令牌用量、指定的等效美元成本,以及仅使用 OS 的对照组
原始令牌数为累计输入加输出;上下文峰值为主 Agent 单次输入的最大值。缓存输入计入输入,因此 uncached = input − cached。推理令牌计入输出,不会重复计数或收费。
指定的对比采用以下公式:equivalent tokens = main raw + (Micro raw + CLI raw) / 7:
| Arm / 工作流 | Main 原始值 | Micro 原始值 | CLI 原始值 | 观察到的原始总量 | 等效 Token 数 | 相较原生方案的降幅 |
|---|---|---|---|---|---|---|
| A · 原生方案 | 8,016,375 | 0 | 0 | 8,016,375 | 8,016,375 | 基线 |
| B · 仅 OS,不使用助手 | 6,119,582 | 0 | 0 | 6,119,582 | 6,119,582 | 23.7% |
| C · OS + Micro | 4,993,135 | 734,551 | 0 | 5,727,686 | 5,098,070.9 | 36.4% |
| D · OS + Micro + CLI | 1,809,566 | 3,258,709† | 4,393,118 | 9,461,393† | 2,902,684.1† | 63.8%† |
美元成本采用用户指定的每百万 Token 对比费率:未缓存输入为 $2,缓存输入为 $0.10,输出为 $10:
base USD = (uncached input × 2 + cached input × 0.1 + output × 10) / 1,000,000
equivalent USD = main base USD + (Micro base USD + CLI base USD) / 7
| Arm | 角色 | 输入 | 缓存输入 | 未缓存输入 | 输出 | 基础美元成本 | 除数 | 等效美元成本 |
|---|---|---|---|---|---|---|---|---|
| A | Main | 7,971,486 | 7,773,056 | 198,430 | 44,889 | $1.6230556 | 1 | $1.6230556 |
| B | Main | 6,073,014 | 5,945,216 | 127,798 | 46,568 | $1.3157976 | 1 | $1.3157976 |
| C | Main | 4,952,753 | 4,710,016 | 242,737 | 40,382 | $1.3602956 | 1 | $1.3602956 |
| C | Micro | 720,163 | 636,800 | 83,363 | 14,388 | $0.3742860 | 7 | $0.053469428571 |
| D | Main | 1,788,852 | 1,746,560 | 42,292 | 20,714 | $0.4663800 | 1 | $0.4663800 |
| D | Micro | 3,211,208† | 3,007,232† | 203,976† | 47,501† | $1.1836852† | 7 | $0.169097885714† |
| D | CLI | 4,355,283 | 4,214,016 | 141,267 | 37,835 | $1.0822856 | 7 | $0.154612228571 |
| 工作流 | 等效美元总成本 | 相较原生方案的降幅 |
|---|---|---|
| 原生方案 | $1.623055600000 | 基线 |
| 仅 OS | $1.315797600000 | 18.9% |
| OS + Micro | $1.413765028571 | 12.9% |
| OS + Micro + CLI | $0.790090114286† | 51.3%† |
这些是按指定模型计算的等效用量和成本,并非实际的服务商账单或经核实的服务商费率。助手的 7 倍除数是选定的对比假设。所有 Main 会话均报告 deepseek-v4.1-flash 别名、max 推理强度和自定义服务商;Micro C/D 保留了相同的会话 lastModel,D CLI 也报告了相同的别名和自定义服务商。这并不能独立验证底层后端模型。
Main 用量按服务商响应 ID 去重,并与终端累计总量一致。C Micro 有 2 条收据,26/26 个已启动请求均有服务商用量数据。D CLI 有 51 个唯一累计状态,其最后一次用量的总和与终端总量一致。† D Micro 有 5 条收据、129 个已启动请求和 128 个包含用量数据的响应。一个续接超时请求的用量未知。 D 的总量和 51.3% 的成本降幅是观察到的小计;未将缺失请求视为零。原始 Micro 推理字段不可用,因此仍为未知。
完整工作流的观察到的原始 Token 总数高于原生工具,但降低了 Main 上下文峰值。仅 OS 工作流的峰值为 184,507 个 Token(−21.2%),且在本次运行中的等效美元成本低于 OS + Micro。这是一个功能的历史单次运行对比;结果会随任务、模型、缓存和委派情况而变化。
查看冻结的证据和方法、原始用量字段和覆盖范围、按角色划分的成本 CSV,以及四种方案的总量 CSV。使用以下命令重新计算并检查已发布文件的哈希:
python3 docs/benchmarks/plan-dependencies/recalculate.py --check
桌面 App 展示与 Agent 使用的相同 OS 状态:Blocks、Chains、计划、检查点、规则和知识。白色画布、克制的配色和清晰的连线,让大型项目一目了然。

一眼看清整个系统。 沿着 Chain 查看其中的 Blocks,检查选中的能力,并在图表旁查看实现和验证进度。
追踪功能并检查其证据

追踪跨模块的影响。 高亮显示的 Chain 将集成、打包和验证工作连接起来。

查看完成背后的证据。 检查点会显示其状态和收据引用。
查看项目知识并同步工具

随手查阅项目知识。 从项目侧边栏打开仓库文档和规则。

在 App 中阅读文档。 阅读器会在项目旁打开仓库内容;性能数据以如下可复现的证据为准。

管理开发环境。 设置可在 App 中管理偏好设置和宿主集成。配置共享模型和推理级别,让各角色通过 Use Global 继承这些设置,并为 Micro 和 CLI 适配器同步可用模型和推理力度选项。
上方的设置图片展示的是较早通过验收的布局。

在编码助手中使用 OS。 宿主会加载 MCP 运行时和相应技能,让 Agent 能够操作项目状态。
部分图库图片来自早期构建版本,仍保留旧名称 mdflow 或较早的版本标签。这些图片展示了工作流;当前运行时和配置请以安装程序为准。
用一条提示词安装
将以下内容粘贴到 AI 编码助手中:
读取 (https://github.com/yubinbin32-ops/ContextOS/blob/main/setup.md) ,为我安装OS
Agent 会读取 setup.md,安装 OS 和相应的宿主插件/技能,注册你的仓库,配置 API Micro 和 CLI,并通过实际工具调用验证结果。它会为你处理依赖项检查、适配器创建、插件设置和问题诊断。
你无需手动下载并配置 Release 包。 安装指南专为执行安装的 Agent 编写,涵盖问题诊断、适配器配置、插件安装和验收检查。
Micro 是必需的
Micro 是处理日常工作的轻量助手,其 API 连接是 OS 工作流的必需条件。请准备 API 密钥、提供商基础 URL 和模型。仅有主 Agent 订阅或 CLI 登录,并不能配置 API Micro。
推荐选项:
- **Command Code GOAT:**包含 Provider API 访问权限。在其控制台中创建密钥;让 Agent 使用提供商当前的端点和准确的模型 ID。
- **OpenCode Go:**提供订阅 API 密钥和可用的编码模型。让 Agent 检查当前模型列表和 API 配置。
- **你自己的兼容 API:**使用你已信任的提供商,包括 DeepSeek API。
对于范围明确的 Micro 任务,如果提供商支持,我们推荐使用 DeepSeek V4.1 Flash,并设置 medium 推理级别。DeepSeek 官方模型 ID 为 deepseek-flash;网关可能使用不同的 ID。安装程序必须验证模型是否可用,并映射提供商的推理设置,而不能假设所有 API 都接受相同的参数。
请将密钥保存在安装程序设定的本地凭据/配置路径中。不要将其粘贴到仓库文档或受版本控制的源文件中。
CLI 设置由 Agent 完成
CLI 工作器需要可用的 CLI 安装、适配器、匹配的 ContextOS 插件/技能,以及经过验证的身份验证执行路径。告诉 Agent 你使用的 CLI;它应查阅该 CLI 的官方文档、编写适配器、配置 OS,并运行真实探测和隔离的实现检查。
登录、浏览器授权或操作系统权限可能需要你操作。Agent 应指出具体需要你执行的步骤,继续完成其余设置,并在你完成操作后验证是否已就绪。仅发现二进制文件或保存适配器,并不代表安装成功。
需要 Node.js 22 或更高版本。插件/运行时更新后,请按设置说明重新加载宿主的 MCP 进程。请确保 App、插件、技能和运行时版本相互匹配。
日常使用:用自然语言操作
| 你的需求 | 对 Agent 的提示词 |
|---|---|
| 开始执行计划任务 | “将此计划写入 OS 并开始执行。” |
| 明天继续 | “读取当前 OS 计划和会话状态,然后继续下一个未完成的任务。” |
| 配置轻量助手 | “帮我配置 Micro,验证其 API 连接,并用它处理范围明确的任务。” |
| 配置实现工作器 | “帮我配置 CLI。编写它的适配器,安装 ContextOS 插件,并测试隔离的实现。” |
| 调查 Bug | “使用 Micro 找出原因;提供相关证据和一份简洁的诊断。” |
| 实现功能 | “将此实现任务委派给 CLI,在隔离的工作区中完成并验证,然后通过 OS 集成结果。” |
| 查看进度 | “更新 Blocks、Chains 和检查点,方便我在 App 中查看进度。” |
| 切换工具 | “切换到我配置的另一个 CLI 适配器,并在下一个任务开始前验证它。” |
主 Agent 负责维护验收标准并进行最终审查。Micro 和 CLI 负责范围明确的任务;OS 则在它们之间保留证据和进度。
3.0.0 版新特性
基于 4706c38 准备的 3.0 系列将 ContextOS 重构为覆盖 AI 开发生命周期的外骨骼:
- 精准证据与可复用命令让源码检查和执行结果保持聚焦且可恢复。
- 流水线与已验证的更改将批量执行、限定范围的编辑和可审查的结果连接起来。
- 架构与连续性让计划、任务、会话、Blocks、Chains 和回执在不同对话之间以及桌面 App 中随时可用。
- 适合任务的委派在同一 OS 生命周期中加入有边界的 API Micro 辅助和隔离的 CLI 实现。
- AI 主导的安装将提供商配置、宿主插件、CLI 适配器、诊断和实际验收检查纳入设置流程。
如果 ContextOS 能帮助你的 Agent 保持专注,请为项目点亮星标。可复现的任务和问题报告有助于我们改进下一个版本。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。