Quellcode durchsuchen

feat:增加MCP 数据与工作流约束,避免大量数据进入上下文

Jerry Liang vor 1 Monat
Ursprung
Commit
951f9d3f2d
1 geänderte Dateien mit 49 neuen und 0 gelöschten Zeilen
  1. 49 0
      deploy/kiro/steering/mcp-data-guard.md

+ 49 - 0
deploy/kiro/steering/mcp-data-guard.md

@@ -0,0 +1,49 @@
+---
+inclusion: always
+---
+
+# MCP 数据与工作流约束
+
+本 Agent 依赖 MCP 工具(如 `@fwh-tools`)在服务端完成数据查询与分析,目标是**避免把大量原始数据灌入模型上下文**,防止上下文膨胀导致超时。以下规则强制遵守。
+
+## 核心原则:不用大量数据填充上下文
+
+- **禁止**将大批量原始数据(如整表记录、长时间段的功率流/告警明细、成百上千行日志或 CSV)读入上下文,再在模型里做过滤、聚合、统计或计算。这类操作必须交给 MCP 工具在服务端完成,只把**结果或摘要**返回。
+- 需要数据时,优先调用能直接返回结果的 MCP 工具,并**在工具侧完成筛选、分页、聚合**(传入时间范围、站点、limit、聚合维度等参数),只取回必要字段。
+- 不要用「先全量拉取、再自己遍历」的方式绕过工具能力。
+
+## 找不到可用工具时:直接返回,并说明缺口 + 给出建议
+
+当某个工作流**没有对应的 MCP 工具**可用时,**不要**通过读取大量数据 + 在上下文里手工处理的方式去「凑」出结果。应**停止该操作**,并向用户返回一份清晰、简明的说明,必须包含以下三部分:
+
+1. **缺少什么工具/能力**:具体说明缺的是哪一类工具或哪个操作,而不是笼统地说「做不了」。
+   - 说清楚这个工作流需要什么样的能力,例如:「按站点+时间范围聚合功率流的工具」「批量导出告警统计的工具」「对日志做服务端筛选的工具」等。
+   - 若已有相近但不完全匹配的工具,指出它缺哪个参数或维度(如缺少时间范围过滤、缺少聚合选项、缺少分页)。
+
+2. **原本需要它做什么**:一句话说明该工具在此工作流中承担的职责,方便用户判断如何补齐。
+
+3. **给出可行建议**(至少一条):
+   - 补充/启用对应的 MCP 工具,并简述期望的输入参数与输出(如入参:站点、时间范围、聚合维度;出参:聚合后的结果);
+   - 缩小数据范围,使其落入「小范围定点读取」的允许区间;
+   - 由用户直接提供已在数据侧聚合好的结果,再由我基于结果继续分析;
+   - 若存在相近工具,建议改用它或为其补充所需参数。
+
+宁可返回「当前无法完成,因为缺少 X 工具」+ 上述说明,也不要为了完成任务而把大量数据塞进上下文。
+
+**建议的回复模板**:
+
+> 这个操作我暂时无法完成,因为缺少可用工具。
+> - 缺少的能力:<具体的工具/操作,例如"按站点与时间范围在服务端聚合功率流的工具">
+> - 它的作用:<在本工作流中负责做什么>
+> - 建议:<补充该 MCP 工具 / 缩小数据范围 / 提供已聚合数据 / 改用相近工具并补参数>
+
+## 判断标准(满足任一即视为"大量数据",应改走工具或直接告知用户)
+
+- 预计需要读取或处理的数据超过约数百行 / 数十 KB 文本;
+- 需要跨多条记录做聚合、统计、排序、去重等本应由数据层完成的计算;
+- 需要遍历一个时间段的时序数据(功率流、告警、日志等明细)。
+
+## 例外
+
+- 用户**明确要求**查看原始明细,且数据量可控(在上述阈值内)时,可按需返回。
+- 少量、定点的数据读取(单条记录、单个字段、明确的小范围)不受此限制。