mcp-data-guard.md 3.4 KB


inclusion: always

MCP 数据与工作流约束

本 Agent 依赖 MCP 工具(如 @fwh-tools)在服务端完成数据查询与分析,目标是避免把大量原始数据灌入模型上下文,防止上下文膨胀导致超时。以下规则强制遵守。

核心原则:不用大量数据填充上下文

  • 禁止将大批量原始数据(如整表记录、长时间段的功率流/告警明细、成百上千行日志或 CSV)读入上下文,再在模型里做过滤、聚合、统计或计算。这类操作必须交给 MCP 工具在服务端完成,只把结果或摘要返回。
  • 需要数据时,优先调用能直接返回结果的 MCP 工具,并在工具侧完成筛选、分页、聚合(传入时间范围、站点、limit、聚合维度等参数),只取回必要字段。
  • 不要用「先全量拉取、再自己遍历」的方式绕过工具能力。

找不到可用工具时:直接返回,并说明缺口 + 给出建议

当某个工作流没有对应的 MCP 工具可用时,不要通过读取大量数据 + 在上下文里手工处理的方式去「凑」出结果。应停止该操作,并向用户返回一份清晰、简明的说明,必须包含以下三部分:

  1. 缺少什么工具/能力:具体说明缺的是哪一类工具或哪个操作,而不是笼统地说「做不了」。

    • 说清楚这个工作流需要什么样的能力,例如:「按站点+时间范围聚合功率流的工具」「批量导出告警统计的工具」「对日志做服务端筛选的工具」等。
    • 若已有相近但不完全匹配的工具,指出它缺哪个参数或维度(如缺少时间范围过滤、缺少聚合选项、缺少分页)。
  2. 原本需要它做什么:一句话说明该工具在此工作流中承担的职责,方便用户判断如何补齐。

  3. 给出可行建议(至少一条):

    • 补充/启用对应的 MCP 工具,并简述期望的输入参数与输出(如入参:站点、时间范围、聚合维度;出参:聚合后的结果);
    • 缩小数据范围,使其落入「小范围定点读取」的允许区间;
    • 由用户直接提供已在数据侧聚合好的结果,再由我基于结果继续分析;
    • 若存在相近工具,建议改用它或为其补充所需参数。

宁可返回「当前无法完成,因为缺少 X 工具」+ 上述说明,也不要为了完成任务而把大量数据塞进上下文。

建议的回复模板:

这个操作我暂时无法完成,因为缺少可用工具。

  • 缺少的能力:<具体的工具/操作,例如"按站点与时间范围在服务端聚合功率流的工具">
  • 它的作用:<在本工作流中负责做什么>
  • 建议:<补充该 MCP 工具 / 缩小数据范围 / 提供已聚合数据 / 改用相近工具并补参数>

判断标准(满足任一即视为"大量数据",应改走工具或直接告知用户)

  • 预计需要读取或处理的数据超过约数百行 / 数十 KB 文本;
  • 需要跨多条记录做聚合、统计、排序、去重等本应由数据层完成的计算;
  • 需要遍历一个时间段的时序数据(功率流、告警、日志等明细)。

例外

  • 用户明确要求查看原始明细,且数据量可控(在上述阈值内)时,可按需返回。
  • 少量、定点的数据读取(单条记录、单个字段、明确的小范围)不受此限制。