跳转至

引导式 MCP 提示与补全

REA 通过 MCP 的 prompts 能力提供六个与提供方无关的调查工作流。它们是对所生成工具目录的补充;本身不会添加、移除或调用任何工具。

提示清单

Prompt 用途
investigate_feature 将功能从发现阶段追踪到相关的函数证据。
compare_application_versions 比较两个已发布工件,并可选择进行静态和运行时后续分析。
verify_reconstruction 根据保留的比较证据评估有限的重构规格。
trace_crash 将崩溃症状与静态路径和可选的过程捕获证据关联起来。
audit_residual_unknowns 审计当前的残余未知项及证据限定的解析状态。
prepare_bounded_process_capture 在执行前设计一个有界的受控过程实验。

每个渲染后的提示都会使用当前 REA 工具名称提供可选的起点。代理可以直接调用工具、跳过不相关的建议,并且仅在有助于回答请求或工具需要时检查提供方或目标状态。这些提示还要求代理将观察、推断和未知项区分开。所请求的提示参数和补全选项被渲染为不受信任的选择数据,而非指令或授权。工具结果会内联包含其证据。提示不需要通过 bundle 或资源获取来读取结果;只有当某个提示参数或工具明确接受证据 ID 时,该 ID 才是一个引用。

对于 JavaScript/Electron 应用程序目录,investigate_feature 会直接指向带有 input_path 的 analyze_javascript_application;它不需要 open_binary。当该证据或 inspect_binary_layout 的证据已被保留时,它会在追踪功能种子之前建议使用 inspect_analysis_view。CLI 等价命令是 rea analyze <directory>。open_binary 和 doctor 目标检查接受文件和 macOS 应用 bundle。对于该打开路径之外的目录,会报告一个可用的分析操作;这并不表示支持所有目录格式。

对于 compare_application_versions 中的目标路径,该提示建议在调用 inspect_artifact 之前先打开每个目标;检查作用于活动目标,并内联返回图和发现结果。

使用标准 MCP 发现与检索:

{ "method": "prompts/list", "params": {} }
{
  "method": "prompts/get",
  "params": {
    "name": "investigate_feature",
    "arguments": {
      "feature": "offline search",
      "document": "Notes"
    }
  }
}

服务器会通告 listChanged: true。更新已注册的引导提示会发出 notifications/prompts/list_changed,使客户端能够刷新其缓存的提示目录。

prompts/get、prompts/list、completion/complete 和 tools/list 的 schema 无效参数会返回带字段诊断信息的 JSON-RPC -32602。修正指定字段后在同一连接上重试。未预期的处理器故障保留 JSON-RPC -32603。

会话感知的补全

MCP 的 completion/complete 用于补全引导式提示的参数;它并不为任意的工具调用参数定义补全。REA 将补全附加到接受会话值的可选提示参数上。建议仅提供标识符;它们不会检索或替换内联的证据结果。

{
  "method": "completion/complete",
  "params": {
    "ref": {
      "type": "ref/prompt",
      "name": "investigate_feature"
    },
    "argument": {
      "name": "procedure",
      "value": "0x10"
    },
    "context": {
      "arguments": {
        "document": "Notes"
      }
    }
  }
}

补全来源是当前会话的实时投影:

在二进制会话中,文档和过程补全会读取一个已就绪的提供方;它不会启动分析。冷启动的提供方、目标切换或不可用的清单都可能返回空建议。当需要从一个可提供清单的提供方获取清单时,请先运行分析查询。空的补全列表并不表示目标没有过程。

参数类别 来源与过滤
Document 当前提供方的 list_documents 结果。
Procedure 完整的 list_procedures 清单;提供所有过程地址和唯一命名的过程。可选的文档上下文会被转发。
Provider auto 加上当前二进制会话中排序后的深层候选项;无目标的补全不会启动它们。
Evidence 当前会话账本中保留的证据 ID,仅提供给接受证据引用的提示参数。
Process capture 保留证据中其操作和已验证结果标识为过程捕获的 ID。
Artifact manifest 来自 schema 有效的已保留工件清单的清单 ID。
Artifact occurrence schema 有效的已保留工件清单页面中存在的出现 ID。
残余未知 仅当前未解析的未知头部。

前缀匹配经过 Unicode 规范化,且不区分大小写;建议项保留其原始拼写。服务器对它们进行去重,并按码位排序以确保结果确定性。过程补全从完整清单中派生候选,因此只有当某个名称标识该清单中的一个地址时,才会提供该名称。共享地址上的每个名称都参与此检查,包括后续行确立歧义的情况。一条补全回复最多携带 100 个值,即 MCP 限制。total 统计所有匹配项,当有值被省略时 hasMore 为 true。补全没有分页控件。更长的前缀只有在其排除其他匹配项时才能到达被省略的值;匹配使用规范化、不区分大小写的形式,因此当超过 100 个匹配项共享同一规范化前缀时,某个值可能仍然无法到达。

生命周期与安全

补全在 REA 中没有缓存。打开或切换目标会在下一次请求时更改文档和过程建议。关闭二进制文件会清除其证据台账和残余未知注册表,因此来自已关闭会话的标识符不再被建议。提供方错误、不支持的操作以及格式错误的提供方输出会产生空的补全列表,而不是未经验证的标识符。

建议只是起点,而非工具调用。工具会在其自身请求中作用于目标、操作和生命周期字段;选择建议不会执行工具调用,也不会扩大这些字段。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 rea2/rea