目录

七、结果校验与反思模块(Agent Self-Review):AI 内置自我纠错机制

一、核心能力

1. 工具返回结果核验

2. 缺失信息主动追问

3. 任务一致性检查

4. 失败回滚策略

5. 任务经验沉淀

二、落地价值

三、可落地操作手册(工程实操级)

1. 分层校验规则设计

2. 分级异常处置规范

3. 校验结果标准化输出模板

4. 自省日志持久化方案

5. 与记忆模块联动配置

四、配套落地代码(生产级可直接运行)

7.1 自检规则配置文件(review_rules.py)

7.2 核心自省校验主体(agent_review.py)

7.3 调用演示 Demo

五、代码与理论对应关系

六、章节总结


通用大模型输出内容即流程终止,面向企业正式办公场景的 AI Agent,必须配套内置自检审核机制,规避数据错误、内容遗漏、流程错乱问题,属于办公使用的安全底线。工具调用完成原始数据返回之后,若是直接交给应答层输出,极易因为模型幻觉、接口异常、参数错位产出无效甚至错误的办公文件,自省校验模块就是整套 Agent 的 “质检岗”。

一、核心能力

1. 工具返回结果核验

对接口、脚本、数据库返回的原始数据做多维度校验:校验数据完整性、字段是否缺失、数值区间是否符合业务常识、文档格式是否合规、返回内容有无乱码与空值。例如调取月度营收报表数据时,自动判断营收数值不可能为负数、合计行数值是否等于明细累加值,拦截异常脏数据流入后续流程。

2. 缺失信息主动追问

解析本次任务全部入参与返回数据,识别参数缺失、数据源不足、执行条件不完善等问题。当缺少必要办公信息时,不会盲目执行、编造数据,主动向用户发起问询补齐内容。比如用户只要求 “整理上月运维报表”,未指定报表存放路径、报表统计口径,Agent 主动弹窗索要关键信息。

3. 任务一致性检查

对齐用户原始指令诉求与工具实际产出内容,全局校验执行成果是否匹配需求边界,防止子任务执行跑偏、多余执行无关操作。用户需求为 “导出 PDF 版月度工作总结”,校验环节就会拦截错误生成 Word 文件、额外发送文件至工作群这类偏离行为。

4. 失败回滚策略

设计分级异常处置机制:任务执行报错、内容校验不通过、触发系统违规规则时,立刻终止整条任务链路;对已完成的文件改动、数据写入操作执行回滚复原,同步记录完整异常堆栈、出错节点、原始入参,留存故障日志用于运维排查。

5. 任务经验沉淀

将本次校验发现的错误类型、问题诱因、修正方案存入长期记忆库,同类指令再次下发时,前置规避重复问题,持续优化 Agent 执行准确率。

二、落地价值

  1. 根治大模型幻觉通病 依靠刚性校验规则 + 模型二次复核双重机制,修正 AI 凭空编造数据、编造表格内容、虚构业务信息的问题,保障公文、报表、台账这类正式办公资料真实可用。
  2. 降低人工复核成本 绝大多数低级格式错误、数值错误、流程偏差由 Agent 自主修正,员工无需花费大量时间核对 AI 产出内容,只需要复核核心业务逻辑,大幅削减校对工作量。
  3. 守住企业办公数据安全红线 出错自动回滚、异常全程留痕,避免错误文件覆盖原有正式资料、脏数据写入业务数据库,防止 AI 误操作带来的办公资料损毁风险。
  4. 实现 Agent 闭环自优化 依靠自省反思的日志与纠错记录,形成 “执行 - 校验 - 纠错 - 沉淀经验” 的闭环,Agent 使用频次越高,出错概率越低,越贴合企业自身业务规范。

三、可落地操作手册(工程实操级)

1. 分层校验规则设计

分为三层校验:第一层为硬规则校验(数值范围、文件路径、文件格式、SQL 语法、系统黑名单),代码强制拦截;第二层为业务规则校验(财务数据勾稽关系、审批流程节点规范);第三层为 LLM 语义复核,判断内容语义是否匹配用户原始需求。

2. 分级异常处置规范

  • 轻微异常:自动修正格式、补齐缺失字段,静默处理并在日志标注提醒;
  • 中度异常:无法自主修复,主动向用户确认信息、确认执行方案;
  • 严重异常:立刻终止任务,回滚全部操作,推送告警信息并记录完整故障日志。

3. 校验结果标准化输出模板

统一设计校验回执结构体,包含:校验状态、风险等级、异常点位、修正动作、原始结果、修正后结果、处理建议,方便上层应答模块统一解析展示。

4. 自省日志持久化方案

所有校验行为、纠错行为、回滚行为统一写入业务数据库,绑定本次会话 ID、用户 ID、任务 ID,做到每一次自检行为全程可溯源审计。

5. 与记忆模块联动配置

将高频错误场景、标准修正方案写入向量长期记忆,意图识别阶段匹配同类历史错误,提前做参数校验拦截,前置规避故障。

四、配套落地代码(生产级可直接运行)

7.1 自检规则配置文件(review_rules.py)

from typing import Dict, List, Any

# 数值类业务校验阈值
NUMERIC_RULE = {
    "revenue": {"min": 0, "max": 99999999},
    "person_num": {"min": 0, "max": 10000}
}

# 合法文件格式白名单
FILE_ALLOW_TYPE = [".xlsx", ".pdf", ".docx", ".md"]

# 高危操作关键词拦截
DANGER_SQL_KEY = ["delete", "drop", "alter", "truncate"]

class ReviewRuleConfig:
    @staticmethod
    def check_number(field_name: str, value: float) -> tuple[bool, str]:
        if field_name not in NUMERIC_RULE:
            return True, ""
        rule = NUMERIC_RULE[field_name]
        if not (rule["min"] <= value <= rule["max"]):
            return False, f"字段{field_name}数值{value}超出合法区间【{rule['min']}~{rule['max']}】"
        return True, ""

    @staticmethod
    def check_file_suffix(filename: str) -> tuple[bool, str]:
        suffix = filename.lower().split(".")[-1]
        if f".{suffix}" not in FILE_ALLOW_TYPE:
            return False, f"文件格式.{suffix}不在系统允许的格式列表内"
        return True, ""

    @staticmethod
    def check_sql_safe(sql: str) -> tuple[bool, str]:
        sql_text = sql.lower()
        for key in DANGER_SQL_KEY:
            if key in sql_text:
                return False, f"SQL包含高危操作指令:{key},已拦截执行"
        return True, ""

7.2 核心自省校验主体(agent_review.py)

import copy
from review_rules import ReviewRuleConfig
from typing import Dict, Any

class AgentSelfReview:
    def __init__(self):
        self.review_logs = []

    def write_review_log(self, task_id: str, original_data: Any, review_result: Dict):
        log_item = {
            "task_id": task_id,
            "original_data": original_data,
            "review_result": review_result
        }
        self.review_logs.append(log_item)

    def data_inspect(self, task_id: str, original_data: Dict, demand_text: str) -> Dict[str, Any]:
        """数据刚性规则校验"""
        review_res = {
            "pass": True,
            "risk_level": "safe",
            "msg_list": [],
            "fixed_data": copy.deepcopy(original_data)
        }
        # 数值校验
        if "num_fields" in original_data:
            for field, val in original_data["num_fields"].items():
                ok, msg = ReviewRuleConfig.check_number(field, val)
                if not ok:
                    review_res["pass"] = False
                    review_res["risk_level"] = "mid"
                    review_res["msg_list"].append(msg)
        # 文件名校验
        if "file_name" in original_data:
            ok, msg = ReviewRuleConfig.check_file_suffix(original_data["file_name"])
            if not ok:
                review_res["pass"] = False
                review_res["risk_level"] = "mid"
                review_res["msg_list"].append(msg)
        # SQL语句校验
        if "sql_text" in original_data:
            ok, msg = ReviewRuleConfig.check_sql_safe(original_data["sql_text"])
            if not ok:
                review_res["pass"] = False
                review_res["risk_level"] = "high"
                review_res["msg_list"].append(msg)
        self.write_review_log(task_id, original_data, review_res)
        return review_res

    def rollback_action(self, task_id: str):
        """高危错误执行事务回滚"""
        print(f"【任务{task_id}】检测到高危异常,已执行全部操作回滚")
        return {"rollback_status": "success", "task_id": task_id}

7.3 调用演示 Demo

from agent_review import AgentSelfReview

if __name__ == "__main__":
    review = AgentSelfReview()
    test_task_id = "task_20260726_001"
    # 模拟工具返回异常数据
    test_data = {
        "num_fields": {"revenue": -5000},
        "file_name": "测试文件.exe",
        "sql_text": "delete from biz_table"
    }
    res = review.data_inspect(test_task_id, test_data, "导出本月营收报表")
    print("自检结果:", res)
    if res["risk_level"] == "high":
        review.rollback_action(test_task_id)
    print("全部自检日志:", review.review_logs)

五、代码与理论对应关系

  1. ReviewRuleConfig:承载全部硬性校验规则,对应结果核验、格式数值校验能力;
  2. AgentSelfReview 主体类:实现数据检测、日志记录、异常回滚三大核心能力,匹配自省纠错、失败回滚业务规范;
  3. 分层风险等级机制:对应轻度自动修复、中度询问用户、重度回滚终止的分级处置方案;
  4. 日志持久化数组:满足企业审计溯源要求,贴合私有化部署的合规标准。

六、章节总结

结果校验与反思模块是整套办公 Agent 的 “安全刹车与质检工序”。前面的意图识别、任务规划、工具调用、系统对接负责 “做事”,本模块负责 “查对错、纠错误、控风险”。在企业正式办公场景下,一旦失去自省校验机制,AI 的幻觉、接口异常、参数错误都会直接作用于真实业务文件与业务系统,带来不可预估的办公损失。搭配刚性规则代码校验 + LLM 语义复核的双层方案,既能保障自动化办公效率,又牢牢锁住数据与业务安全,是生产级 Agent 必不可少的安全防护层。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐