关于 OpenTakeoff
OpenTakeoff 是面向估算人员和 AI Agent 的施工图工程量计算引擎,提供浏览器画布,并与 MCP 共享测量逻辑。它记录比例、测量方法、作者和审核状态,便于复核并追溯来源。
主要功能
- 01提供 58 个 stdio MCP 工具
- 02通过浏览器画布测量图纸
- 03按比例计算并重新校准工程量
- 04记录几何、方法和审核来源
- 05导出带标注的图纸和工程量
- 06跨图纸查询进度表
适用场景
- 01从图纸测量房间和工程量
- 02验收前复核 Agent 的测量
- 03跨拼接图纸描绘饰面区域
- 04按单元格引用查找进度表数据
MCP 相关
其 stdio MCP 服务向 Agent 提供施工图工程量工具,包括加载图纸、设置比例、测量和导出。默认构建提供 58 个工具;one_click 和 detect_rooms 动作目前未注册。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
53收录的工具列表 · 更新于 3 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| path | string | 是 | 磁盘上计划 PDF 的路径 |
| merge | boolean | 否 | true = 将此文档添加到工作集中并保留所有现有工作(合并到空会话中等同于加载) |
详细介绍
OpenTakeoff
用于建筑图纸的工程量测算引擎——既方便 AI Agent 驱动,也让估算人员乐于使用。
工程量测算是指从施工图纸中测量工程量。OpenTakeoff 基于同一引擎,通过两种方式实现:为 Agent 提供 58 个 MCP 工具,并为用户提供浏览器画布。Agent 和用户共享工程量测算文档与数量计算。每张图纸都带有自己的校准信息;测量记录包含几何数据、方法和作者信息。重新校准会同步更新工程量;不兼容的导入会报告比例冲突;Agent 执行的测量会明确标注审核状态。请参阅第 1 阶段测试指南。
面向 Agent · 试用画布 · 引擎的契约 · 面向画布使用者 · 数据层 · 研究 · Fork 项目 · 参与贡献
协议工作:Takeoff Protocol 草案及兼容性状态——将现有记录正式化;当前工程量测算行为不变。
观看演示:自主 Agent 实时执行工程量测算,全程无剪辑(2:47) · 医院饰面平面图 → 约一分钟生成报告(1:14) · 画布演示(1:10) · 一键面积(0:51)
一键面积功能暂时受限。 洪水填充引擎正在更广泛的图纸语料上重新验证。在验证完成之前,画布工具栏中不会显示一键工具(按
O可查看限制提示),且one_click/detect_rooms这两个 MCP 动词不会注册(默认构建版本包含 58 个工具)。请在画布中使用面积(A)描绘房间,或通过 MCP 使用measure_polygon;其他所有工具、扫描和派生功能均不变。可通过VITE_ONE_CLICK=1(画布)/OPENTAKEOFF_ONE_CLICK=1(服务端)在构建版本中解除限制。下文中展示一键面积的章节和视频描述的是引擎恢复后的行为——请参阅docs/design/ONE_CLICK_GATE.md。
高级工作区提供精简控件、可搜索的操作与图纸、个性化面板布局、可调整的工作区表面以及更大的图纸预览。当此浏览器没有保存的布局选择时,它会作为默认布局;仍可使用经典布局。查看工作区设计与研究。 工作表导航会从图块工作线程中释放已关闭的 PDF 和嵌入字体; 参见 30 次翻页渲染检查。 除打开标签页中的 PDF 外,最多会保留四个空闲 PDF 处于加载状态(手机或平板上为两个,或者浏览器报告的内存不超过 4 GB 时为两个),并优先释放最近最少使用的 PDF;参见 12 个 PDF 检查。
从这里开始
| 你是 | 前往 |
|---|---|
| 有投标截止日期的估算人员 | 打开画布—拖入一份图纸,无需账户,也不会上传任何内容。用户手册会在五分钟内带你从空白标签页完成并导出工程量清单,其中的实际投标工作顺序介绍了处理真实投标图纸集的步骤。 |
| AI Agent——或负责接入 AI Agent 的人员 | 运行 npx -y opentakeoff-mcp,然后阅读Agent 手册:了解运行模式、每份工程量清单结束时都要完成的标准收尾、引擎拒绝猜测的内容及其原因。逐项工具参考见 mcp/README.md。 |
| 基于引擎进行开发的开发者 | AGENTS.md 是仓库地图和发布规范;FEATURES.md 将每项功能对应到实现它的代码。 |
| 想要拥有自己的副本的团队 | Fork 项目—几分钟内即可通过自己的 URL 部署自己的实例,采用 AGPL-3.0 许可证,不会向外发送任何数据。若你打算提交拉取请求,也请按此方式操作。 |
Windows、macOS、Linux——全面支持
OpenTakeoff 是一个纯客户端浏览器应用,因此画布在 Windows、macOS、 ChromeOS 和 Linux 上的任何当前版本 Chrome、Edge、Firefox 或 Safari 中运行效果相同。无需安装,也不会上传任何内容,且没有任何功能受操作系统限制。
- 快捷键会适配平台。 应用会根据你面前的键盘显示修饰键——Windows 和 Linux 上为
Ctrl/Alt/Shift,Mac 上为⌘/⌥/⇧——而且快捷键处理程序始终将⌘和Ctrl视为同一个键。在画布中按?查看当前快捷键列表。 - MCP 服务已在 Windows 上通过测试。
npx -y opentakeoff-mcp可在 Windows、macOS 和 Linux 上运行;每次变更时,CI 都会在windows-latest和ubuntu-latest上运行完整的 MCP 套件——类型检查、测试、构建和打包后的冒烟测试。 - 可选附加组件。 随附的捕获服务使用 Python 3 标准库,可在任何支持 Python 的系统上运行——在 Windows 上,请使用
python capture\capture_server.py selftest(或py启动器)调用,而不要使用python3。使用画布不需要该服务,也不需要可选的server/AI 沙箱。 - 受严格管控的企业设备群(MSIX 打包、Windows Sandbox、Intune 静默部署)正在 #226 中跟踪,目前尚未实现。
这是什么
从图纸上测量数量,是每份施工报价的基础——地板面积有多少、墙面有多少、需要多少个设备,按什么比例、在哪张图纸上。每天都会发生数千次。在 OpenTakeoff 出现之前,完全没有开源的工程量计算引擎,无论是基于 Web 的还是其他形式的,也没有可供自主 Agent 调用的引擎。
OpenTakeoff 就是这样的引擎,配有两个共用几何与工程量模块的前端:
- 审查清理——Agent 可以编辑标注文本并撤销更改,同时保留几何图形和审查状态;与 RFI 关联的注释需要通过浏览器审查。范围警告会区分数字边缘残留和真实的小面积重叠。
- stdio MCP 服务——
npx -y opentakeoff-mcp,提供 58 个工具,已列入 官方 MCP 注册表。Agent 打开图纸、读取标题栏、设置比例、描绘房间墙面边界(洪泛引擎仍处于限制状态)、在渲染叠加图上检查自己的工作,并交付带标注的图纸集 PDF。 - 浏览器画布——无需后端、无需账户、无需上传。估算人员拖入一套图纸并进行描绘,同时使用一键房间检测、CAD 填充图案、卷材接缝排布、材料采购清单和导出功能。
二者都不是另一方的封装。MCP 服务会导入共用的 Web 模块,因此工程量计算和工程量记录彼此兼容。浏览器和 MCP 的房间检测路径目前有所不同;共用代码并不保证每张图纸都能得到完全相同的边界。在重新验证边界期间,一键功能仍处于限制状态。
溯源信息是承重部分。 每个形状都会记录测量时使用的比例、生成形状的方法(矢量洪泛、栅格描绘、手绘、Agent 提议)、是否经过人工修正,以及与修正结果并列冻结的机器原始边界。 这包括使用手动测量工具绘制的 Agent 形状;操作者和绘制方法是两个独立字段。 对于下游,这是一条 PM 可以阅读的审计轨迹。对于上游,这是一个带标签的*(几何图形 → 饰面)*数据对——也是工程量计算模型一直以来都缺少的大规模训练信号。这第二种用途并非副作用;请参阅数据层——以及这个引擎存在的原因。
最近发布
- Agent 实际会读取的描图规则——估算人员使用的房间边界约定(最内侧墙面、沿墙中心线穿过门洞、包绕柱子和管井、绝不沿填充线边缘或门扇描图,每个环都要严格叠加检查)现已随服务一同发布:
takeoff://wiki/workflows、初始化说明以及measure_polygon描述。对于一个未包含任何约定的任务,一次未经提示的运行就将有门洞凹口的房间比例从 0/6 提高到 6/6(#423,MCP 0.9.84) - 包含参考环的图纸集,以及针对它的盲测——三张公开平面图(VA 医疗设施装修图、VA 诊所平面图、市政府公共领域 ADU),附有估算人员描图参考、针对凹形房间和装修分区的评分配置,以及公开发布的盲测 Agent 运行结果,其中包含冻结的导出文件、分数和叠加图。运行首先发现了参考数据中的缺陷;参考数据已更新至 v2,但仍未经人工审核,尚待估算人员解答的问题也已列出(#421,#422,
evals/mcp-workflow-bench/plan-set/) - 从头到尾的人为审核流程——导入 Agent 的工程量清单、修正一个环、接受批次、导出,并在干净的机器上重新打开归档,确保几何图形和审核状态完整无损;用户手册附有真实应用的截图(#424)
- 《Takeoff Protocol》草案、统一知识库和脚本化工作流基准测试——将现有记录字段盘点并整理为草案模式,附带可执行的兼容性矩阵(10 项兼容、1 项需要适配器、5 项不受支持并已注明);为人员和 Agent 提供统一知识库,打包为 MCP 资源并在 CI 中与源文件核对;以及驱动构建后的服务以平面和分阶段模式运行的工作流基准测试,分别对几何图形和总量评分,并在全新进程中重新打开导出文件(#406–#419,路线图)
- 拼接图纸——跨越拼接线的楼层会合并为一个工作画布;跨越接缝的房间可描绘为一个完整形状,One-Click 也同样适用(#161)
- PDF 图层角色——CAD 导出的图纸会标明墨迹的含义,因此 One-Click 会读取图层树,而不是从填充线推断边界;画布上新增图层面板,并提供经评分的语料 IoU(#85)
- 图纸关系图——Agent 询问 “134 号房间用了什么装修材料,依据是什么”,就会获得附有逐单元格引用的材料明细表行,涵盖续页、旋转表头和多栋建筑的索引:
sheet_graph/resolve_tag/find_schedule(#87) - 卷材——将某个条件设置为宽幅地毯或片材后,计算引擎便会规划接缝:铺设条带、多卷材分割、按切割顺序以比例尺在房间上绘制的裁片、支持拖动调整顺序的按比例尺卷材示意图,以及与测量数量并列显示的订购长度(#136)
- 在画布中处理收口条——Takeoffs 面板中的 ⟂ Transitions… 会根据已测量的房间推导两种装修材料相接的位置;
derive_transitions可通过 MCP 执行相同操作。洪泛追踪的房间不会共享边缘,因此实际存在的是两种含义不同的邻近关系:同一开放空间内装修材料的变化会作为平接收口提交;而隔墙两侧平行相邻的房间则会暂缓处理并作为问题提出——收口位于门口的门槛处,而描图记录中没有任何信息说明门口的位置。仅仅因为两个房间共享 34 LF 的墙,就提交 34 LF 的门槛收口,会让错误的报价带上机器的笃定口吻(#202) symbol_sweep——用一个框选的示例找出重复符号的每个实例;跨比例尺时只能使用明确给出的比例,绝不搜索推测mark_verdict/delete_verdict——Agent 将自己的工作标记为石墨色AGENT菱形;只有人手才能盖上绿色的APPROVED印章- One-Click 精度改进——采用 RFC #60 中的表面提取和间隙容差(由 @knmurphy 贡献);将紧贴较厚墙体的细线识别为注释而非边界;将内开门的扇形区域定位在门扇后方而非圆弧内
- 语音工程量测算(工具栏默认关闭;设置
VITE_COMMAND_BOX=1可重新启用)——按住M并说出carpet one, waste seven;语音识别由本机 WebAssembly 中的 whisper-tiny.en 完成,音频不会离开浏览器(docs/VOICE.md) 完整历史记录:CHANGELOG.md · 每项功能都对应到其代码: FEATURES.md
面向 Agent — 从这里开始
让任意 stdio MCP 客户端连接已发布的包。需要 Node 20+,无需克隆或构建:
{
"mcpServers": {
"opentakeoff": {
"command": "npx",
"args": ["-y", "opentakeoff-mcp"]
}
}
}
如果你有 GitHub 身份,也请复刻此仓库: 你所做的引擎改动会在这里接受测试——每个来自复刻仓库的拉取请求都会使用只读令牌运行完整 CI;经测试的 Agent 拉取请求也会与其他人的拉取请求按同一标准合并。贡献流程也是如此。
第一次使用?将 OpenTakeoff 连接到你的 AI 会逐步介绍 Claude Code、Codex、Cursor 和 Claude Desktop,并在演示图纸上运行第一条命令。
Claude Code:claude mcp add opentakeoff -- npx -y opentakeoff-mcp。Claude Desktop 用户也可以直接双击最新版本中的 opentakeoff-mcp.mcpb 包——该包有意不包含可选的原生画布,因此所有 JSON 工具都能在任何环境中使用;渲染界面(view_sheet、图纸图像资源)无法运行时,也会明确说明缺少什么。Docker 和本地克隆均受支持:mcp/README.md。
真实运行(3× 速率):Agent 在一份联邦项目饰面图纸上对 161–163 号病房进行算量,并在每次提交后导出。每个形状都会以虚线铅笔提案的形式显示在应用中,只有操作员单击“接受”后才会变为正式线条。 完整运行过程未经剪辑,可在 YouTube 观看(2:47)。
工具
| 分组 | 工具 |
|---|---|
| 打开并定位 | load_plan · sheet_info · sheet_context · get_sheet_vectors · read_sheet_text · find_text · view_sheet |
| 设置比例 | set_scale |
| 测量 | one_click · detect_rooms · measure_polygon · cut_out · measure_line · measure_surface · place_count |
| 重复并推导 | symbol_sweep · sweep_schedule_row · derive_base · derive_transitions · apply_rules |
| 读取图纸集 | sheet_graph · resolve_tag · find_schedule |
| 编辑并审计 | list_shapes · edit_shape · edit_condition · edit_materials · duplicate_condition · split_condition · delete_shape · undo_last |
| 标注并签字 | annotate · list_annotations · link_annotation · mark_verdict · delete_verdict |
| 提问 | create_rfi · list_rfis · resolve_rfi · delete_rfi |
| 交付 | takeoff_summary · export_takeoff · export_report · export_marked_pdf · export_dxf · import_takeoff |
另有可浏览的图纸资源(takeoff://sheets),让 Agent 能查看工作集,而不仅仅是操作。多文档会话是核心功能:投标文件集由图纸、明细表以及补遗组成;load_plan --merge 可在不影响现有比例、条件或形状的情况下添加文档——随后图纸关系图会覆盖整个文件集,因此一个文件中的房间标签可以解析到另一个文件中的明细表行。edit_condition 可调整损耗率、×N 倍数和 roll_setup,确保 Agent 导出的算量不会出现净值 === 毛值。
Agent 使用手册见 docs/AGENT_GUIDE.md——它是估算师手册的对应版本:用六条事实说明操作模型、每次算量结束时都应完成的标准饰面、以“信息缺失即为答案”为原则、没有对应 Agent 动作的事项及其原因,以及从拒绝到下一步行动的对照表。逐工具参考:mcp/README.md。以文字形式介绍同一工具界面,并深入说明图纸关系图和批量扫描行为: docs/MCP.md。
让它可驱动的契约
大多数测量 API 对 Agent 并不友好,因为它们会让 Agent 自信地犯错。以下规则让这个工具可以安全地交给模型使用,也说明了每条规则存在的原因:
- 始终使用同一坐标系,并明确说明。 渲染比例为 2.0 时的图像像素——PDF 点 × 2,原点在左上角,y 轴向下,即浏览器画布的原生空间。每个图纸载荷都同时携带 px 和 pt 尺寸。没有工具会接受必须猜测单位的坐标。
- 比例是前置条件,而非默认值。 图纸上绘制的比例标注会从图纸中读取,但绝不会悄悄应用;采用该比例始终需要显式调用
set_scale。未设置比例的图纸无法测量。像素 × 错误的比例²,会让所有数值同时出错,因此引擎宁可停止,也不猜测。如果测量区域内的比例标注互相矛盾,则会发出警告,而不是悄悄挑选其中一个。 - 由引擎追踪,模型不凭空编造。
one_click会根据你指定的种子点,返回墙体网络生成的环。模型不能提交凭空想象的多边形并让它计入结果。在 One-Click 尚未开放时,模型需要用measure_polygon自行绘制环,并遵循随附规则确定其位置:沿着它通过get_sheet_vectors读取的最内侧墙面线条绘制;在墙体中心线处跨过门;并在处理下一个房间前,通过紧密叠加图进行检查。Agent 在没有提示时能否遵守这些规则,会实际测量,而不是想当然:请参阅计划集。 - 每条记录都包含其生成方式。 包括方法、种子点、是否启用了填充过滤、是否根据扫描像素生成、置信度因素,以及人类之后移动环时机器生成的原始环。
- Agent 的工作只是铅笔草稿,只有人才能将其正式确认。 导出内容会以虚线提案的形式落在画布上。
mark_verdict允许 Agent 将自己的工作标记为石墨色的AGENT菱形;绿色的APPROVED印章只有一条代码路径,即由人操作工具栏按钮。没有任何 MCP 调用或导入操作可以生成它。 - 交付物是带标注的图纸集,而不是 JSON。
export_marked_pdf会按绘制时的样子将工作写入图纸——包括状况颜色、填充、数量标签和计数标记——并置于图例封面之后,封面上列有总数,以及人员实际审核过的图纸集比例。无法核验的工程量统计,就不是合格的工程量统计。 - 拒绝请求时应给出可执行的说明。 “图纸线稿未封闭该空间——填充溢出了” 会告诉模型下一步该怎么做,而无声地返回零不会。无法回答的工具会说明原因并拒绝提供结果,而不是返回看似合理的数字。
证明它 — OpenTakeoff Academy / Commonwealth Agent Union
Commonwealth Agent Union 是 OpenTakeoff Academy 的所在地;该机构负责建筑 Agent 评测与认证。带上任意模型和你自己的测试框架;评分考察的是操作真实工程量统计工具,并依据你无法控制的几何图形进行测试——校准错误会导致面积错误,而非生成看似合理的数字。每次运行都会生成带签名的套件,其中包含每次工具调用的完整来源信息;评分依据留出的真实值和人工高级估算员基准进行;通过某一等级即可获得可独立验证的凭证。Certified 路径会通过任务工具驱动此引擎(opentakeoff-mcp)。代码库:
Kentucky-ai/opentakeoff-academy。
致绘图员
Agent 工作流之所以存在,是因为人工工作流是真实存在的。以下所有内容,都是从一套商用 Division 9 估算系统中提炼出的生产级测量引擎,而不是演示版重制品。
cd web
npm install
npm run dev # http://localhost:5173
或者打开在线演示。拖入
demo/sample-plan.pdf,确认检测到的比例,选择一个条件,按 A(面积),然后点击房间的各个角点。(一键面积功能暂时受限——请参阅顶部的说明。)打开 报告查看明细和导出内容。完整流程视频:操作演示(1:10) ·
一键面积(0:51)。从零开始到导出结果的完整演示,请参阅用户手册。
实际投标的操作流程,按估算员的工作顺序排列:
- 从投标平台拖入整个
.zip文件——包括图纸、饰面明细表和补遗。 - 设置所有要测量图纸的比例,并在每张图纸上核对一个尺寸(
K)。每张图只需 10 秒,而且这是唯一一个出错就会影响所有数据的步骤。 - 直接从建筑师的饰面明细表中提取条件,而不是手动输入;并在描绘之前设置损耗和材料。
- 拼接在匹配线处分开的图纸,对齐后再开始测量。
- 描绘各房间的地面——一键功能受限期间,使用面积(
A)。从刚描绘的房间推算踢脚线和过渡条,而不是重复测量;并查看推算结果中报告但不计入的内容,因为那就是仍需补算的门口门槛。 - 检查整套图纸,查看已完成的内容,用控制点修正,并保存一个修订版。
- 同时导出两种文件:用于定价的报告,以及供检查人员审核的标注版 PDF。
上述流程的完整版本以及每个步骤对应的章节,请参阅手册中的实际投标工作顺序。上述术语的解释请参阅术语表。
即时打开任意文件
可直接打开图纸 PDF、图像(扫描件、屏幕截图、照片),或整个投标平台上的 .zip 图纸集。压缩包会解压,图像会在浏览器中转换为 PDF——支持多页、多文件,最多可并排显示 4 张图纸,并带有防恶意压缩包保护,确保格式错误的 zip 能安全失败,不会导致标签页内存暴涨。压缩包中的无法读取图像会被跳过,其余图纸仍会继续打开。无需上传、无需转换服务,也无需账号。
真正的测量引擎
一键面积是核心功能——目前暂时禁用,正在重新验证填充引擎(见顶部说明);启用时,它的工作方式如下:点击房间内部,线条围出填充区域,生成的多边形会自动描绘边界,顶点会吸附到真实拐角。填充线和剖面填充骗不过它——瓷砖网格、地板线条和剖面填充都会被识别为图案,而非墙体;升级处理也足够谨慎,即使误判,结果也不会比严格填充更差。扫描图纸也能处理:没有矢量线条时,引擎会读取渲染后的像素——自适应阈值处理、蓝图负片极性检测,以及用于连接褪色墨迹的间隙桥接步骤——并为结果添加标记,方便你在确认前核对边缘。对于包含图层树的 CAD 导出文件,一键功能会读取已声明的图层角色,而非自行推断。
此外,还有完整的手动工具套件——面积、矩形、线性、曲线、表面积(墙体)、计数,以及用于扣除面积的挖除工具;还有区域检查功能,无需触碰工程量统计,即可回答“这个区域里有什么?”
⟂ 饰面交界线可根据已测量的房间,推导出两种饰面的交界线。 同一开放空间内饰面发生变化时,会生成虚线对接线段供你确认;隔墙两侧相邻的房间则会报告但不会计入,因为这种交界线位于门口的门槛处,无法通过描线确定——你会看到它的长度、墙体厚度,以及一个可将其显示在屏幕上的链接。
像绘图工具一样好用的绘图辅助
45°/90°角度锁定:当线段接近直角或对角线几度以内时,线段会锁定到轴线上——点击后确认的点会精确落在轴线上,确保墙体横平竖直(按住 ⇧ 可强制以任意角度锁定)。在画布上,十字准线就是光标:操作系统指针会隐藏,星形标记显示交点,进行中的操作以工具自身的钴蓝色绘制,已确认的形状则显示其状态颜色。锁定提示低调而清晰——星形标记会变大,预览线段会加粗,提示标签会显示锁定角度和实时线段长度。吸附(测试版)可吸附到 PDF 的真实端点;拐角的优先级高于轴线。
匹配实际图纸集的比例
自动检测标注的绘图比例,也可根据任意已知尺寸进行校准。比例会按图页分别记忆,因为图纸集从来不会统一使用同一比例,假定比例统一的工具会算错数值。检查尺寸(K)是校准功能的只读版本:选取一条印刷尺寸标注,输入图纸上的数值,即可获得分级判定(误差在 1% 以内为绿色、5% 以内为琥珀色,超过则为红色),还可一键重新校准为此值。每次接受比例设置后,图页上都会显示一条临时校准尺,因此比例偏差 2 倍时,在描绘任何内容之前就能一眼发现。英制或公制(m²/m、1:50 格式的比例)可通过显示设置切换——工程量统计会以与单位无关的方式存储,因此切换单位不会改变测量结果。
条件、材料与采购清单
条件是一种饰面(LVP、地毯、瓷砖、踢脚线等),包含线条/填充颜色、CAD 填充图案(让画布呈现真实图纸的效果)、每种条件各自的损耗 %、×N 倍数、默认墙面高度,以及可将线性延伸转换为边界面积 SF 的厚度。从材料表导入会从图纸上的饰面或材料表中读取信息(按 CODE、TAG、MARK 或 SYMBOL 匹配)并导入到条件中,随后显示验证对话框——按类别分组;根据行内容猜测的类别会标记出来以供审核;材料表标记为 NOT USED 的行默认不勾选;对于带有文本图层的图纸,如果有一个无法识别的四或五字母代码,通知中会列出该代码——由你批准哪些内容成为条件。产品规格(包括材料表中的备注)会一并作为报告列保留。带括号的代码(例如 G-01(C))会保留后缀;重新导入时,可能是旧代码 G-01C 的条件会留待审核。对于栅格导入,所有扫描出的代码默认都不勾选,必须逐一审核或更正;两次 OCR 读取可能会一致地识别出同一个错误标识。
短代码还会进行第二次读取,若结果不一致,则显示为检查代码。在已识别的饰面表格中恢复出的数字误读会显示为设置代码;创建条件前,你必须输入其代码。请参阅公开的 OCR 证据。
辅助材料是大多数算量工具会忽略的图层:每种条件可设置一种人工类型和一种底层类型,以及实际需要采购的耗材——粘合剂、封闭剂、薄贴砂浆、填缝剂、弧形踢脚线粘合剂——每种都设有覆盖率和计算依据(地面 SF/线性 LF/件数/计算出的接缝 LF)。订单数量自动计算:测量值 ÷ 覆盖率,向上取整到整单位。粘合剂和砂浆提供覆盖率预设;填缝剂则提供计算器,可根据瓷砖尺寸、厚度、接缝宽度和袋装重量计算每袋覆盖面积 SF。预设值为行业常见的约整数值——务必根据产品数据表核实。
卷材——计算接缝
将某种条件设为宽幅地毯或片材(材料类别、卷材宽度、最大卷长、接缝与墙面预留量、方向、销售单位),引擎便会排布裁切:分幅、接缝位置、多卷分割以及订购长度。裁切图按比例绘制在各自房间上方,使用与材料一致的颜色,并按裁切顺序编号;在可撤销的编辑模式下,可拖动或调整大小。停靠式卷材面板会显示卷材上的裁切布局及其尺寸,并支持拖动重新排序和重新排版;卷材订购 LF、卷数和接缝 LF也会与测量数量一同显示在报告、CSV 和 Excel 中。接缝 LF 是直接从该布局读取的焊条/接缝胶带用量——仅计算同一房间相邻分幅之间实际相对的部分,并扣除墙面余量——因此,按接缝 LF计算的辅助材料行会根据裁切交接处而非周长占比来计算焊条用量。一个宽 20 英尺、使用 12 英尺卷材的房间会沿长度方向出现一道接缝;相同面积的两个独立 10 英尺房间则完全没有接缝,无法通过面积系数区分这两种情况。也可通过 edit_condition 上的 roll_setup 以无头模式使用。(卷材排版引擎由 Michael Hartman 贡献。)
多图纸的实际情况
拼接:跨越对齐线分布的地面可合并为一个工作面——在两张图纸上选取同一个绘制点来对齐接缝,然后直接跨过接缝描绘。
楼层可将多层楼面归为一组。可视化图库(G)可用于选择并打开图纸;点击一次重新分组即可恢复并排布局。描绘不能跨越两张已分组的图纸——面板之间的间隔并非真实距离,因此提交时会拒绝,并提示你使用拼接。
报告、导出与修订
按条件细分——地面 / 墙面 / 边界 SF、LF、EA、总 SF、SY,包含和不含损耗——另附合并的材料采购清单。损耗只计入报告中的订购数量,不会影响实时测量数值,因此工程量计算和采购清单都能如实区分两者。可导出为 CSV、JSON、真正的 Excel 工作簿(Summary / By-sheet / Materials / Shapes-audit / By floor × room,单元格保留完整精度,公式形状的名称保持为非活动文本)、打印,或导出为 Marked Set PDF——完全在浏览器中生成、可直接分发的图纸集,供永远不会安装任何软件的总承包商使用。
收到补遗后,修订功能会让它成为数据,而非考古工作:在每次投标修订时保存具名版本,然后按条件、图纸和采购清单,对比任意两个版本的工程量差异,并生成对比 CSV。对比有意聚焦于工程量,而非几何信息——它会告诉你哪些数字变了,而不是哪面墙变了。恢复操作会先备份当前工程量计算,因此绝不会成为单向操作。
标注、签章与 RFI
标注工具栏提供可编辑箭头、三种高亮模式、批注框、云状注释、已保存的工具收藏,以及在批量应用标注前使用的编号 Sweep 确认清单。固定功能会在你切换图纸时,让裁剪后的图纸参考保持可见。请参阅用户指南和审阅证据。
单独的图层,不计入任何汇总:修订云线、批注框、文本注释、高亮笔迹、图像(上传 PNG/JPEG,或用选框框选平面图区域,将其作为浮动截图放回——可移动、调整大小,并最终嵌入标注图集),以及可重复使用的印章(木板方向、接缝方向、图案原点——可自行创建,或导入 .svg)。审批签章是估算人员的签名:点击已确认的工程量计算即可批准,Marked Set 的封面会增加一行统计——N 项经估算人员批准 · N 项由 Agent 标注——让项目经理准确了解图集里有多少内容经过人工查看。RFI 登记表可将任意标注转为跟踪中的问题,记录状态、优先级、当前责任方,以及成本 / 进度影响标记;可导出为 CSV/JSON,也可作为 RFI 进度表页面导出到标注图集中。
浏览器中的 Agent 面板
选择工作,即可同时查看画布和导入的 Agent 测量数据:跨图纸搜索、定位边界、检查来源信息,并记录可撤销的审阅。其 Agent 标签页可运行浏览器 Agent。审阅导入的工程量计算无需连接模型。
无需离开画布,即可使用与 MCP 相同的提议者 / 审阅者分工:用一句话描述工程量计算,然后由一个模型——你自己的模型,使用你的密钥,在你的浏览器中运行——借助应用自身的确定性工具处理图纸,并生成虚线提议,供你接受、修正或拒绝。它包含用于审阅的证据字段,且无法设置比例尺。接受前,请检查提议的边界及其证据。
如果想在完全没有 AI 账户的情况下查看整个流程,可运行 scripts/ 中无密钥的确定性模拟服务器。
矢量清晰的画布
当缩放超过约 1.15× 乘以你的显示像素比时,可见区域会直接按当前缩放比例从 PDF 矢量重新渲染,而不是放大固定的位图,因此细小的批注和剖面线始终清晰——并且会在手势暂停后启动,连续缩放时,只要你还在移动,画布就会保持在快速基础图层上。它只叠加屏幕上可见的内容,因此无需保存整张图纸的位图。深色视图(☾)会反转图纸像素本身——生成真正的底片效果,黑底白色线条,而非 CSS 滤镜——并重新调整剖面线;导出内容也会采用此效果。
仅在本地使用
每张图纸、比例、条件、标注和 RFI 都会自动保存到你的浏览器(IndexedDB + localStorage)。不会上传任何内容,无需账户,默认构建版本也没有服务端。另一方面,手册也明确说明:数据按浏览器和源站分别存储,清除网站数据就会清除你的工作成果。
可选:团队云端模式(Google 登录 + Drive)
以上都是默认设置,且完全不变:打开页面后,你就是匿名的本地用户。使用 Google Workspace 的团队可以选择登录,改用共享模式:项目以文件夹形式存放在团队自己的 Google Drive 中,项目列表通过深层链接从现有的 Glide 应用打开,材料成本则来自同步的 pricing.json。这完全是附加功能——不做任何设置,它就不存在。安全性方面也如实说明:它仍是纯静态网站,捆绑包中没有密钥;由于 Google OAuth 应用在你的网域内设为内部,因此仅供团队使用;数据则存放在你自己的 Drive 中。请参阅docs/GOOGLE_SETUP.md和docs/GLIDE_INTEGRATION.md。云端部署还可以选择启用本地优先同步(VITE_CLOUD_SYNC=1):标注以浏览器中的数据为准,并在后台同步到 Drive,因此画布能即时显示,也能在网络不稳定时保留数据——docs/SYNC_ARCHITECTURE.md。
可选:使用你自己的视觉模型
画布内的算量 Agent 使用你提供的视觉模型运行:输入目标后,它会调用应用自身的工具来完成任务。打开 Agent 面板及其 AI 设置,指定一个 OpenAI 风格的端点(默认选项;你自己的机器上运行的本地运行时也支持这种接口,且无需密钥)或 Anthropic 风格的端点,并指定一个支持视觉功能的模型 ID。
- **仅在你启动的运行期间发送的内容:**你的目标、提示词,以及 Agent 工具返回的内容,都会发送到你自己的端点。其中包括图纸名称(含 PDF 文件名)、每张图纸的尺寸和比例状态、它读取的文字和明细表行,以及它查看的图纸区域图像(最多可覆盖整张图纸,每边最长 1,024 px)。还包括你的条件(饰面标签、填充图案、损耗率)以及它测量的面积和周长。此列表并不完整。绝不会发送整个计划文件。
- **未配置 = 不会发送任何内容。**未配置的构建版本不会发起任何 AI 网络请求;Agent 面板只提供 AI 设置。无论是否配置,都不会收集遥测数据。
- Agent 找到的形状都是待确认项:每个形状都会以虚线显示,直到你接受为止。它创建的条件则会立即添加到你的列表中。
- 密钥存储在此浏览器的 localStorage 中——请使用可撤销的密钥。部署者:
VITE_AI_ENDPOINT/VITE_AI_MODEL/VITE_AI_PROVIDER可设定团队默认值,但切勿在公开部署中设置VITE_AI_KEY——Vite 会将其内联到发布的捆绑包中。
| 区域 | 提供内容 |
|---|---|
| 导入 | PDF、图像或 .zip 图纸集——在浏览器中解压,支持多页、多文件,最多可并排显示 4 张图纸 |
| 比例 | 自动检测图纸上的标注尺寸,根据已知尺寸进行校准,或通过分级检查验证尺寸——按图纸分别设置 |
| 测量 | 一键面积(矢量填充 + 栅格回退——暂时受限)、面积、矩形、线性、曲线、表面积、计数、扣除切口、⟂ 过渡、区域检查——支持英制或公制 |
| 绘图辅助 | 45°/90° 角度锁定,使用 ⇧ 可硬锁定;光标处实时显示角度和线段长度;端点吸附(测试版) |
| 条件 | 每种饰面可设置颜色 + CAD 填充图案、损耗率、×N 倍数、墙高、边框厚度、计划表导入、全浏览器通用库 |
| 辅助材料 | 人工 + 基层类型、覆盖率 × 计算依据(含计算得出的接缝 LF)→ 四舍五入后的订购数量;镘刀/滚筒预设、填缝剂计算器 |
| 卷材 | 按条件设置卷材 → 排布、接缝、多卷拆分、按比例显示的裁切与拖动排序嵌套;每次导出均包含卷材订购 LF + 卷数 + 计算得出的接缝 LF |
| 多图纸 | 包含标题栏图纸编号的图纸树、图纸图库、标签页与并排分组、重新分组、楼层、跨匹配线拼接、PDF 图层角色 |
| 搜索与复制 | 从图库搜索每张图纸上的文字,复制文本框选内容或整张图纸,并在设备本地读取扫描图纸(OCR;使用处均有标注) |
| 报告 | 按条件列出含损耗和不含损耗的 Floor/Wall/Border SF、LF、EA、SY,以及汇总采购清单;列、分组、已保存的模板 |
| 导出 | CSV、JSON、Excel (.xlsx)、打印、带标注的图纸集 PDF、RFI CSV/JSON |
| 修订 | 每次投标修订时保存,按条件/图纸/采购清单比较数量差异,并提供受保护的还原操作 |
| 标注 | 云线、标注框、笔记、荧光笔、图像(上传或框选截图)、印章、审批印章、RFI 登记表——单独图层,绝不计入数量 |
| 语音 | 按住说话即可输入算量命令,使用 WebAssembly 在设备本地识别;音频不会离开浏览器——默认从工具栏中关闭(VITE_COMMAND_BOX=1) |
| 视图 | 浅色或深色(底片效果)——绘制时反转图纸像素,导出内容也会反转 |
| 存储 | IndexedDB + localStorage——仅在客户端使用,不会上传任何内容 |
| MCP 服务 | 58 个工具 + 可浏览的图纸资源,通过 stdio 提供服务,支持多文档会话(mcp/) |
| 来源信息 | 每个形状都会记录其比例、方法、置信度,以及由人还是 Agent 创建 |
| 捕获(可选加入) | 随附的捕获服务会将每次贡献的算量保存为(几何 → 标签)训练数据行 |
| 部署 | 单个静态构建——Netlify、Vercel、GitHub Pages、Cloudflare Pages、S3 或任何静态托管服务 |
数据层——这套引擎为何存在
每份完成的工程量测算成果,都是一组专家决策:这个区域采用这种饰面,按这个损耗率计算,得出这些数量。只做一次,这就是一份投标报价。每次都记录下来,它就成了一个目前并不存在的标注数据集——图纸几何形状与专家为其指定的饰面配对,这正是训练能够进行工程量测算的模型所需的原始材料。如今,报价一发出,这些数据就随之消失。
这个论点的表述方式经得起质疑:**标注就是标签。**专业工程量测算软件已经将每个绘制区域存储为矢量几何形状,而重建这些多边形就能精确复现记录的数量——因此,二十年的估算工作构成的是一个精确、可验证的数据集,而不是嘈杂的数据集。这一主张正是整个研究计划要检验的内容,目前正在申请专利。
OpenTakeoff 是生成该数据集的工具,数据收集路径需选择加入,且可审计:
- 报告中的 贡献 按钮会构建仅包含衍生数据的载荷——条件标签、形状角色、数量、相对于图纸归一化至 0 到 1 的几何形状,以及每个形状的来源信息(手工描绘还是机器建议,以及是否经过人工修正,并将机器原始轮廓与修正结果一同保留)。载荷构建器约有 150 行经过审计的代码(
web/src/lib/contribute.js);规范性的传输契约见docs/CONTRIBUTION_SPEC.md。 - 绝不发送,并由构建器中的白名单强制执行:PDF 或其任何渲染结果、文件名或图纸名称、项目名称或客户名称、标注文本、绝对坐标、比例尺数值(仅包含比例尺的来源信息——已校准、已检测或标准比例),以及创建时间戳以外的编辑时间信息。刻意保留并明确披露了一种关联方式:形状带有本地生成的不透明 ID,因此,增补后再次贡献会替换旧记录,而不会造成重复。
- 随附的采集服务(
capture/)是一个仅使用 Python 标准库的文件,无需安装 pip;它会在本地主机接收数据,并为每个带标签的形状存储一条训练记录,通过哈希值门控,确保重复贡献不会产生重复记录。v2 记录会区分机器处理正确的部分与专家必须修正的部分,而这种信号才真正能教会工程量测算模型。将其指向使用--mirror的同步文件夹,数据集就能原子化地通过现有公司存储同步功能进行同步。
python3 capture/capture_server.py # then, in the app's browser console:
# localStorage.opentakeoff_contribute_endpoint = "http://localhost:8787/contribute"
采集服务默认允许公共应用和本地开发源。对于其他主机,请传入 --allow-origin https://takeoff.example.com;确切的默认值和可重复使用的选项见采集设置。
原样运行 OpenTakeoff,不会有任何数据被采集,也不会有任何内容离开你的设备。安装后,每次你选择贡献的工程量测算成果都会积累为一项归你所有的资产。这是 Spline 中采集层的开源版本;OpenTakeoff 正是从该商业 Division 9 估算系统中衍生而来。在那里,采集会在自动保存和提交时自动进行,而非通过按钮触发。记录模式和训练思路见 capture/README.md。
研究计划
OpenTakeoff 是一项应用研究计划的开源部分。该计划由一位在职商业地板估算师负责,他也为自己的部门构建 AI (Kentucky AI)。开放核心的边界与优秀开源科学软件的划分方式相同:测量引擎——渲染、比例尺、几何、导出、MCP 服务——采用 AGPL-3.0 许可并保持开源。基于我们自己的估算档案训练的模型则为专有。 你无需购买席位许可,就能获得真正可用的工具;只有我们的数据才能构建的部分仍归我们所有。
研究工作以实验室的形式开展,关键在于提供可核验的凭据:
- 参数高效微调,而非预训练。 在开放权重基础模型上使用 QLoRA 适配器(训练参数约占 0.1%),基于经过验证的投标档案进行专门化——成本足够低,数据表明需要时即可重新训练;规模也足够小,可以交付。旗舰适配器在 51 个项目的时间留出集上,中位绝对百分比误差为 12.3%,而未经调优的基础模型为 62.8%;完整方法和坦诚的注意事项见 模型卡。
- 输入经过验证的标签。 历史投标在成为训练数据前,必须通过双文档验证关卡:投标工作簿与单独归档的提案中的总额必须核对一致;变更订单只有在实际变更订单文档佐证时才计入;并且会重新计算并取证核查明细项目的算术结果。无法验证的项目不会用于训练。
- 输出可验证的标尺。 模型会根据按时间留出的项目进行评分——使用未来投标,而非随机拆分;几何评分器的自身误差下限经过测量(0.4%),因此可以区分误差来自模型还是测量。
- 多随机种子复现。 不会根据单次训练运行的结果晋级;晋级必须通过随机种子复现和成对自助法置信区间检验,并且会连同最佳随机种子的结果一起公布跨种子差异。
- 保留负面结果。 实验记录会记录失败的结果及其原因——例如导致检测能力受损的解冻方案,以及表现不如通用模型跨垂直领域迁移能力的垂直领域专用模型——并与成功结果一同记录。
- 发布前进行泄漏审计。 训练前会替换标识符,因此权重不会接触任何真实姓名;每个公开产物都会通过差分红队测试:针对调优模型进行对抗性提取探测,并以未经调优的基础模型作为对照。
经过脱敏的产物——模型卡、基准测试规范、论文——审核通过后即会发布: Hugging Face · kentucky-ai.com。Agent 端评估见 OpenTakeoff Academy。
运行/部署
使用它只需要一个浏览器。要自行托管,只需将一个静态构建版本放到任意位置——无需后端、数据库,也不必搭建运行环境。
cd web
npm install
npm run build # → web/dist/ (static; host it anywhere)
仓库根目录附带 netlify.toml,因此这个按钮真正支持一键部署。同一个
web/dist/ 也适用于 Vercel、GitHub Pages、Cloudflare Pages、S3——任何能够提供静态文件的服务。如果你要运行自己的反向代理——nginx、Docker、Tailscale?请先查看
docs/SELF_HOSTING.md——其中有一个值得注意的 MIME 类型问题。部署说明和可选 AI 后端见:
docs/DEPLOYMENT.md。
Fork 它
AGPL-3.0:Fork 它、修改它、发布它——为你自己的团队使用,或将它作为自己产品的基础。 如果你为他人运行修改后的副本,包括作为托管服务运行,请以相同许可证发布你的 修改。在这里,fork 是所有权的基本单位,也是贡献的基本单位:同样的三个步骤 既能让你拥有一个私人实例,也能创建一个可提交回来的分支。
- 在 GitHub 上 Fork,然后克隆你的 fork。
- 运行它:
cd web && npm ci && npm run dev——画布位于localhost:5173,而npm run check是精确的 CI 门槛(类型检查、lint、测试、构建)。 - **部署到你自己的 URL:**仓库附带
netlify.toml(base 为web, publish 为dist),因此将你的 fork 导入 Netlify 即可部署,无需设置;任何静态托管服务 都适用,而docs/SELF_HOSTING.md说明了一个 nginx 注意事项。你的 实例与公开版本一样,会将所有方案保留在本地。
来自 fork 的 Pull Request 会在没有密钥且使用只读令牌的情况下运行完整 CI
(docs/DEPLOYMENT.md),因此你的 fork 上的绿色检查,在这里也会是绿色检查。
代码库刻意保持小巧易读,几何库是纯函数库,因此你可以直接提取使用:
| 内容 | 位置 |
|---|---|
| 洪水填充、面提取、角点吸附、栅格回退 | web/src/lib/oneclick.ts——纯 TS,已测试 |
| 比例检测、图纸辅助函数、多边形面积 | web/src/lib/sheets.ts——纯 TS,已测试 |
| 损耗、平方码、覆盖面积 → 订购数量 | web/src/lib/totals.js |
| 卷材铺设方向与接缝布局 | web/src/lib/rollgoods.js——纯函数,已测试 |
| 持久化(IndexedDB + localStorage) | web/src/lib/store.js |
| PDF / 图像 / zip 导入 | web/src/lib/ingest.js |
| 画布(一个大型组件,约占应用的 90%) | web/src/pages/TakeoffCanvas.jsx |
| MCP 服务(导入相同的库) | mcp/src/ |
| 设计令牌——颜色和间距的唯一事实来源 | web/src/styles/tokens.css |
第三方集成和下游 fork 如今都运行在这个引擎上。
cd web && npm run check 是精确的 CI 门槛——类型检查、lint、测试、构建。确保
oneclick.ts 和 sheets.ts 不依赖 React 和 DOM;正是这种纯粹性让它们可复用、
可测试。切勿提交真实的施工图纸。公开的 OCR 代码测试夹具
提供虚构的进度表、每个单元格的预期代码,以及原生端/浏览器测量命令。另请参阅 CONTRIBUTING.md 和
AGENTS.md——代码 Agent 使用的仓库自带说明——以及
用户手册。
贡献
尚待完成的工作着眼于架构,并以 RFC 的形式发布,每项都明确了完成标准,而不是人为罗列待办事项。目前开放的项目:
- RFC #60—让 One-Click Area 真正出色: 面部提取、间隙容差、置信度。部分内容已合并——首批改动已在 #179 中合并,由 @knmurphy 贡献并在发行说明中致谢——准确度上限仍待解决。
- RFC #87—图纸集图谱: 将房间标签、明细表、图例和详图索引解析为一个可查询的图谱,并为每个答案提供引用。两个阶段已发布;修订云线和详图索引链仍待完成。
- 任何标记为
rfc或flagship的项目——旗舰项目是开放的设计与构建挑战,欢迎提交多个方案,最佳方案将获合并并注明贡献者。 - 较小且规格完整的切入点标记为
good first issue——其中会列出确切的文件。在评论中认领一项即可开始。
基本规则见 CONTRIBUTING.md。标准是通过 npm run check,并为任何涉及几何库的改动添加测试;经过测试的 PR 会快速合并。CI 还会检查两项 npm run check 不涵盖的内容:文档中的每个相对链接和锚点都必须有效(可在本地运行 node scripts/check-doc-links.mjs 检查),并且 web/bench/results.json 必须与引擎的实际输出一致——引擎改动必须在同一个 PR 中附上基准测试差异。外部贡献者的姓名会记入提交记录和发行说明;由于 opentakeoff-mcp 会基于 mcp-v* 标签发布到 npm,你提交的引擎改动会随包发布,供所有拉取该包的 Agent 使用。
发现可利用的漏洞?请通过私密漏洞报告提交,而不要公开创建 issue。SECURITY.md 开篇说明了威胁模型——报告前值得一读,因为其中解释了仅客户端应用和本地 stdio MCP 服务的信任边界,以及这对漏洞判定意味着什么、不意味着什么。
技术栈
- 前端: React 18 + Vite 6,纯 JSX
- 绘图: 原生 HTML5 Canvas + SVG——不使用图表或 Canvas 框架
- 几何: TypeScript(
oneclick.ts、sheets.ts),纯函数并经过单元测试 - PDF 渲染: pdf.js
- 图纸集导入: fflate(zip)+ pdf-lib(图像 → PDF),按需加载
- 语音: transformers.js、whisper-tiny.en(q8 编码器 + uint8 解码器),运行于 Web Worker 中——已与其他方案进行基准测试,详见
docs/VOICE.md - MCP: TypeScript stdio 服务,导入 Web 引擎自身的库
- 存储: IndexedDB + localStorage——无需后端
- 测试:
node --test+tsx - 无付费依赖。 参见 THIRD-PARTY-NOTICES.md。
状态
这是一个已投入实际商业投标使用的工具,并非预览版。测量引擎是从商业估算系统中独立出来的生产级引擎;无论是人在画布上操作,还是 Agent 通过 MCP 调用,都会使用相同的计算逻辑、相同的比例门槛和相同的溯源记录。关于 Agent 驱动该工具时的测量情况及仍待解决的问题,请参阅同一张表:Phase 3 完成门槛。这些限制都已明确列出,免得你日后才发现:Snap 仍处于测试阶段,修订对比只到数量级而非几何级别,翻译版 README 也落后于英文版。欢迎提交 issue 和拉取请求。
谁在构建这个项目
我负责一家商业地板公司的估算工作,并构建运行我们部门的 AI。 OpenTakeoff 是这项工作的开放部分:测量引擎,提供给任何需要读取建筑图纸的人,无论是 人还是 Agent。基于我们自己的估算档案训练的模型仍归我们所有,而这条界限公开划定, 以便接受监督。
数据之所以有价值,是因为它来自实际提交的投标,这些投标有中标也有落标,并且会与 单独归档的报价进行核对。这也是引擎必须免费的原因:语料库的质量,取决于有多少真实 测量结果经过生成它的工具。
— Michael · Kentucky AI
Kentucky AI 是 NVIDIA Inception 计划的成员。
**联系:**研究合作、数据问题、媒体咨询,或任何非 Bug 事宜—— [email protected]。Bug 和功能请求请提交到 issues;安全问题请按照 SECURITY.md 中的说明报告。
贡献者鸣谢
感谢 @knmurphy(Kevin Murphy)提供图像捕获功能、绘图样式和更清晰的叠加层。Pin 参考工具基于他的图像捕获工作构建。
许可证
GNU Affero 通用公共许可证 v3.0(AGPL-3.0-only)——尽管使用、派生、
发布、基于它构建,并在为他人运行修改后的副本时分享你的更改。
截至提交 84c7f48e(标签 apache-2.0-final),OpenTakeoff 使用 Apache-2.0 许可证,而已获得该代码的所有人仍可继续按 Apache-2.0 许可证使用。
归属信息、重新授权说明和第 7(b) 条的署名条款请参阅 NOTICE;贡献需遵循 CLA。如需 AGPL 之外的商业条款,
请联系 Kentucky AI。
如需侧重几何精度的 Agent 测量工作流,请参阅从源文件到审核的几何处理。
人与 Agent 共享的知识
Wiki 汇集了架构、协议、人工/Agent
工作流、MCP 工具选择和领域知识。MCP 客户端在加载
平面图前,会读取同一套打包页面 takeoff://wiki 和 takeoff://wiki/{page}。
AGENTS.md 是贡献者导航页;详细指南见 Wiki。CI 会根据源内容检查打包的 Wiki 内容、工具数量/清单、架构
引用和链接。
隐私和条款
隐私政策 · 服务条款。应用内指南(?)中也提供了这两个链接。软件许可证(AGPL-3.0)另行适用。
© 2026 NVIDIA、NVIDIA 徽标和 NVIDIA Inception 均为 NVIDIA Corporation 在美国及其他国家/地区的商标和/或注册商标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。