首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >手把手搭建:WorkBuddy 文档审阅 + 纠错闭环工作流

手把手搭建:WorkBuddy 文档审阅 + 纠错闭环工作流

原创
作者头像
大盘鸡拌面
发布2026-06-23 08:39:02
发布2026-06-23 08:39:02
20
举报

作为日常需要对接需求文档、技术方案、项目周报、对外交付说明书的研发从业者,相信很多人都深陷文档反复修改、多轮线上线下来回校对的低效循环里。过去很长一段时间,我的文档审阅流程基本依靠人工完成:写完初稿之后自己通读两三遍排查错别字、语句不通顺问题,再转发给同事交叉审核,等待对方空闲时给出修改批注,自己再逐条复制修改意见调整原文,偶尔还会出现批注遗漏、修改版本混乱、前后格式不统一的情况。

尤其是团队并行开发阶段,一份接口设计文档、测试方案需要经过撰写、内审、产品评审、对外交付四道审核环节,每一轮审核产生的零散修改意见没有统一归档渠道,经常出现改完这一轮,上一轮的格式错误、逻辑漏洞又被忽略,一份一两万字的技术文档,光校对、格式统一、错误修正就要耗费三四个小时。

最让人无奈的是人工审阅存在极强的主观性,语法错误、专业术语使用不规范、段落层级混乱、数据描述前后矛盾这类隐性问题,依靠人工很难一次性全部排查出来,往往要等到评审会现场才被指出,不仅拉长项目交付周期,还会因为文档疏漏导致开发理解出现偏差,衍生出不必要的线上 bug。

一、业务场景痛点与工作流设计目标

1.1 真实落地业务场景

本次工作流落地的核心使用场景为企业后端研发团队技术文档全生命周期审阅,覆盖四类高频文档类型:接口设计说明书、数据库设计文档、项目上线变更方案、周报 & 阶段性技术总结文档。 团队现存的文档管理规则有明确约束:第一,必须遵循公司统一的 Markdown 文档层级规范,一级标题、二级标题使用固定格式,代码片段需要指定高亮语言,表格表头必须加粗;第二,技术术语必须使用团队统一约定的命名规则,禁止使用网络口语化表述、缩写不规范词汇;第三,文档内参数描述、状态码定义、数据库字段说明不能出现前后逻辑矛盾、数值冲突;第四,所有修改记录需要留存归档,方便后续溯源复盘,每一处错误必须附带修改原因、规范依据、优化后的参考写法。

在没有搭建自动化工作流之前,团队文档审阅存在四大核心痛点:

  1. 审阅效率低:单份万字技术文档人工完整审阅至少 2 小时,多人交叉审核时间碎片化,整体交付周期拉长;
  2. 规范落地难:新人不熟悉团队文档编写规则,老员工审核精力有限,格式、术语、层级错误反复出现;
  3. 修改意见碎片化:基于企业微信、飞书文档批注的修改意见分散,容易遗漏,没有统一结构化台账;
  4. 无法批量复盘:历史文档错误类型没有统计汇总,不能针对性优化团队文档培训规范,同类问题重复踩坑。

1.2 工作流核心设计目标

基于上述业务痛点,本次 WorkBuddy 文档审阅 + 纠错闭环工作流设定五大核心目标:

  1. 自动化校验:替代人工完成错别字、语法语病、格式层级、术语规范、逻辑冲突五大维度的全量校验;
  2. 结构化输出:所有错误点以表格化格式输出,包含错误位置、错误原文、错误类型、修改建议、规范依据,方便批量核对;
  3. 一键批量修正:依托自定义脚本,基于 WorkBuddy 输出的结构化纠错报告,自动对原始 Markdown 文档完成批量替换修改;
  4. 全流程归档:原始文档、纠错报告、修改后终版文档、错误类型统计报表自动归档至团队知识库;
  5. 可复用可扩展:支持新增文档类型、补充团队专属校验规则,工作流配置、校验 Prompt、执行脚本可以一键分享给团队成员复用。

1.3 整体工作流架构设计

先梳理整套闭环工作流的整体执行链路,从用户上传文档开始,到最终归档生成统计报表,一共分为六个核心执行节点:

  1. 文档预处理节点:本地 / 知识库拉取待审阅 Markdown 文档,过滤无效空白内容、拆分章节片段,避免超长文本超限导致校验截断;
  2. 规则加载节点:拉取团队文档规范知识库、专业术语白名单、禁止使用词汇黑名单三类约束规则;
  3. 多维度并行校验节点:调用 WorkBuddy 自定义文档审阅智能体,并行执行格式校验、语法校验、术语校验、逻辑一致性校验四类任务;
  4. 纠错结果结构化节点:将非结构化的 AI 审阅内容强制转化为标准表格格式的纠错报告,存储至临时文件;
  5. 文档自动修正节点:通过本地脚本读取纠错报告,定位原始文档错误位置,批量完成文本替换,生成修正后终版文档;
  6. 归档与数据统计节点:三类文档归档存储,同时统计错误类型频次,生成团队文档易错点分析报表,同步推送至团队群通知。

下面通过流程图直观展示整体架构:

二、WorkBuddy 智能体核心配置与 Prompt 设计

整套工作流的核心能力来源于自定义文档审阅智能体,想要保证校验结果稳定、符合企业内部规范,不能直接使用通用对话模式,需要固定角色定位、约束输出格式、绑定专属知识库,同时设置强格式输出规则,避免 AI 自由发挥导致纠错报告无法被脚本解析。

2.1 自定义智能体基础配置

  1. 智能体名称:企业技术文档合规审阅助手
  2. 角色定位:资深后端技术文档审核专员,熟悉 Markdown 语法规范、软件开发文档编写标准,严格遵循企业内部技术文档管理制度,只基于给定的规范规则开展文档校验工作,不额外拓展无关内容;
  3. 绑定知识库:上传三份核心参考文档,分别为《团队 Markdown 文档编写规范.md》《技术术语统一命名表.xlsx》《文档禁止使用词汇清单.txt》,开启知识库精准检索模式,所有校验结论必须附带知识库对应条款作为依据;
  4. 约束权限:关闭创意扩展能力,仅支持事实类校验、规则类比对,禁止润色改写全文,只定位错误位置并给出精准修改方案;
  5. 输出强制规则:所有校验结果必须以 Markdown 表格形式输出,表格固定五列:错误片段位置、错误原文、错误分类、修改建议、规范依据,不允许出现多余描述、总结类文字。

2.2 核心系统提示词(可直接复制复用)

代码语言:javascript
复制
你是企业内部专职技术文档审阅专员,仅依托绑定的知识库规则对待校验文档做合规审查,禁止自由创作、全文润色、主观化评价。
校验一共包含四个维度:
1.格式层级校验:检查标题层级混乱、Markdown语法错误、代码块未标注语言、表格格式不规范问题;
2.文字语法校验:排查错别字、标点符号错误、语句不通顺、口语化网络用语;
3.专业术语校验:比对知识库术语白名单,检查缩写不规范、自定义别名不统一、禁用词汇使用情况;
4.业务逻辑校验:核对参数范围、状态码、字段说明是否存在前后描述冲突、数值矛盾。

输出严格遵循以下要求:
1.最终结果只允许出现一张Markdown表格,无任何前置说明、结尾总结、问候语句;
2.表格固定表头:错误片段位置、错误原文、错误分类、修改建议、规范依据;
3.每一条错误必须精准标注所在章节大致位置,规范依据必须写明知识库对应的条款编号;
4.未发现任何错误时,表格仅保留表头,表格内容为空,禁止输出“文档合规无错误”这类文字描述。

2.3 单次任务用户侧固定 Prompt 模板

为了保证每次提交文档片段校验时输入格式统一,避免人为输入偏差导致校验规则失效,封装固定可复用的任务 Prompt 模板:

代码语言:javascript
复制
本次待校验文档片段内容:
{{document_content}}

本次需要严格遵循的约束规则来源:绑定的三份企业内部知识库文档,不允许脱离知识库自定义规则进行审核。
请按照系统设定的四个校验维度完成全量检查,输出固定格式的Markdown纠错表格。

三、文档审阅纠错闭环时序流程拆解

很多人在搭建自动化工作流时,容易忽略用户操作、WorkBuddy 云端任务、本地脚本执行三方的时序依赖关系,经常出现云端校验任务还未执行完成,本地脚本就开始读取空结果文件,导致流程报错。下面通过时序图清晰梳理三方交互的先后执行顺序,规避异步任务带来的时序 bug。

整套流程属于本地脚本驱动云端智能体异步任务的模式,核心关键点在于脚本必须通过轮询接口持续监听 WorkBuddy 任务状态,只有任务状态为成功结束之后,才能拉取纠错结果进行后续解析、文档修改操作,不能采用同步一次性调用的方式。

四、真实业务场景完整落地示例

4.1 待审阅原始文档背景

本次选取一份后端用户登录接口设计文档作为实测案例,文档类型属于团队高频审核的接口方案类文档,原始文档存在多处典型违规问题:Markdown 二级标题格式书写错误、多处错别字、自定义接口状态码描述前后矛盾、使用团队禁用的口语化技术缩写、代码块没有指定编程语言,非常适合用来验证整套审阅纠错工作流的落地效果。

原始文档中典型错误举例:

  1. 标题错误:#2 用户登录接口参数说明(规范要求二级标题格式为 ## 标题名称,出现符号书写错误);
  2. 文字错误:“用户密码错误五次会被琐定账户”,存在错别字 “琐定”;
  3. 术语违规:使用内部禁用缩写 “usr_id”,团队规范要求统一使用 user_id;
  4. 逻辑冲突:前文定义登录失败状态码为 40001,后文参数说明中错误写成 4001;
  5. 格式错误:接口返回示例代码块没有标注 java 语言类型,不符合团队格式规范。

4.2 工作流分步执行实测过程

第一步:将原始接口设计 Markdown 文档上传至本地工作流目录,运行启动脚本,脚本自动执行文档预处理,将一万两千字的文档按照一级标题拆分为 7 个片段,规避 WorkBuddy 单次文本输入长度超限问题; 第二步:脚本自动读取本地存储的三份规范知识库文件,将规则片段随请求参数一并传入云端,确保每一段文档校验都严格绑定企业约束条件; 第三步:脚本通过 WorkBuddy 开放 API 依次提交 7 个文档片段异步校验任务,智能体并行执行格式、语法、术语、逻辑四类校验,全程无需人工介入等待; 第四步:所有分段任务执行完毕后,脚本汇总 7 份分段纠错表格,合并去重生成一份完整的全文档 Excel 纠错报告,本次一共识别出 26 处违规错误,每一条错误都附带知识库规范条款编号; 第五步:脚本解析 Excel 表格内的错误位置、原文、替换内容,在原始文档中精准匹配文本片段完成批量替换,自动修正所有格式、文字、术语、逻辑错误; 第六步:脚本将原始文档、纠错报告、修正后终版接口文档、26 条错误分类统计报表统一上传至团队飞书知识库归档,同时通过企微机器人推送工作流执行结果通知,附带错误 TOP3 类型统计。

4.3 落地前后效率数据对比

人工审阅模式:完整校验 + 逐条修改 + 版本归档耗时 135 分钟,遗漏 3 处隐性逻辑冲突错误,最终一共修正 23 处显性错误; WorkBuddy 自动化闭环工作流:从启动脚本到全流程归档完成耗时 12 分钟,识别 26 处全部显性 + 隐性错误,无遗漏、无版本混乱,同时自动生成错误统计报表用于团队规范优化。

除了单份文档效率提升之外,这套工作流最大的价值在于团队复用,新人入职后只需要直接导入这套智能体配置、Prompt 模板、执行脚本,不需要花费大量时间熟悉零散的文档规范,就能输出符合企业标准的技术文档,从源头降低文档审核的人力成本。

五、核心可复用代码示例(Python 脚本实现文档批量修正)

下面基于 WorkBuddy 开放 API 封装核心执行脚本,主要实现三大能力:文档分段预处理、异步任务轮询获取纠错结果、基于结构化 Excel 报告批量修正 Markdown 文档,代码做了注释拆解,适配 Windows、Mac、Linux 多系统,团队成员可以直接修改配置参数复用。

5.1 依赖环境安装

代码语言:javascript
复制
# 所需第三方依赖库安装命令
# pip install requests pandas openpyxl markdown python-dotenv

5.2 核心配置文件.env

代码语言:javascript
复制
# WorkBuddy开放平台密钥配置
WB_ACCESS_KEY=你的平台访问密钥
WB_SECRET_KEY=你的平台密钥
WB_AGENT_ID=自定义文档审阅智能体ID
# 文件存储路径配置
ORIGIN_DOC_PATH=./docs/origin/login_api.md
CORRECT_REPORT_PATH=./report/doc_check_result.xlsx
FINAL_DOC_PATH=./docs/final/login_api_final.md
# 单次提交最大文本字符限制
MAX_CONTENT_LENGTH=3000

5.3 文档预处理 + API 调用 + 批量修正核心脚本

代码语言:javascript
复制
import os
import time
import pandas as pd
import requests
from dotenv import load_dotenv
from markdown import markdown

# 加载环境配置
load_dotenv()

class DocAuditWorkFlow:
    def __init__(self):
        self.access_key = os.getenv("WB_ACCESS_KEY")
        self.secret_key = os.getenv("WB_SECRET_KEY")
        self.agent_id = os.getenv("WB_AGENT_ID")
        self.origin_path = os.getenv("ORIGIN_DOC_PATH")
        self.report_path = os.getenv("CORRECT_REPORT_PATH")
        self.final_path = os.getenv("FINAL_DOC_PATH")
        self.max_len = int(os.getenv("MAX_CONTENT_LENGTH"))
        self.api_host = "https://open.workbuddy.qq.com/v1"

    def split_markdown_content(self):
        """文档预处理:将长文档按照标题分段,避免文本超限"""
        with open(self.origin_path, "r", encoding="utf-8") as f:
            content = f.read()
        sections = content.split("# ")
        content_list = []
        temp_text = ""
        for section in sections:
            if not section.strip():
                continue
            if len(temp_text + section) > self.max_len:
                content_list.append(temp_text)
                temp_text = "# " + section
            else:
                temp_text = temp_text + "# " + section
        if temp_text:
            content_list.append(temp_text)
        return content_list, content

    def create_audit_task(self, doc_segment):
        """调用WorkBuddy API创建异步文档校验任务"""
        url = f"{self.api_host}/agent/async_task/create"
        prompt_template = """
你是企业内部专职技术文档审阅专员,仅依托绑定的三份知识库规则做合规审查,禁止主观润色全文。
待校验文档片段:
{doc_content}
严格按照系统预设四个校验维度检查,仅输出固定五列表格格式的校验结果,无多余文字。
"""
        params = {
            "agent_id": self.agent_id,
            "access_key": self.access_key,
            "secret_key": self.secret_key,
            "user_prompt": prompt_template.format(doc_content=doc_segment)
        }
        resp = requests.post(url, json=params)
        return resp.json().get("data", {}).get("task_id")

    def get_task_result(self, task_id, wait_times=60, interval=2):
        """轮询监听任务执行状态,直到任务完成返回校验结果"""
        url = f"{self.api_host}/agent/async_task/get"
        for _ in range(wait_times):
            params = {
                "access_key": self.access_key,
                "secret_key": self.secret_key,
                "task_id": task_id
            }
            resp = requests.get(url, params=params)
            res_data = resp.json().get("data", {})
            status = res_data.get("task_status")
            if status == "SUCCESS":
                return res_data.get("task_result")
            elif status in ["FAIL", "CANCEL"]:
                return None
            time.sleep(interval)
        return None

    def merge_check_result(self, result_list):
        """合并多段文档校验结果,转换为结构化Excel纠错报告"""
        all_rows = []
        for md_table in result_list:
            try:
                df = pd.read_html(markdown(md_table))[0]
                all_rows.append(df)
            except Exception:
                continue
        if all_rows:
            total_df = pd.concat(all_rows, ignore_index=True)
            total_df.to_excel(self.report_path, index=False)
            return total_df
        return pd.DataFrame()

    def batch_fix_document(self, origin_content, audit_df):
        """读取纠错报告,批量替换原始文档错误内容"""
        fixed_content = origin_content
        for idx, row in audit_df.iterrows():
            error_text = str(row["错误原文"])
            fix_text = str(row["修改建议"])
            if pd.notna(error_text) and pd.notna(fix_text):
                fixed_content = fixed_content.replace(error_text, fix_text, 1)
        with open(self.final_path, "w", encoding="utf-8") as f:
            f.write(fixed_content)
        return fixed_content

    def run_workflow(self):
        """启动完整文档审阅纠错闭环工作流"""
        print("=====开始执行文档预处理分段=====")
        seg_list, origin_full = self.split_markdown_content()
        task_result_arr = []
        print(f"文档拆分完成,一共{len(seg_list)}个待校验片段")

        for index, seg in enumerate(seg_list):
            print(f"正在提交第{index+1}段文档校验任务")
            tid = self.create_audit_task(seg)
            if not tid:
                print(f"第{index+1}段任务创建失败,跳过该片段")
                continue
            res = self.get_task_result(tid)
            if res:
                task_result_arr.append(res)
            print(f"第{index+1}段文档校验执行完成")

        print("=====开始合并校验结果,生成纠错报告=====")
        audit_data = self.merge_check_result(task_result_arr)
        error_total = len(audit_data)
        print(f"本次文档一共检测到{error_total}处合规错误")

        if error_total > 0:
            print("=====开始批量自动修正原始文档=====")
            self.batch_fix_document(origin_full, audit_data)
            print(f"文档修正完成,终版文档存储路径:{self.final_path}")
        else:
            with open(self.final_path, "w", encoding="utf-8") as f:
                f.write(origin_full)
            print("文档无合规错误,直接归档原始文档")

if __name__ == "__main__":
    workflow = DocAuditWorkFlow()
    workflow.run_workflow()

5.4 代码关键逻辑说明

  1. 文档分段函数解决 WorkBuddy 单轮对话文本长度限制问题,超长技术文档不会出现校验内容截断、漏检的情况;
  2. 采用异步任务 + 轮询机制调用开放 API,规避同步请求超时导致的任务失败,适配大批次文档批量审核场景;
  3. 将 AI 返回的 Markdown 表格校验结果转换为 Excel 结构化文件,既方便人工二次核对,也能被程序精准解析完成批量文本替换;
  4. 批量修正函数按照错误出现顺序单次替换,避免多位置相同文本批量替换导致的误改问题,最大程度保留文档原有结构。

六、工作流落地踩坑总结与优化扩展方案

6.1 落地过程高频踩坑点及解决方案

第一类坑:知识库检索精度不足,AI 脱离规范自由给出修改建议。解决方案:在智能体配置中开启精准检索模式,同时在系统 Prompt 中强制要求每一条纠错内容必须绑定知识库条款编号,缺失依据的校验结果直接判定无效。 第二类坑:超长文档分段后,跨片段的逻辑冲突无法识别。解决方案:在分段之外增加一次全文摘要校验任务,提取文档参数、状态码、字段定义类核心信息做全局一致性比对,弥补分段校验的全局逻辑盲区。 第三类坑:相同文本多处重复出现,批量替换出现误修改。解决方案:脚本增加上下文匹配规则,不仅匹配错误原文,同时截取前后 10 个字符作为唯一匹配条件,只修改错误位置的片段。

6.2 工作流可扩展优化方向

  1. 接入团队消息机器人,在归档完成之后自动统计错误分类 Top5,周期性推送文档易错分析报表,反向优化团队文档编写培训内容;
  2. 新增敏感词合规校验技能,针对对外交付文档,增加数据脱敏、隐私信息识别能力,规避企业信息泄露风险;
  3. 搭建文档版本对比能力,自动生成修改前后差异文档,方便内审人员快速浏览所有变更内容,进一步降低审核工作量。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、业务场景痛点与工作流设计目标
    • 1.1 真实落地业务场景
    • 1.2 工作流核心设计目标
    • 1.3 整体工作流架构设计
  • 二、WorkBuddy 智能体核心配置与 Prompt 设计
    • 2.1 自定义智能体基础配置
    • 2.2 核心系统提示词(可直接复制复用)
    • 2.3 单次任务用户侧固定 Prompt 模板
  • 三、文档审阅纠错闭环时序流程拆解
  • 四、真实业务场景完整落地示例
    • 4.1 待审阅原始文档背景
    • 4.2 工作流分步执行实测过程
    • 4.3 落地前后效率数据对比
  • 五、核心可复用代码示例(Python 脚本实现文档批量修正)
    • 5.1 依赖环境安装
    • 5.2 核心配置文件.env
    • 5.3 文档预处理 + API 调用 + 批量修正核心脚本
    • 5.4 代码关键逻辑说明
  • 六、工作流落地踩坑总结与优化扩展方案
    • 6.1 落地过程高频踩坑点及解决方案
    • 6.2 工作流可扩展优化方向
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档