分析师与 Claude 如何共享一份 .deepcell

文件就是共享的协作界面。智能体负责读取、编辑与提议;分析师负责签字。

9 分钟阅读DeepCell 团队

在构建进行到一半时,这个问题浮现出来:我是在监督这个智能体,还是在亲自驾驶? 模型正在成形,仪表盘逐渐填满。有些单元格是你写的,有些是 Claude 写的。 到了周五,你就要把它发给一位合伙人,上面署着你的名字。

那条界线究竟在哪里?

大多数演示都藏起来的那次交接#

大多数智能体演示都跳过了那道接缝。提示词输入,交付物产出,分析师点头认可。 看起来像是协作。但"Claude 构建了这个"和"我构建了这个"并不是同一件作品, 而两者之间的差别,正是决定你能否在上面署名的关键。如果这两者之间的界线无法被清晰辨读, 那你就不是在共享这份工作——而是把它拱手让了出去。

解决之道不是给智能体加更多护栏,而是建立一个共享的协作界面,让每一个动作都清晰可见—— 对当下的你可见,对日后任何审阅者也可见。

文件就是协作界面#

一份 .deepcell 就是那个界面。分析师在在线演练场里打开它,或者从 CLI 编辑它。 Claude 通过 MCP 打开它。双方读写的是同一份 XML、同一套条目定义、同一张计算图。 没有镜像,没有代理,也没有"智能体的工作副本"。只有一份文件。

每一次交互都被记录两次。会话期间,你在记录中实时观察智能体的工具调用。 会话结束后,每一次编辑都成为文件 git 历史中的一个提交。你不必再去问智能体做了什么?—— 你可以直接对它执行 deepcell diff

接线机制实际是怎样运作的#

连接(Connect)。 Claude.ai、Claude Code,或任何 MCP 客户端,都通过单一工具 deepcell(command) 连接到你的 DeepCell 工作区。它封装了整个 CLI。本地客户端通过 stdio 运行,无需认证。远程客户端使用带 PKCE 的 OAuth 2.1 以及一个 API 密钥——dck_ 前缀是它的标志—— 在前端的 /settings/api-keys 中管理。

委派(Delegate)。 编排器是 Claude Sonnet 4.5,在 backend/conf/conf.yaml 中配置。 它把界限明确的任务交给三个子智能体,每个任务都附带一份完整的任务简报:

  • general-purpose —— 执行研究、建模和报告简报:网络搜索、文件搜索、 格式指南,以及 CLI 风格的模型命令。
  • statement-extractor —— 从 SEC EDGAR 拉取申报文件,并对行项目进行分类。
  • excel-extractor —— 将 .xlsx 转换为 .deepcell(参见 导入你的 Excel 模型)。

它们都不会越出自己的简报和工具边界即兴发挥。抽取子智能体不会重写你的公式; 建模简报也不会跑去抓取一份没人要求的 10-K。

编辑(Edit)。 一段简短的记录,正是你会真实看到的那种:

You: Add a sensitivity table for WACC ± 100bps and terminal growth ± 50bps.

Claude: Adding the sensitivity grid as a calc with explicit dependencies.

  deepcell defs add-calc \
    --item-id Sensitivity_WACC \
    --formula "DCF_Value(WACC + wacc_delta, g + g_delta)" \
    ...

  Calc added. 12 new cells materialized. Dependencies tracked.

You: deepcell diff

  + ItemDef:    Sensitivity_WACC (level 0)
  + CalcDef:    DCF_Value parameterized
  + 12 values   under Sensitivity_WACC x scenario grid

你不必去逐一检查十二个单元格的公式栏。这个差异是结构化的——一个新的 ItemDef、 一个新的 CalcDef,以及由它们派生出的值。如果有任何地方看起来不对, 你可以 restore(恢复)再重新提问。

智能体不能做什么#

这是最要紧的部分,也是任何"MCP 嵌入 Excel"的方案都无法提供的部分。

有十条 CLI 命令在 MCP 中被屏蔽loginregisterverify-emailto-excelclonestatuspullpushcommitmerge。这个模式是一以贯之的—— 任何交互式的操作、任何产生二进制输出的操作、任何带有外部或持久性副作用的操作, 都留给分析师。

智能体可以读取你的文件。它可以查询值。它可以编辑值和定义。它可以在带类型的推理图上 运行推理查询——哪些主张支持这条假设,哪些证据与之相矛盾。但它不能向你的远程仓库 推送提交。它不能背着你把一份 .xlsx 发给利益相关方。它不能以你的身份登录。

在 MCP 中屏蔽 to-excel 是有意为之。二进制输出和对外分享是决策,而非编辑—— 它们应当归属于分析师。每当你需要时,CLI 仍会在本地为你运行 to-excel

审阅只发生一次,在最后#

因为每一次编辑都是一个 git 提交,你不必步步盯着。让智能体放手去做。 当会话结束时,运行:

deepcell log --since "1 hour ago"
deepcell diff HEAD~5

扫一遍结构性变更。检视推理图中智能体引入的新主张。接受这次运行,或者用 deepcell restore 恢复到智能体动手之前的那个提交。这次交接是可辨读的,因为文件记住了发生在它身上的一切。 关于这条审计追踪在推理一侧是如何被记录的,参见展示你的推演过程

为什么这与"Excel 中的 AI"不同#

Excel 没有 MCP。它没有一个对等的工具界面,能让外部智能体去驱动、让用户在一旁观看, 同时由一份带版本管理的文件记录结果。"Excel 中的 AI"止步于单元格层面——它可以填充值、 写一个公式、运行一个宏。它无法承载产生这些变更的那场对话的结构,也无法在 *智能体决定了什么?*的层面上被审阅。你得到的是一个看起来和昨天一模一样的工作簿, 里面多了些新数字,却没有任何关于"为什么"的持久记录。

是这个文件格式让智能体的工作变得可辨读。是 git 历史让审阅变得切实可行。 是 MCP 屏蔽清单让分析师的签名牢牢系在任何离开工作区的产物之上。

界线在哪里#

Claude 读取、查询、提议、编辑。分析师提交、导出、交付、签字。

这就是那条界线。它穿过 committo-excel,而且它是由协议而非信任来刻意强制执行的。

再谈共存#

Excel 没有 MCP——但它有你。两者都用。重点不是取代你的工具;而是有些过去以一团迷雾收场的 工作流,如今能以一次干净利落的交接收尾。你能看见智能体做了什么。你能撤销智能体做了什么。 你能在剩下的成果上署上你的名字,并且问心无愧。

把模型往返转换回 Excel是这个故事的下一篇—— 当你导出那份由智能体和你共同构建的文件时,会发生什么。


亲自体验一下——在在线演练场中打开一份示例 .deepcell。编辑一个值,看着依赖项重新计算,检视任意数字背后的推理。