OpenFDE 部署教程:AI 现场工程师的本地优先工作空间
OpenFDE 是一个专为 AI 现场工程师 (FDE) 设计的本地优先工作空间。它将客户访谈、聊天记录、文档等素材,转化为一个基于本体论 (Ontology) 的可操作记忆系统,并通过任务看板与 AI 编程代理(如 Claude Code)形成闭环,从而加速 AI 解决方案的交付。本教程将指导你在本地完成 OpenFDE 的部署与基本使用。
核心概念与工作流程
理解 OpenFDE 的设计哲学是有效使用它的基础:
- 本地优先 (Local-First):所有客户数据以 SQLite 数据库和 Markdown 文件的形式,存储在
~/.openfde/engagements/<客户代号>/目录下,数据完全在你自己的机器上,不会上传到任何外部服务。交接客户项目,本质上就是移交这个目录。 - 强制溯源 (Enforced Provenance):系统中的每一条事实信息都必须附带来源 URI(统一资源标识符),否则无法写入。在召回信息时,每条事实都会附带其原始引用,确保可追溯。
- 双时态记忆 (Bi-temporal Memory):当新的事实与旧事实冲突时,旧事实不会被删除,而是被标记为“被取代”。
recall --mode handoff命令可以回放完整的时间线,包括你之前相信什么以及被什么取代了。 - 混合检索与排序 (Hybrid Retrieval):召回记忆时,融合了 BM25 关键词检索和实体图谱检索等多种方法,并应用衰减和取代惩罚,确保最相关、最新的信息优先呈现。
- 代理原生 (Agent-Native):所有 CLI 命令都支持
--json输出,方便 AI 代理解析和调用。通过安装提供的技能 (Skill),AI 代理可以自主查询记忆、认领任务、执行并回写结果。
核心工作流:访谈 → 注入 (ingest) → 提取 (extract) → 召回 (recall) → 任务 (task) → 代理执行 → 回写与评估 (eval)。
第一步:环境准备与安装
OpenFDE 基于 Node.js,使用 pnpm 作为包管理器。
前提条件:
- 安装 Node.js (版本 >= 18) 和 pnpm。可通过
node --version和pnpm --version检查。如果未安装 pnpm,可通过npm install -g pnpm安装。
安装步骤:
克隆项目仓库:
1
2git clone https://github.com/memovai/openfde.git
cd openfde安装依赖:
在项目根目录下运行:1
pnpm install
这会安装所有必要的依赖包。
构建 CLI 工具:
1
pnpm -C apps/cli build
此命令会构建 OpenFDE 的核心命令行工具
openfde。(可选) 全局链接命令:
为了在终端任意位置都能使用openfde命令,可以将它全局链接:1
2# 在项目根目录下执行
pnpm link --global或者,你也可以在
apps/cli目录下使用pnpm openfde来运行命令。
第二步:初始化并开始一个客户项目
创建客户项目 (Engagement):
1
openfde engagement create "acme corp"
将
acme corp替换为你的客户名称。此命令会在~/.openfde/engagements/acme-corp/创建项目目录并初始化数据库。切换到该项目:
1
openfde engagement use acme-corp
后续所有命令都将在这个客户上下文中执行。
第三步:注入知识与提取记忆
这是将非结构化信息(会议记录、文档等)转化为结构化记忆的核心步骤。
注入 (Ingest) 素材:
将你的访谈记录、会议笔记、PDF 文档或图片放入./notes/目录(或任意目录),然后注入到系统中。1
2
3
4
5
6
7
8# 注入一个 Markdown 文件,并指明这是某人的发言
openfde ingest ./notes/interview.md --kind message --speaker "Wang"
# 注入一个 PDF 文件
openfde ingest ./docs/requirements.pdf
# 注入一个图片 (需 OCR 或 Claude 原生视觉能力)
openfde ingest ./diagrams/architecture.png关键:内容必须附带来源,
--source参数可以指定来源 URI。如果不指定,ingest命令会要求你提供。提取 (Extract) 结构化事实:
注入完成后,运行提取命令,系统会根据定义好的领域本体 (Ontology)(包括目标、工作流、决策、约束、数据源、痛点等),从注入的素材中提取出结构化的事实,并存放到记忆库中。1
2
3
4
5
6# 需要设置 ANTHROPIC_API_KEY 环境变量,因为提取过程使用了 Claude 模型
export ANTHROPIC_API_KEY="你的API密钥"
openfde extract
# 如果只想测试流程,可以使用模拟数据 (离线模式)
openfde extract --mock
第四步:查询记忆与创建任务
查询 (Recall) 记忆:
使用自然语言查询已提取的结构化信息。1
2
3
4
5
6
7
8# 基础查询
openfde recall "数据源"
# 以交接模式查看完整时间线 (包含被取代的事实)
openfde recall "数据源" --mode handoff
# 输出 JSON 格式,方便代理读取
openfde recall "数据源" --json创建任务 (Task):
基于记忆中的痛点或机会,创建一个任务卡片。1
2
3openfde task create "自动化CSV文件清理流程" \
--criteria "能够无人值守运行" \
--source "interview://onsite#pain-csv"任务创建后,会有一个状态机(如
backlog→claimed→started→done→accepted)来追踪其生命周期。为代理准备上下文 (Context):
当 AI 代理准备开始工作时,可以拉取该任务所需的所有上下文信息。1
openfde context <任务ID>
这会生成一个“弹药包”,包含该任务相关的约束、决策、数据源等信息,所有信息都附有引用。
第五步:与 AI 代理集成 (Agent Integration)
OpenFDE 为 AI 代理(如 Claude Code)提供了一个技能包,使其能通过 CLI 与系统交互。
安装技能到你的代理:
1
2
3
4
5# 以 Claude Code 为例,安装到用户级技能目录
cp -r skills/openfde ~/.claude/skills/openfde
# 或者安装到项目级目录
# cp -r skills/openfde .claude/skills/openfde代理工作循环:
安装后,你可以在对话中指示代理(例如使用@openfde调用技能)执行以下操作:- 查找任务:使用
openfde task list查找ready状态的任务。 - 认领任务:使用
openfde task claim <ID>。 - 获取上下文:使用
openfde context <ID>获取所有必要背景。 - 执行工作:代理根据上下文和任务标准,在客户代码库中工作。
- 回写发现:在工作过程中发现的新知识,使用
openfde remember "新事实" --source "task://<ID>"写回记忆库。 - 提交任务:完成后,使用
openfde task done <ID>标记任务完成,并可由人类审查和接受 (openfde task accept <ID>)。
- 查找任务:使用
第六步:启动 Web 工作空间与共享报告
OpenFDE 提供了一个本地的 Web 界面,方便人类查看和管理整个项目。
启动本地 Web 服务:
1
openfde serve
服务默认启动在
http://localhost:4517。界面包含四个主要标签页:- Note (笔记):以 Obsidian 风格查看所有实体、事件和任务,支持 [[wiki-links]] 和内联引用。
- Ontology (本体):可视化显示实体之间的关系图。
- Todo (待办):任务看板,支持拖拽卡片来改变任务状态。
- Canvas (画布):自由形式的卡片空间,用于承载结构化的前期思考。
生成并共享实时报告:
为向客户领导展示进展,可以生成一份动态报告。1
2
3
4
5# 在终端生成 Markdown 格式报告
openfde report
# 通过 Web 服务生成并共享一个只读的实时报告链接 (LAN)
openfde shareopenfde share会生成一个局域网内的只读链接,客户可以通过该链接实时查看项目进度、价值分析等关键信息,且所有数据均带引用。
故障排查与注意事项
ANTHROPIC_API_KEY未设置:运行extract命令需要 Anthropic API Key。请确保在执行提取前已正确设置环境变量。如仅想体验流程,可使用--mock参数。openfde命令未找到:可能未全局链接。你可以使用pnpm openfde(在项目根目录) 或node apps/cli/dist/index.js来运行。- 数据隐私:所有数据仅存储在本地
~/.openfde/目录下。请确保此目录未同步至任何云服务。openfde share命令虽然会生成一个 HTTP 链接,但仅在你的局域网内可访问,并且是只读的。 - 任务状态流转:任务状态机有严格的流转规则(如
claimed才能started)。非法拖拽或命令操作会被拒绝,并给出提示。建议通过 Web UI 的 Todo 看板直观管理。
总而言之,OpenFDE 是一个为现代 AI 现场工程师设计的、高度结构化的知识工作系统。它通过“强制溯源”和“本体论约束”将模糊的客户沟通转化为可操作的、可追溯的集体记忆,并通过任务系统与 AI 代理形成高效的自动化闭环。它的部署和使用有一定门槛,建议从创建第一个客户项目和注入一份访谈记录开始,逐步体验其强大功能。


