端到端知识处理流水线 pipeline

这是一个自动化知识处理流水线工具,用于对源文件进行端到端的知识提取、处理、验证和归档。它通过种子、提取、反射、重织、验证等阶段,将文档内容转化为结构化的知识节点,并建立连接关系。该工具支持批处理、错误恢复和状态持久化,适用于知识管理、内容分析和信息自动化处理场景。关键词:知识处理流水线,端到端处理,知识提取,自动化工作流,文档处理,知识图谱,AI智能体,内容分析,信息归档,批处理工具。

AI智能体 0 次安装 0 次浏览 更新于 2/27/2026

名称: 流水线 描述: 端到端源处理 – 种子、提取、通过反射/重织/验证处理所有声明,归档。一个命令完成完整流水线。触发词:“/pipeline”、“/pipeline [文件]”、“端到端处理此文件”、“完整流水线”。 版本: “1.0” 生成自: “arscontexta-v1.6” 用户可调用: true 上下文: fork 模型: sonnet 允许工具: Read, Write, Edit, Grep, Glob, Bash, Task 参数提示: “[文件] — 要端到端处理的源文件路径”

立即执行

目标: $ARGUMENTS

立即解析:

  • 源文件路径: 要处理的文件(必需)
  • --handoff: 在结束时输出 RALPH 交接块(用于链式调用)
  • 如果目标为空: 列出 {DOMAIN:inbox}/ 中的文件并询问处理哪个

步骤 0: 读取词汇表

读取 ops/derivation-manifest.md(或回退到 ops/derivation.md)以获取领域词汇映射。所有输出必须使用领域原生术语。如果两个文件都不存在,则使用通用术语。

立即开始。 运行完整流水线。


流水线概述

流水线链接四个阶段。每个阶段使用技能调用或 /ralph 进行基于子代理的处理。状态保存在队列文件中——流水线是无状态编排,建立在有状态的队列条目之上。

源文件
    |
    v
阶段 1: /seed — 创建提取任务,将源文件移动到归档
    |
    v
阶段 2: /reduce (通过 /ralph) — 从源文件中提取声明
    |
    v
阶段 3: /ralph (所有声明) — 创建 -> 反射 -> 重织 -> 验证
    |
    v
阶段 4: /archive-batch — 移动任务文件,生成摘要
    |
    v
完成

流水线是便利包装器。/ralph 是引擎。/seed 是入口点。


阶段 1: 种子

对目标文件调用 /seed 以创建提取任务,检查重复项,并将源文件移动到其归档文件夹。

如何调用:

如果可用则使用 Skill 工具,否则直接执行 /seed 工作流:

  • 验证源文件存在
  • 检查先前处理(重复检测)
  • 创建归档文件夹
  • 将源文件从 {DOMAIN:inbox} 移动到归档
  • 创建提取任务文件
  • 将提取任务添加到队列

从种子输出捕获:

  • 批次 ID: 源文件基本名称(用于后续步骤中的 --batch 过滤)
  • 归档文件夹路径: 源文件移动到的位置
  • next_claim_start: 声明编号起始点

报告: $ 已播种: {source-name}

如果种子报告文件已处理: 询问用户是否继续或跳过。不要自动跳过——用户可能希望以不同范围重新处理。


阶段 2: 提取(Reduce)

通过 /ralph 处理提取任务。这会生成一个运行 /reduce 的子代理,从源文件中提取声明并在队列中创建任务条目。

如何调用:

/ralph 1 --batch {batch_id} --type extract

或通过 Task 工具:

Task(
  prompt = "运行 /ralph 1 --batch {batch_id} --type extract",
  description = "提取: {batch_id}"
)

完成后,读取队列以计算提取的声明和增强项数量:

检查此批次有多少待处理任务。reduce 阶段为每个声明创建 1 个队列条目,为每个增强项创建 1 个条目。

报告:

$ 已提取: {N} 个{DOMAIN:note_plural}, {M} 个增强项
  正在处理 {total_tasks} 个任务通过流水线...

如果提取到零个声明: 报告问题。对于 TFT 源,零提取是错误——源文件几乎肯定包含可提取内容。询问用户是否以不同范围重试或跳过。


阶段 3: 处理所有声明

从队列中计算此批次的总待处理任务数。然后通过完整阶段序列处理所有任务。

如何调用:

/ralph {remaining_count} --batch {batch_id}

或通过 Task 工具:

Task(
  prompt = "运行 /ralph {remaining_count} --batch {batch_id}",
  description = "处理: {batch_id} ({remaining_count} 个任务)"
)

这通过以下步骤处理每个声明: 创建 -> 反射 -> 重织 -> 验证。每个增强项通过: 增强 -> 反射 -> 重织 -> 验证。

每个阶段在具有全新上下文的隔离子代理中运行。/ralph 处理所有编排: 子代理生成、交接解析、队列推进、学习捕获。

进度报告:

/ralph 调用报告每个任务的进度。流水线中继此信息:

$ 正在处理 {DOMAIN:note} 1/{total}: {title}
  $ 创建... 完成
  $ 反射... 完成 (找到 3 个连接)
  $ 重织... 完成 (更新了 2 个{DOMAIN:note_plural})
  $ 验证... 完成 (通过)

对于大批量(20+ 个声明): /ralph 通过子代理自动处理上下文隔离。流水线不需要分块——/ralph 按顺序处理 N 个任务,每个阶段都有全新上下文。


阶段 4: 验证完成

/ralph 完成后,验证此批次的所有任务都已完成。

检查队列: 计算此批次中未完成的任务数。

如果任务仍待处理:

  • 报告哪些任务不完整以及处于哪个阶段
  • 显示具体的任务 ID 及其 current_phase
  • 建议: “运行 /ralph --batch {batch_id} 以从停止处继续”
  • 不要继续到归档

如果所有任务都已完成: 继续到阶段 5。


阶段 5: 归档批次

当批次的所有任务都完成后,归档该批次。

如何调用:

/archive-batch {batch_id}

或直接执行:

  1. 将所有任务文件从 ops/queue/ 移动到 ops/queue/archive/{date}-{batch_id}/
  2. 生成批次摘要文件: {batch_id}-summary.md
  3. 从队列中移除已完成的条目(或标记为已归档)

摘要应包括:

  • 源文件名称和原始位置
  • 提取的声明数量
  • 增强项数量
  • 创建的 {DOMAIN:note_plural} 列表及其标题
  • 批次中的任何显著学习

阶段 6: 最终报告

--=={ 流水线 }==--

源文件: {source_file}
批次: {batch_id}

提取:
  提取的{DOMAIN:note_plural}: {N}
  识别的增强项: {M}

处理:
  创建的{DOMAIN:note_plural}: {N}
  增强的现有{DOMAIN:note_plural}: {M}
  添加的连接: {C}
  更新的{DOMAIN:topic map}s: {T}
  通过重织更新的较旧{DOMAIN:note_plural}: {R}

质量:
  所有验证检查: {通过/失败计数}

归档: ops/queue/archive/{date}-{batch_id}/
摘要: {batch_id}-summary.md

创建的{DOMAIN:note_plural}:
- [[声明标题 1]]
- [[声明标题 2]]
- ...

如果设置了 --handoff 标志,也输出:

=== RALPH 交接: 流水线 ===
目标: {source_file}

完成的工作:
- 播种源文件: {batch_id}
- 提取了 {N} 个{DOMAIN:note_plural} 和 {M} 个增强项
- 通过 4 阶段流水线处理了所有声明
- 归档批次到 {archive_path}

修改的文件:
- {DOMAIN:notes}/ ({N} 个新{DOMAIN:note_plural})
- ops/queue/archive/{date}-{batch_id}/ (已归档)

学习:
- [摩擦]: {描述} | 无
- [惊喜]: {描述} | 无
- [方法论]: {描述} | 无
- [流程差距]: {描述} | 无

队列更新:
- 批次 {batch_id} 的所有任务标记为完成并已归档
=== 交接结束 ===

错误处理

任何阶段的失败:

  1. 报告失败及上下文(哪个阶段、哪个任务、什么错误)
  2. 显示此批次的当前队列状态
  3. 建议补救措施: “运行 /ralph --batch {batch_id} 以从停止处继续”
  4. 不要自动尝试继续处理失败后的步骤

流水线是可恢复的。 队列状态在会话间持久化:

  • /seed 检测到先前处理并询问是否继续
  • /ralph 从最后完成的阶段继续(队列是真相来源)
  • /archive-batch 在归档前验证完整性

种子失败: 如果 /seed 失败(文件未找到、检测到重复且用户拒绝),完全停止流水线。

提取失败: 如果 /reduce 提取零个声明,报告并停止。不要继续到空处理阶段。

处理失败: 如果 /ralph 在批次中途失败,队列会保留状态。单个声明在下次 /ralph 调用时从其失败阶段恢复。

归档失败: 如果归档失败,声明仍被创建和连接。仅缺少组织清理——手动重新运行 /archive-batch。


可恢复性

流水线设计为可在任何点中断和恢复:

中断位置 如何恢复
种子之前 再次运行 /pipeline(全新开始)
种子之后,reduce 之前 /ralph 1 --batch {id} --type extract
reduce 之后,处理声明期间 /ralph --batch {id}(从失败阶段继续)
所有声明之后,归档之前 /archive-batch {id}

状态保存在队列文件中。流水线读取队列状态,而非会话状态。这意味着您可以中断、关闭会话,稍后恢复。


边缘情况

无目标文件: 列出 {DOMAIN:inbox}/ 中的候选文件,根据年龄和相关性建议最佳选择。

源文件已播种: /seed 检测到此情况并询问用户。如果他们拒绝,流水线干净地停止。

大源文件(2500+ 行): /reduce 自动处理分块。流水线不需要特殊处理。

无 ops/derivation-manifest.md: 对所有输出使用通用词汇表。


关键约束

绝不:

  • 跳过种子阶段(重复检测很重要)
  • 自动继续处理失败后的阶段
  • 内联处理声明而不是通过 /ralph 子代理
  • 归档具有不完整任务的批次

始终:

  • 在每个阶段边界报告进度
  • 在归档前验证所有任务已完成
  • 向用户显示创建的内容({DOMAIN:note_plural} 列表)
  • 如果中断,建议后续步骤
  • 使用来自派生清单的领域原生词汇表