AI Agent应用从0到1搭建全流程落地指南想要从0到1搭建一套成熟的AI Agent应用需遵循清晰的推进逻辑从需求梳理到技术落地再到工程优化每一步都有明确的核心动作与关键策略。以下是系统化的搭建路径帮你高效推进项目落地一、锚定核心以业务需求为起点分阶段实现迭代闭环搭建AI Agent的首要前提是精准锚定业务需求通过Vibe Coding快速落地核心功能再聚焦细节持续调优实现从快速交付到精细化打磨的进阶需求梳理与快速实现先全面梳理业务逻辑将核心诉求拆解为可落地的功能模块。借助Vibe Coding可快速达成约80%的核心功能搭建大幅缩短初期交付周期。剩余功能迭代优化针对剩余20%的精细化需求开展多轮迭代优化。核心动作包括追踪任务卡点通过prompt修复指令引导AI精准解决问题核查测试数据的覆盖度补齐场景短板通过多轮打磨让应用能力逐步完善。二、技术选型分步验证兼顾效率与灵活性技术框架的选择需兼顾试错成本与扩展性采用先轻量验证、后稳健迭代的策略逐步搭建稳固的技术底座轻量POC验证优先选用qwen-Agent开展核心功能验证依托其效率高、试错成本低的优势快速跑通业务逻辑完成一轮POC验证确保核心方向可行。框架迭代升级验证通过后借助Trae、lingma、Qoder、codeBuddy、Cursor、Claude code、Codex等高代码工具将框架替换为Nanobot框架同时结合langchain/langgraph搭建完整的Agent工作流。过程中同步规划核心模块的落地明确是否引入MCP、Skill模块以及RAG的部署方式保障技术架构适配业务需求。若想深入了解Nanobot框架的实战细节可参考文章Agent实战首秀ChatBI股票分析助手从0到1的智能分析搭建全记录三、工程约束沉淀代码规范破解LLM随机性难题为规避LLM写代码时的随机性与幻觉问题需建立完善的工程约束体系通过规范沉淀提升代码稳定性代码规范沉淀搭建专属代码沉淀体系借助**xxx**的约束形式明确LLM的代码生成规则从源头规避代码随机性问题。引入Harness工程思维融入Harness思维构建工程约束机制以标准化的工程管控逻辑规范代码开发流程确保代码质量稳定可控。若想系统掌握Harness思维与工程约束方法可参考文章Harness Engineering从入门到精通四、质量保障落地“红-绿-重构”流程夯实应用稳定性代码完成后需依托完善的测试体系与迭代流程保障应用质量测试用例体系搭建提前梳理并整理完备的测试用例覆盖核心业务场景与边缘场景为代码质量验证提供全面依据。执行“红-绿-重构”流程代码完成后严格跑通红-绿-重构流程先验证测试用例的通过情况再针对问题持续重构优化通过反复打磨筑牢应用的稳定性与可靠性。这套从0到1的搭建路径既兼顾了业务需求的快速落地又保障了技术架构的稳健性与代码质量的可控性助力高效打造贴合业务诉求的AI Agent应用。解锁RAG Agent搭建全流程下面将带大家系统梳理Agent的搭建逻辑以“基于公司年度报告构建问答系统”为核心案例拆解从需求落地到流程设计的完整路径为Agent搭建提供清晰指引。业务需求基于公司年度报告构建一个问答系统随机收集100家公司的年度报告解析这些报告并构建一个数据库。这些报告是 PDF 格式每份最长可达 1000 页。然后系统会生成 100 个随机问题基于预设模板RAG系统必须尽快回答这些问题。所有问题都有确定的答案例如是/否公司名称某些情况下是多个公司名称领导职位头衔、推出的产品名称数值指标营收、商店数量等。每个答案都必须注明引用的页码确保系统是从原文中得出答案而不是输出虚假信息。业务流程图在native RAG的基础上加入了两个路由器router和 LLM 重排序模块LLM reranking1.数据预处理精细化切片筑牢检索根基针对PDF文件先开展数据清洗与标准化处理统一文件格式、精准提取核心文字彻底消除格式杂乱、信息冗余等问题随后按照300字符的小颗粒度进行切片——因目标问答的颗粒度极细小切片能精准锚定细节信息避免大切片带来的语义模糊。最终将处理好的切片存入向量数据库为后续高效检索搭建底层数据底座。2.路由分流精准分类缩小检索范围面对海量数据带来的检索压力引入Router路由机制破解难题。其核心逻辑是意图识别与数据分类预先搭建多类别专属数据库当用户发起提问时Router快速识别问题类型精准匹配对应的数据库实现靶向筛选。这一过程能大幅缩小检索范围让待检索的数据量显著缩减从源头提升检索的精准度与效率。3.检索与排序双重优化锁定核心信息在精准定位目标数据库后先开展向量相似度检索完成基础的信息召回再通过Rerank Score打分对召回结果进行精细化排序剔除低关联度内容让高匹配、高价值的信息脱颖而出为后续答案生成锁定核心上下文。4.智能推理COT赋能迭代生成优质答案针对用户问题依托COT思维链拆解背后的隐含逻辑将复杂问题转化为清晰的处理路径生成多套针对性答案。结合LLM Rerank对答案进行二次优化输出融合精准上下文与逻辑框架的全新Prompt最终交付LLM开展深度推理迭代生成逻辑严谨、贴合需求的答案。5.RAG核心链路闭环驱动高效输出整个RAG系统的核心逻辑可概括为用户Query 精准检索的上下文 COT Prompt模板三者协同输入LLM形成从需求输入到智能推理的闭环链路保障答案的精准性与逻辑完整性。若想深入掌握COT思维链的核心原理与应用方法可查阅文章初识AgentPDF解析与RAG构建全链路从格式攻坚到精准检索的落地方案PDF解析突破格式壁垒夯实文本基础PDF解析是复杂且精细的系统性工程需攻克格式不统一、结构多样化的核心难题既要保障内容完整提取又要兼顾语义连贯性与结构化呈现具体攻坚策略如下1. 解析核心难点与应对PDF文档格式灵活多变排版涵盖上下、左右、右左等多方向还包含图片、表格、公式、页眉页脚等多元元素解析需精准破解以下痛点完整保留表格结构、标题、项目符号列表、多栏文本等关键格式妥善处理图表、公式、页眉页脚等复杂元素应对排版方向不统一、格式混杂的问题。落地工具直接依托Python工具或选用专业第三方工具如docling、mineru高效完成解析工作。2. 表格处理破解语义断裂保障理解精准大型表格存在度量名称与纵向表头距离过远、合并单元格结构复杂的问题既会削弱语义连贯性干扰LLM推理又会导致向量检索相关性降低还可能出现表格无法完整装入单个chunk的情况。核心解决方案采用表格序列化策略将表格改写为符合人类表达逻辑的自然语言语句例如将表格内容转化为“2023年4月5日毛利是98345元”的表述。同时参考Row-wise Serialization行式序列化、Attribute-Value Pairing属性-值对匹配思路。3. 格式选择优先HTML规避理解偏差Markdown格式缺乏结构化标识LLM易出现理解偏差一旦理解失误将引发数据连锁错误HTML凭借tr/td格式可精准描述合并单元格、子标题等复杂结构且LLM对HTML数据格式熟悉度高理解准确率显著优于MarkdownHTML本质是XML语言结构化程度高便于后续操作管理经大量实验验证HTML的解析效果更优。解析成果最终将报告从PDF转换为包含HTML的Markdown文本为后续数据库搭建奠定基础。文档切分锚定语义连贯确定合理粒度文档切分需兼顾操作便捷性与语义相关性核心目标是让查询与文本块形成强语义关联提升检索精准度具体方案如下1. 切分方案对比整页切分操作最简单因单页token数通常不超几千但目标语句若分散在整页中会被大量无关文本稀释导致相似度得分偏低语义连贯性不足。小段落切分通常情况下能回答问题的信息片段不超过十个句子小段落能聚焦核心信息让目标语句获得更高的相似度得分语义关联性更强。2. 最终切分策略采用每页文本分割为300个token约15个句子的块的方案同时为每个块存储专属ID并在元数据中记录父页面编号既保障信息聚焦又便于后续溯源。数据库搭建以公司为单位实现精准管理针对100家公司的文档数据库搭建的核心原则是结构清晰、检索精准避免信息混淆具体方案如下数据库数量选择搭建100个Faiss数据库每个数据库对应1家公司的文档而非将所有公司信息混合存储。优势无需后续拆分不同公司的信息想看某家公司的情况直接检索对应公司的Faiss库即可结构清晰、检索高效从源头规避跨公司信息混淆的问题。Faiss索引选型采用IndexFlatIP方法创建Faiss数据库核心特性如下优点向量以原始状态存储无压缩、无量化采用暴力搜索检索精度极高缺点搜索计算量与内存消耗相对较高但能充分保障检索的精准度契合对答案准确性要求高的场景需求。NativeRAG详解NativeRAG系统的开发流程解析 (Parsing)为知识库准备数据包括收集文档、将其转换为文本格式并清理无关的噪点信息。内容提取 (Ingestion)创建并载入知识库。检索 (Retrieval)构建一个工具根据用户查询查找并返回相关数据通常在向量数据库中进行语义搜索。回答 (Answering)将检索到的数据 用户的提示词prompt 发送给 LLM返回最终答案。这里需要你去看下 我上一篇文章 RAG进化论多模态融合×动态检索优化实战手册在解析阶段进行更好的数据清洗query改写在检索时使用混合检索。检索RetrievalRAG 系统中的R检索是一个通用的搜索系统它接收查询作为输入返回回答所需的 相关文本。在基础实现中它只是对向量数据库发起查询提取 Top N 个结果。Retrieval是 RAG 系统中的关键部分是否需要采用混合搜索如果 LLM 在查询上下文中没有接收到必要信息它就无法提供正确答案无论我们如何精心设置提示词垃圾进 → 垃圾出Garbage in → Garbage out。常用的策略是采用混合搜索 vDB BM25混合搜索Hybrid search结合了基于向量语义和传统关键词的搜索 BM25 算法。理论上它通过不仅考虑文本语义还考虑精确关键词匹配来提高检索准确性。 将两种方法的搜索结果合并再进行重排序。想了解混合搜索可以去看下我之前写的文章 RAG进化论多模态融合×动态检索优化实战手册。重排序RerankingJina Reranker是一款专为提升信息检索性能设计的神经网络重排序模型尤其适用于RAG细粒度语义分析采用交叉编码器架构对查询和文档进行联合编码捕捉令牌级别的交互细节弥补传统向量检索如余弦相似度在语义理解上的不足。多阶段检索优化在向量检索初步召回候选文档后对结果进行二次重排提升Top-K结果的准确性。例如在LlamaIndex测试中命中率提升7.9%均值倒排率MRR提升33.7%。多语言支持支持100多种语言在MKQA基准测试中表现优于同类模型如bge-reranker-v2-m324。Agentic RAG增强集成函数调用和Text-to-SQL能力可识别结构化数据查询意图如MySQL/MongoDB并为API调用生成相关性评分扩展了RAG的应用场景。超快推理速度通过Flash Attention 2技术优化v2版本比前代快6倍比竞品bge-reranker-v2-m3快15倍参数量仅278M兼顾效率与性能想详细了解可以看下我之前写的文章 Embedding不是魔法把文字变成数字的底层逻辑。Jina Reranker和bge-m3都是常用的Reranking模型但在比赛中作者使用功了LLM重排序LLM重排序system_prompt_rerank_single_block 你是一个RAG检索重排专家。 你将收到一个查询和一个检索到的文本块请根据其与查询的相关性进行评分。 评分说明 1. 推理分析文本块与查询的关系简要说明理由。 2. 相关性分数0-1步长0.1 0 完全无关 0.1 极弱相关 0.2 很弱相关 0.3 略有相关 0.4 部分相关 0.5 一般相关 0.6 较为相关 0.7 相关 0.8 很相关 0.9 高度相关 1 完全匹配 3. 只基于内容客观评价不做假设。 LLM 查询结果进行格式化输出包含两个字段reasoning让模型解释其判断和relevance_score可以直接从 JSON 中提取。修正后的相关性得分使用加权平均计算vector_weight 0.3llm_weight 0.7理论上我们可以直接跳过向量搜索将每一页都直接传递给 LLM。然而使用embedding进行更便宜、更快速的过滤仍然是必要的。对于一份 1000 页的文档仅仅回答一个问题就可能花费约 25 美分——太昂贵了。父页面检索 (Parent Page Retrieval)虽然回答问题的核心信息通常集中在某个小块中这也是分块能提升检索效果的原因但同一页面的其他部分可能仍包含次要却重要的细节。因此在实际应用中我们会先检索出 Top N 个最相关的文本块 这些块仅作为“指针”来定位对应的完整页面。 随后我们会将整个页面的内容纳入上下文context中进行分析。这就是为什么我们在每个块的元数据中记录其所属的页面编号——以便快速回溯原始内容。整合后的检索器 (Assembled Retriever)最终检索器的步骤对查询进行向量化。根据查询向量找到 Top 30 个相关块。通过块的元数据提取对应的页面记得去重。通过 LLM 重排序器处理这些页面。调整页面的相关性得分。返回得分最高的 Top 10 页在每一页前面加上页码并将它们合并成一个字符串。增强 (Augmentation)目前为止向量数据库已建立RAG 系统中的“R”检索已完成我们现在进入“A”增强部分。这部分相当直接主要是 f-string 字符串拼接操作。如何更有效的管理提示词存储的方式在项目中尝试了不同方法后最终确定将提示词存储在一个专门的prompts.py文件中并将提示词分割成逻辑块核心系统指令定义 LLM 返回响应格式的 Pydantic schema用于创建单次示例one-shot/少次示例few-shot提示词的问答对示例用于插入上下文和查询的模板。核心系统指令告诉大模型“你是谁、你要做什么、你要遵循哪些规则”的主提示词。classAnswerWithRAGContextSharedPrompt:instruction 你是一个RAG检索增强生成问答系统。 你的任务是仅基于公司年报中RAG检索到的相关页面内容回答给定问题。 ... 定义 LLM 返回响应格式的 Pydantic schema用 Pydantic 的 BaseModel 定义 LLM 输出的 JSON 格式强制 LLM 输出结构化内容便于后续解析和校验。classComparativeAnswerPrompt:classAnswerSchema(BaseModel):step_by_step_analysis:strField(description详细分步推理过程至少5步150字以上。)reasoning_summary:strField(description简要总结推理过程约50字。)relevant_pages:List[int]Field(description保持为空列表。)final_answer:Union[str,Literal[N/A]]Field(description公司名称需与问题中完全一致。答案只能是单个公司名或N/A。)用于创建单次示例one-shot/少次示例few-shot提示词的问答对示例给 LLM 一个或几个“问题-答案”示例帮助它学会输出你想要的格式和风格。exampler示例 问题 下列公司中哪家2022年总资产最低A公司, B公司, C公司若无数据则排除。 答案 { step_by_step_analysis: ..., reasoning_summary: ..., relevant_pages: [], final_answer: C公司 } 用于插入上下文和查询的模板让 LLM 能够“看到”相关内容和问题基于这些内容作答。user_prompt 以下是上下文: \\\ {context} \\\ --- 以下是问题 {question} prompts.py 文件就是把所有和 LLM 交互相关的提示词、格式、示例、模板都集中管理并且分成了四个逻辑块系统指令告诉 LLM 你是谁、你要干什么。Pydantic schema告诉 LLM 输出什么格式。示例给 LLM 看标准答案学会怎么答。模板动态插入上下文和问题驱动实际问答。这样做的好处是结构清晰、易于维护、可复用、易于扩展也是当前主流 LLM/RAG 项目的最佳实践。生成 (Generation)RAG 中的 “G”生成是最耗费精力的。要在这一阶段实现高质量需要巧妙地使用几种技术。业务场景每家公司都设置了独立的向量数据库。问题中明确包含公司名直接匹配即可定位数据库。实际应用可能需要 LLM 提取实体或打标签来匹配数据库。核心逻辑1.提取公司名 → 2. 匹配对应数据库 → 3. 仅搜索该库。这样可将搜索范围缩小 100 倍提升效率。将查询路由到数据库RAG 系统中最简单却最有用的部分答案必须简洁且严格匹配指定数据类型如int/float/bool/str/list[str]类似数据库存储格式每种类型有 3-6 个细节需处理如去除货币符号、单位换算等。直接让 LLM 遵守所有规则不可靠规则越多出错概率越高。解决方案将复杂查询拆解为多个简单步骤减少单次请求的规则数量。例如先提取原始数值再单独处理货币单位转换。分步操作能显著提升准确性。核心思路简化任务 → 降低 LLM 认知负荷 → 确保格式零错误。查询路由到提示词由于每个问题的预期响应类型如int/float/bool/str/list[str]都是明确给定的我们可以采用更直接的解决方案为每种数据类型预先设计了专门的提示词模板然后通过简单的if-else逻辑来自动选择对应的提示词版本。这种方法既保证了回答格式的精确性又实现了高效的自动化处理。复合查询路由处理涉及多家公司比较的复杂问题时采用分步拆解。比如苹果和微软谁的营收更高问题拆解阶段首先由LLM将原始比较问题自动拆解为多个独立子问题示例生成苹果的营收是多少“和微软的营收是多少”并行查询阶段对每个子问题使用标准查询流程独立处理分别获取各家公司的精确指标数据综合判断阶段将收集到的各公司数据作为上下文由LLM进行最终比较并生成答案复合查询路由这种模块化处理模式具有高度可扩展性能够灵活应对各类复杂比较查询调优思维链 (Chain of Thoughts, CoT)思维链CoT通过让模型在给出最终答案之前“出声思考”显著提高了答案质量。早期提示词工程中“一步步思考”Think step by step这类通用指令能提升答案质量但对复杂任务仍不足。尤其较弱模型如GPT-4o-mini、Llama 8b常出现“虚假推理”——先给答案再倒推理由甚至捏造事实。COT有2种方式1基于业务经验老法师做一遍给出few shot2thinking模型为了确保CoT 的作用我们必须清晰地引导模型如何进行推理。解释推理步骤、目标、并提供示例。带有模糊上下文的推理示例Ritter Pharmaceuticals Inc. 的研发设备按成本计是多少模型的推理步骤问题询问 Ritter Pharmaceuticals Inc. 的“研发设备按成本计”。这表明需要从资产负债表中提取一个特定数值代表专门用于研发的设备的原始购置成本不包含任何累计折旧。上下文第 35 页显示“不动产和设备净额”为 12,500 美元。这是一个净值已扣除折旧而且是一个更广泛的类别包含所有不动产和设备而不仅仅是研发设备。上下文第 37 页还提到“机械和设备”的“累计折旧”为 110,000 美元。这代表了总的折旧而不是原始成本更重要的是它没有说明这些设备专门用于研发。这两个指标都不完全符合请求的指标。“不动产和设备净额”范围太广且是折旧后的价值。“累计折旧”仅显示折旧而非成本并且缺乏研发的针对性。由于上下文没有提供仅用于研发设备的原始成本且我们无法进行假设、计算因此答案是“N/A”。大家也可以去看下我之前的文章了解下COT到底是什么 初识Agent。结构化输出 (Structured outputs)结构化输出Structured OutputSO是一种强制模型返回标准化格式如JSON/Pydantic schema的方法。通过API传递schema确保输出始终符合预定结构。比如这里是用于 LLM 重排序的 Pydantic schemaclassRetrievalRankingSingleBlock(BaseModel):Rank retrieved text block relevance to a query.reasoning:strField(description(Analysis of the block, identifying key information and how itrelates to the query))relevance_score:floatField(description(Relevance score from 0 to 1, where 0 is Completely Irrelevant and 1 is Perfectly Relevant))有了这个 schemaLLM 总是会返回一个包含两个字段的JSON——第一个是字符串第二个是数字。CoTSO 思维链结构化输出思维链 结构化输出 可以理想地结合使用在生成阶段LLM模型有一个专门用于推理的字段还有一个单独的字段用于最终答案 这样我们可以直接提取答案而无需从冗长的推理步骤中进行解析。在用于回答比赛问题的主要schema 中设置了四个字段•step_by_step_analysis初步推理思维链本身。•reasoning_summary前一个字段的精简摘要用于更轻松地跟踪模型的逻辑。•relevant_pages答案引用的报告页码。•final_answer根据业务要求格式化后的简洁答案指令细化 (Instruction Refinement)当AI回答用户问题时需要判断答案的灵活范围——比如问CEO是谁实际要包括哪些类似职位如总裁、董事总经理等这种问题在现实中经常遇到而且现实数据不完美即不同公司用不同头衔称呼老大美国叫CEO英国可能叫MD用户真正想知道的可能比字面意思更广 所以需要对 instruction 进行细化指令细化的挑战解释自由度该把哪些边缘情况算作答案硬标准只认CEO字眼软标准包括相似职位如总裁/MD但要划定界限如果没有找到答案该如何处理比如问股息政策有变吗“若报告未提及该回答无变更还是无信息”解决方案提前与客户确定规则如接受MD作为CEO的答案吗收集大量边缘案例测试系统真实案例对比灵活回答适合开放问答“Ethan Caldwell是董事总经理最接近CEO的角色但目前因调查暂停职务…”严格回答适合简答问答需预先定义是否允许MD≈CEO否则可能输出错误简答指令细化这一部分的工作量与整个数据准备阶段不相上下因为需要进行无止境的迭代调试、校对答案以及手动分析模型的推理过程。提示词创建 (Prompt Creation)通过LLM利用公开的问题生成器快速创建了100个问题的验证集并通过手动回答这些问题获得了两个重要收益量化改进验证集成为客观衡量系统性能的标准通过统计正确率和错误模式能精准优化提示词和流程。发现隐性规则手动分析暴露了问题中隐藏的细节和歧义促使团队与专家Rinat确认回答规范并将这些规则明确写入提示词指令中。最终这些洞察被系统化地整合到提示词设计中形成更严谨的指令框架。RAG系统调参拥有一个验证集不仅帮助改进了提示词也使整个系统受益。我们将所有关键功能配置化以便衡量它们的实际效果并微调超参数。以下是一些示例配置字段classRunConfig:# 运行流程参数配置use_serialized_tables:boolFalseparent_document_retrieval:boolFalseuse_vector_dbs:boolTrueuse_bm25_db:boolFalsellm_reranking:boolFalsellm_reranking_sample_size:int30top_n_retrieval:int10parallel_requests:int1# 并行的数量需要限制否则qwen-turbo会超出阈值pipeline_details:strsubmission_file:boolTruefull_context:boolFalseapi_provider:strdashscope#openaianswering_model:strqwen-turbo-latestconfig_suffix:str通过配置不同的RAG超参数惊讶地发现原来被寄予厚望的表格序列化不仅没有改进系统反而降低了有效性。系统化方法胜于“神奇方案”成功并非依赖单一突破性技术而是通过系统化的流程优化结合并精细调整多种技术。这些关键因素包括高质量解析确保数据预处理精准、结构化。高效检索优化检索效率与准确性。智能路由动态分配查询到最合适的处理模块。LLM重排序利用大语言模型对检索结果重新排序显著提升相关性。提示词设计精心设计的提示词prompt engineering使紧凑模型也能发挥出色性能。RAG的优化是一个精细化工程问题RAG问答结果高度依赖对任务细节的深入理解通过精准微调每个环节解析、检索、路由、排序等即使简单技术也能实现显著效果。高效梳理测试灰色地带问题面对测试中边界模糊、覆盖不足的灰色地带可依托人机协同的三步闭环流程实现高效、全面的梳理既发挥人类的专业判断力又借助AI的发散能力拓展边界具体落地路径如下一、核心流程三步联动精准锁定灰色地带这套流程以“人类锚定核心AI拓展边界人工校验确认”为核心逻辑层层递进确保不遗漏关键灰色场景同时避免无效冗余锚定种子人类输出核心灰色问题由测试人员基于业务经验与场景认知主动撰写1个典型的灰色测试问题。这类问题需聚焦边界模糊、规则不清晰、易被忽视的核心地带作为整个梳理流程的起点为后续拓展划定核心方向。AI拓展LLM发散挖掘潜在场景将第一步确定的种子问题输入LLM借助其强大的发散联想与场景推演能力全面拓展出更多可能的灰色测试问题。AI可快速覆盖人类思维易遗漏的边缘场景、隐性关联场景大幅拓宽灰色地带的覆盖范围弥补人工梳理的局限性。人工校验筛选确认有效边界对LLM输出的拓展问题进行人工过滤与确认剔除重复、无关、不符合业务实际的无效内容保留真正属于灰色地带的核心问题最终形成完整、精准的灰色测试问题清单。这一步依托人类的专业判断把控最终质量确保梳理结果贴合业务需求。二、配套技术支撑全链路工具协同夯实落地基础梳理灰色地带问题的同时需依托完善的技术工具体系为测试全流程提供底层支撑核心工具覆盖数据处理、AI应用、交互搭建等关键环节数据处理层以数据清洗规范原始数据格式、剔除杂质保障输入质量借助mineru高效完成文档解析与信息提取为测试提供精准数据源。AI核心层依托LLM完成问题拓展、逻辑推演通过embedding将文本转化为向量支撑语义检索与匹配提升测试场景的覆盖效率。交互与服务层采用streamlit、gradio这类轻量Python Web框架快速搭建可视化交互界面降低测试操作门槛以flask作为Python后端框架提供稳定的接口服务保障测试流程的顺畅运行同时预设回答问题模板统一输出格式提升测试反馈的规范性与效率。这套“人机协同的三步闭环法”既解决了人工梳理灰色地带效率低、覆盖不全的痛点又通过成熟的技术工具链保障了落地可行性助力测试工作精准覆盖边界场景全面提升测试质量。
从0到1搭建RAG Agent?这4步实操指南,帮你避开90%的踩坑误区!
发布时间:2026/5/27 21:37:49
AI Agent应用从0到1搭建全流程落地指南想要从0到1搭建一套成熟的AI Agent应用需遵循清晰的推进逻辑从需求梳理到技术落地再到工程优化每一步都有明确的核心动作与关键策略。以下是系统化的搭建路径帮你高效推进项目落地一、锚定核心以业务需求为起点分阶段实现迭代闭环搭建AI Agent的首要前提是精准锚定业务需求通过Vibe Coding快速落地核心功能再聚焦细节持续调优实现从快速交付到精细化打磨的进阶需求梳理与快速实现先全面梳理业务逻辑将核心诉求拆解为可落地的功能模块。借助Vibe Coding可快速达成约80%的核心功能搭建大幅缩短初期交付周期。剩余功能迭代优化针对剩余20%的精细化需求开展多轮迭代优化。核心动作包括追踪任务卡点通过prompt修复指令引导AI精准解决问题核查测试数据的覆盖度补齐场景短板通过多轮打磨让应用能力逐步完善。二、技术选型分步验证兼顾效率与灵活性技术框架的选择需兼顾试错成本与扩展性采用先轻量验证、后稳健迭代的策略逐步搭建稳固的技术底座轻量POC验证优先选用qwen-Agent开展核心功能验证依托其效率高、试错成本低的优势快速跑通业务逻辑完成一轮POC验证确保核心方向可行。框架迭代升级验证通过后借助Trae、lingma、Qoder、codeBuddy、Cursor、Claude code、Codex等高代码工具将框架替换为Nanobot框架同时结合langchain/langgraph搭建完整的Agent工作流。过程中同步规划核心模块的落地明确是否引入MCP、Skill模块以及RAG的部署方式保障技术架构适配业务需求。若想深入了解Nanobot框架的实战细节可参考文章Agent实战首秀ChatBI股票分析助手从0到1的智能分析搭建全记录三、工程约束沉淀代码规范破解LLM随机性难题为规避LLM写代码时的随机性与幻觉问题需建立完善的工程约束体系通过规范沉淀提升代码稳定性代码规范沉淀搭建专属代码沉淀体系借助**xxx**的约束形式明确LLM的代码生成规则从源头规避代码随机性问题。引入Harness工程思维融入Harness思维构建工程约束机制以标准化的工程管控逻辑规范代码开发流程确保代码质量稳定可控。若想系统掌握Harness思维与工程约束方法可参考文章Harness Engineering从入门到精通四、质量保障落地“红-绿-重构”流程夯实应用稳定性代码完成后需依托完善的测试体系与迭代流程保障应用质量测试用例体系搭建提前梳理并整理完备的测试用例覆盖核心业务场景与边缘场景为代码质量验证提供全面依据。执行“红-绿-重构”流程代码完成后严格跑通红-绿-重构流程先验证测试用例的通过情况再针对问题持续重构优化通过反复打磨筑牢应用的稳定性与可靠性。这套从0到1的搭建路径既兼顾了业务需求的快速落地又保障了技术架构的稳健性与代码质量的可控性助力高效打造贴合业务诉求的AI Agent应用。解锁RAG Agent搭建全流程下面将带大家系统梳理Agent的搭建逻辑以“基于公司年度报告构建问答系统”为核心案例拆解从需求落地到流程设计的完整路径为Agent搭建提供清晰指引。业务需求基于公司年度报告构建一个问答系统随机收集100家公司的年度报告解析这些报告并构建一个数据库。这些报告是 PDF 格式每份最长可达 1000 页。然后系统会生成 100 个随机问题基于预设模板RAG系统必须尽快回答这些问题。所有问题都有确定的答案例如是/否公司名称某些情况下是多个公司名称领导职位头衔、推出的产品名称数值指标营收、商店数量等。每个答案都必须注明引用的页码确保系统是从原文中得出答案而不是输出虚假信息。业务流程图在native RAG的基础上加入了两个路由器router和 LLM 重排序模块LLM reranking1.数据预处理精细化切片筑牢检索根基针对PDF文件先开展数据清洗与标准化处理统一文件格式、精准提取核心文字彻底消除格式杂乱、信息冗余等问题随后按照300字符的小颗粒度进行切片——因目标问答的颗粒度极细小切片能精准锚定细节信息避免大切片带来的语义模糊。最终将处理好的切片存入向量数据库为后续高效检索搭建底层数据底座。2.路由分流精准分类缩小检索范围面对海量数据带来的检索压力引入Router路由机制破解难题。其核心逻辑是意图识别与数据分类预先搭建多类别专属数据库当用户发起提问时Router快速识别问题类型精准匹配对应的数据库实现靶向筛选。这一过程能大幅缩小检索范围让待检索的数据量显著缩减从源头提升检索的精准度与效率。3.检索与排序双重优化锁定核心信息在精准定位目标数据库后先开展向量相似度检索完成基础的信息召回再通过Rerank Score打分对召回结果进行精细化排序剔除低关联度内容让高匹配、高价值的信息脱颖而出为后续答案生成锁定核心上下文。4.智能推理COT赋能迭代生成优质答案针对用户问题依托COT思维链拆解背后的隐含逻辑将复杂问题转化为清晰的处理路径生成多套针对性答案。结合LLM Rerank对答案进行二次优化输出融合精准上下文与逻辑框架的全新Prompt最终交付LLM开展深度推理迭代生成逻辑严谨、贴合需求的答案。5.RAG核心链路闭环驱动高效输出整个RAG系统的核心逻辑可概括为用户Query 精准检索的上下文 COT Prompt模板三者协同输入LLM形成从需求输入到智能推理的闭环链路保障答案的精准性与逻辑完整性。若想深入掌握COT思维链的核心原理与应用方法可查阅文章初识AgentPDF解析与RAG构建全链路从格式攻坚到精准检索的落地方案PDF解析突破格式壁垒夯实文本基础PDF解析是复杂且精细的系统性工程需攻克格式不统一、结构多样化的核心难题既要保障内容完整提取又要兼顾语义连贯性与结构化呈现具体攻坚策略如下1. 解析核心难点与应对PDF文档格式灵活多变排版涵盖上下、左右、右左等多方向还包含图片、表格、公式、页眉页脚等多元元素解析需精准破解以下痛点完整保留表格结构、标题、项目符号列表、多栏文本等关键格式妥善处理图表、公式、页眉页脚等复杂元素应对排版方向不统一、格式混杂的问题。落地工具直接依托Python工具或选用专业第三方工具如docling、mineru高效完成解析工作。2. 表格处理破解语义断裂保障理解精准大型表格存在度量名称与纵向表头距离过远、合并单元格结构复杂的问题既会削弱语义连贯性干扰LLM推理又会导致向量检索相关性降低还可能出现表格无法完整装入单个chunk的情况。核心解决方案采用表格序列化策略将表格改写为符合人类表达逻辑的自然语言语句例如将表格内容转化为“2023年4月5日毛利是98345元”的表述。同时参考Row-wise Serialization行式序列化、Attribute-Value Pairing属性-值对匹配思路。3. 格式选择优先HTML规避理解偏差Markdown格式缺乏结构化标识LLM易出现理解偏差一旦理解失误将引发数据连锁错误HTML凭借tr/td格式可精准描述合并单元格、子标题等复杂结构且LLM对HTML数据格式熟悉度高理解准确率显著优于MarkdownHTML本质是XML语言结构化程度高便于后续操作管理经大量实验验证HTML的解析效果更优。解析成果最终将报告从PDF转换为包含HTML的Markdown文本为后续数据库搭建奠定基础。文档切分锚定语义连贯确定合理粒度文档切分需兼顾操作便捷性与语义相关性核心目标是让查询与文本块形成强语义关联提升检索精准度具体方案如下1. 切分方案对比整页切分操作最简单因单页token数通常不超几千但目标语句若分散在整页中会被大量无关文本稀释导致相似度得分偏低语义连贯性不足。小段落切分通常情况下能回答问题的信息片段不超过十个句子小段落能聚焦核心信息让目标语句获得更高的相似度得分语义关联性更强。2. 最终切分策略采用每页文本分割为300个token约15个句子的块的方案同时为每个块存储专属ID并在元数据中记录父页面编号既保障信息聚焦又便于后续溯源。数据库搭建以公司为单位实现精准管理针对100家公司的文档数据库搭建的核心原则是结构清晰、检索精准避免信息混淆具体方案如下数据库数量选择搭建100个Faiss数据库每个数据库对应1家公司的文档而非将所有公司信息混合存储。优势无需后续拆分不同公司的信息想看某家公司的情况直接检索对应公司的Faiss库即可结构清晰、检索高效从源头规避跨公司信息混淆的问题。Faiss索引选型采用IndexFlatIP方法创建Faiss数据库核心特性如下优点向量以原始状态存储无压缩、无量化采用暴力搜索检索精度极高缺点搜索计算量与内存消耗相对较高但能充分保障检索的精准度契合对答案准确性要求高的场景需求。NativeRAG详解NativeRAG系统的开发流程解析 (Parsing)为知识库准备数据包括收集文档、将其转换为文本格式并清理无关的噪点信息。内容提取 (Ingestion)创建并载入知识库。检索 (Retrieval)构建一个工具根据用户查询查找并返回相关数据通常在向量数据库中进行语义搜索。回答 (Answering)将检索到的数据 用户的提示词prompt 发送给 LLM返回最终答案。这里需要你去看下 我上一篇文章 RAG进化论多模态融合×动态检索优化实战手册在解析阶段进行更好的数据清洗query改写在检索时使用混合检索。检索RetrievalRAG 系统中的R检索是一个通用的搜索系统它接收查询作为输入返回回答所需的 相关文本。在基础实现中它只是对向量数据库发起查询提取 Top N 个结果。Retrieval是 RAG 系统中的关键部分是否需要采用混合搜索如果 LLM 在查询上下文中没有接收到必要信息它就无法提供正确答案无论我们如何精心设置提示词垃圾进 → 垃圾出Garbage in → Garbage out。常用的策略是采用混合搜索 vDB BM25混合搜索Hybrid search结合了基于向量语义和传统关键词的搜索 BM25 算法。理论上它通过不仅考虑文本语义还考虑精确关键词匹配来提高检索准确性。 将两种方法的搜索结果合并再进行重排序。想了解混合搜索可以去看下我之前写的文章 RAG进化论多模态融合×动态检索优化实战手册。重排序RerankingJina Reranker是一款专为提升信息检索性能设计的神经网络重排序模型尤其适用于RAG细粒度语义分析采用交叉编码器架构对查询和文档进行联合编码捕捉令牌级别的交互细节弥补传统向量检索如余弦相似度在语义理解上的不足。多阶段检索优化在向量检索初步召回候选文档后对结果进行二次重排提升Top-K结果的准确性。例如在LlamaIndex测试中命中率提升7.9%均值倒排率MRR提升33.7%。多语言支持支持100多种语言在MKQA基准测试中表现优于同类模型如bge-reranker-v2-m324。Agentic RAG增强集成函数调用和Text-to-SQL能力可识别结构化数据查询意图如MySQL/MongoDB并为API调用生成相关性评分扩展了RAG的应用场景。超快推理速度通过Flash Attention 2技术优化v2版本比前代快6倍比竞品bge-reranker-v2-m3快15倍参数量仅278M兼顾效率与性能想详细了解可以看下我之前写的文章 Embedding不是魔法把文字变成数字的底层逻辑。Jina Reranker和bge-m3都是常用的Reranking模型但在比赛中作者使用功了LLM重排序LLM重排序system_prompt_rerank_single_block 你是一个RAG检索重排专家。 你将收到一个查询和一个检索到的文本块请根据其与查询的相关性进行评分。 评分说明 1. 推理分析文本块与查询的关系简要说明理由。 2. 相关性分数0-1步长0.1 0 完全无关 0.1 极弱相关 0.2 很弱相关 0.3 略有相关 0.4 部分相关 0.5 一般相关 0.6 较为相关 0.7 相关 0.8 很相关 0.9 高度相关 1 完全匹配 3. 只基于内容客观评价不做假设。 LLM 查询结果进行格式化输出包含两个字段reasoning让模型解释其判断和relevance_score可以直接从 JSON 中提取。修正后的相关性得分使用加权平均计算vector_weight 0.3llm_weight 0.7理论上我们可以直接跳过向量搜索将每一页都直接传递给 LLM。然而使用embedding进行更便宜、更快速的过滤仍然是必要的。对于一份 1000 页的文档仅仅回答一个问题就可能花费约 25 美分——太昂贵了。父页面检索 (Parent Page Retrieval)虽然回答问题的核心信息通常集中在某个小块中这也是分块能提升检索效果的原因但同一页面的其他部分可能仍包含次要却重要的细节。因此在实际应用中我们会先检索出 Top N 个最相关的文本块 这些块仅作为“指针”来定位对应的完整页面。 随后我们会将整个页面的内容纳入上下文context中进行分析。这就是为什么我们在每个块的元数据中记录其所属的页面编号——以便快速回溯原始内容。整合后的检索器 (Assembled Retriever)最终检索器的步骤对查询进行向量化。根据查询向量找到 Top 30 个相关块。通过块的元数据提取对应的页面记得去重。通过 LLM 重排序器处理这些页面。调整页面的相关性得分。返回得分最高的 Top 10 页在每一页前面加上页码并将它们合并成一个字符串。增强 (Augmentation)目前为止向量数据库已建立RAG 系统中的“R”检索已完成我们现在进入“A”增强部分。这部分相当直接主要是 f-string 字符串拼接操作。如何更有效的管理提示词存储的方式在项目中尝试了不同方法后最终确定将提示词存储在一个专门的prompts.py文件中并将提示词分割成逻辑块核心系统指令定义 LLM 返回响应格式的 Pydantic schema用于创建单次示例one-shot/少次示例few-shot提示词的问答对示例用于插入上下文和查询的模板。核心系统指令告诉大模型“你是谁、你要做什么、你要遵循哪些规则”的主提示词。classAnswerWithRAGContextSharedPrompt:instruction 你是一个RAG检索增强生成问答系统。 你的任务是仅基于公司年报中RAG检索到的相关页面内容回答给定问题。 ... 定义 LLM 返回响应格式的 Pydantic schema用 Pydantic 的 BaseModel 定义 LLM 输出的 JSON 格式强制 LLM 输出结构化内容便于后续解析和校验。classComparativeAnswerPrompt:classAnswerSchema(BaseModel):step_by_step_analysis:strField(description详细分步推理过程至少5步150字以上。)reasoning_summary:strField(description简要总结推理过程约50字。)relevant_pages:List[int]Field(description保持为空列表。)final_answer:Union[str,Literal[N/A]]Field(description公司名称需与问题中完全一致。答案只能是单个公司名或N/A。)用于创建单次示例one-shot/少次示例few-shot提示词的问答对示例给 LLM 一个或几个“问题-答案”示例帮助它学会输出你想要的格式和风格。exampler示例 问题 下列公司中哪家2022年总资产最低A公司, B公司, C公司若无数据则排除。 答案 { step_by_step_analysis: ..., reasoning_summary: ..., relevant_pages: [], final_answer: C公司 } 用于插入上下文和查询的模板让 LLM 能够“看到”相关内容和问题基于这些内容作答。user_prompt 以下是上下文: \\\ {context} \\\ --- 以下是问题 {question} prompts.py 文件就是把所有和 LLM 交互相关的提示词、格式、示例、模板都集中管理并且分成了四个逻辑块系统指令告诉 LLM 你是谁、你要干什么。Pydantic schema告诉 LLM 输出什么格式。示例给 LLM 看标准答案学会怎么答。模板动态插入上下文和问题驱动实际问答。这样做的好处是结构清晰、易于维护、可复用、易于扩展也是当前主流 LLM/RAG 项目的最佳实践。生成 (Generation)RAG 中的 “G”生成是最耗费精力的。要在这一阶段实现高质量需要巧妙地使用几种技术。业务场景每家公司都设置了独立的向量数据库。问题中明确包含公司名直接匹配即可定位数据库。实际应用可能需要 LLM 提取实体或打标签来匹配数据库。核心逻辑1.提取公司名 → 2. 匹配对应数据库 → 3. 仅搜索该库。这样可将搜索范围缩小 100 倍提升效率。将查询路由到数据库RAG 系统中最简单却最有用的部分答案必须简洁且严格匹配指定数据类型如int/float/bool/str/list[str]类似数据库存储格式每种类型有 3-6 个细节需处理如去除货币符号、单位换算等。直接让 LLM 遵守所有规则不可靠规则越多出错概率越高。解决方案将复杂查询拆解为多个简单步骤减少单次请求的规则数量。例如先提取原始数值再单独处理货币单位转换。分步操作能显著提升准确性。核心思路简化任务 → 降低 LLM 认知负荷 → 确保格式零错误。查询路由到提示词由于每个问题的预期响应类型如int/float/bool/str/list[str]都是明确给定的我们可以采用更直接的解决方案为每种数据类型预先设计了专门的提示词模板然后通过简单的if-else逻辑来自动选择对应的提示词版本。这种方法既保证了回答格式的精确性又实现了高效的自动化处理。复合查询路由处理涉及多家公司比较的复杂问题时采用分步拆解。比如苹果和微软谁的营收更高问题拆解阶段首先由LLM将原始比较问题自动拆解为多个独立子问题示例生成苹果的营收是多少“和微软的营收是多少”并行查询阶段对每个子问题使用标准查询流程独立处理分别获取各家公司的精确指标数据综合判断阶段将收集到的各公司数据作为上下文由LLM进行最终比较并生成答案复合查询路由这种模块化处理模式具有高度可扩展性能够灵活应对各类复杂比较查询调优思维链 (Chain of Thoughts, CoT)思维链CoT通过让模型在给出最终答案之前“出声思考”显著提高了答案质量。早期提示词工程中“一步步思考”Think step by step这类通用指令能提升答案质量但对复杂任务仍不足。尤其较弱模型如GPT-4o-mini、Llama 8b常出现“虚假推理”——先给答案再倒推理由甚至捏造事实。COT有2种方式1基于业务经验老法师做一遍给出few shot2thinking模型为了确保CoT 的作用我们必须清晰地引导模型如何进行推理。解释推理步骤、目标、并提供示例。带有模糊上下文的推理示例Ritter Pharmaceuticals Inc. 的研发设备按成本计是多少模型的推理步骤问题询问 Ritter Pharmaceuticals Inc. 的“研发设备按成本计”。这表明需要从资产负债表中提取一个特定数值代表专门用于研发的设备的原始购置成本不包含任何累计折旧。上下文第 35 页显示“不动产和设备净额”为 12,500 美元。这是一个净值已扣除折旧而且是一个更广泛的类别包含所有不动产和设备而不仅仅是研发设备。上下文第 37 页还提到“机械和设备”的“累计折旧”为 110,000 美元。这代表了总的折旧而不是原始成本更重要的是它没有说明这些设备专门用于研发。这两个指标都不完全符合请求的指标。“不动产和设备净额”范围太广且是折旧后的价值。“累计折旧”仅显示折旧而非成本并且缺乏研发的针对性。由于上下文没有提供仅用于研发设备的原始成本且我们无法进行假设、计算因此答案是“N/A”。大家也可以去看下我之前的文章了解下COT到底是什么 初识Agent。结构化输出 (Structured outputs)结构化输出Structured OutputSO是一种强制模型返回标准化格式如JSON/Pydantic schema的方法。通过API传递schema确保输出始终符合预定结构。比如这里是用于 LLM 重排序的 Pydantic schemaclassRetrievalRankingSingleBlock(BaseModel):Rank retrieved text block relevance to a query.reasoning:strField(description(Analysis of the block, identifying key information and how itrelates to the query))relevance_score:floatField(description(Relevance score from 0 to 1, where 0 is Completely Irrelevant and 1 is Perfectly Relevant))有了这个 schemaLLM 总是会返回一个包含两个字段的JSON——第一个是字符串第二个是数字。CoTSO 思维链结构化输出思维链 结构化输出 可以理想地结合使用在生成阶段LLM模型有一个专门用于推理的字段还有一个单独的字段用于最终答案 这样我们可以直接提取答案而无需从冗长的推理步骤中进行解析。在用于回答比赛问题的主要schema 中设置了四个字段•step_by_step_analysis初步推理思维链本身。•reasoning_summary前一个字段的精简摘要用于更轻松地跟踪模型的逻辑。•relevant_pages答案引用的报告页码。•final_answer根据业务要求格式化后的简洁答案指令细化 (Instruction Refinement)当AI回答用户问题时需要判断答案的灵活范围——比如问CEO是谁实际要包括哪些类似职位如总裁、董事总经理等这种问题在现实中经常遇到而且现实数据不完美即不同公司用不同头衔称呼老大美国叫CEO英国可能叫MD用户真正想知道的可能比字面意思更广 所以需要对 instruction 进行细化指令细化的挑战解释自由度该把哪些边缘情况算作答案硬标准只认CEO字眼软标准包括相似职位如总裁/MD但要划定界限如果没有找到答案该如何处理比如问股息政策有变吗“若报告未提及该回答无变更还是无信息”解决方案提前与客户确定规则如接受MD作为CEO的答案吗收集大量边缘案例测试系统真实案例对比灵活回答适合开放问答“Ethan Caldwell是董事总经理最接近CEO的角色但目前因调查暂停职务…”严格回答适合简答问答需预先定义是否允许MD≈CEO否则可能输出错误简答指令细化这一部分的工作量与整个数据准备阶段不相上下因为需要进行无止境的迭代调试、校对答案以及手动分析模型的推理过程。提示词创建 (Prompt Creation)通过LLM利用公开的问题生成器快速创建了100个问题的验证集并通过手动回答这些问题获得了两个重要收益量化改进验证集成为客观衡量系统性能的标准通过统计正确率和错误模式能精准优化提示词和流程。发现隐性规则手动分析暴露了问题中隐藏的细节和歧义促使团队与专家Rinat确认回答规范并将这些规则明确写入提示词指令中。最终这些洞察被系统化地整合到提示词设计中形成更严谨的指令框架。RAG系统调参拥有一个验证集不仅帮助改进了提示词也使整个系统受益。我们将所有关键功能配置化以便衡量它们的实际效果并微调超参数。以下是一些示例配置字段classRunConfig:# 运行流程参数配置use_serialized_tables:boolFalseparent_document_retrieval:boolFalseuse_vector_dbs:boolTrueuse_bm25_db:boolFalsellm_reranking:boolFalsellm_reranking_sample_size:int30top_n_retrieval:int10parallel_requests:int1# 并行的数量需要限制否则qwen-turbo会超出阈值pipeline_details:strsubmission_file:boolTruefull_context:boolFalseapi_provider:strdashscope#openaianswering_model:strqwen-turbo-latestconfig_suffix:str通过配置不同的RAG超参数惊讶地发现原来被寄予厚望的表格序列化不仅没有改进系统反而降低了有效性。系统化方法胜于“神奇方案”成功并非依赖单一突破性技术而是通过系统化的流程优化结合并精细调整多种技术。这些关键因素包括高质量解析确保数据预处理精准、结构化。高效检索优化检索效率与准确性。智能路由动态分配查询到最合适的处理模块。LLM重排序利用大语言模型对检索结果重新排序显著提升相关性。提示词设计精心设计的提示词prompt engineering使紧凑模型也能发挥出色性能。RAG的优化是一个精细化工程问题RAG问答结果高度依赖对任务细节的深入理解通过精准微调每个环节解析、检索、路由、排序等即使简单技术也能实现显著效果。高效梳理测试灰色地带问题面对测试中边界模糊、覆盖不足的灰色地带可依托人机协同的三步闭环流程实现高效、全面的梳理既发挥人类的专业判断力又借助AI的发散能力拓展边界具体落地路径如下一、核心流程三步联动精准锁定灰色地带这套流程以“人类锚定核心AI拓展边界人工校验确认”为核心逻辑层层递进确保不遗漏关键灰色场景同时避免无效冗余锚定种子人类输出核心灰色问题由测试人员基于业务经验与场景认知主动撰写1个典型的灰色测试问题。这类问题需聚焦边界模糊、规则不清晰、易被忽视的核心地带作为整个梳理流程的起点为后续拓展划定核心方向。AI拓展LLM发散挖掘潜在场景将第一步确定的种子问题输入LLM借助其强大的发散联想与场景推演能力全面拓展出更多可能的灰色测试问题。AI可快速覆盖人类思维易遗漏的边缘场景、隐性关联场景大幅拓宽灰色地带的覆盖范围弥补人工梳理的局限性。人工校验筛选确认有效边界对LLM输出的拓展问题进行人工过滤与确认剔除重复、无关、不符合业务实际的无效内容保留真正属于灰色地带的核心问题最终形成完整、精准的灰色测试问题清单。这一步依托人类的专业判断把控最终质量确保梳理结果贴合业务需求。二、配套技术支撑全链路工具协同夯实落地基础梳理灰色地带问题的同时需依托完善的技术工具体系为测试全流程提供底层支撑核心工具覆盖数据处理、AI应用、交互搭建等关键环节数据处理层以数据清洗规范原始数据格式、剔除杂质保障输入质量借助mineru高效完成文档解析与信息提取为测试提供精准数据源。AI核心层依托LLM完成问题拓展、逻辑推演通过embedding将文本转化为向量支撑语义检索与匹配提升测试场景的覆盖效率。交互与服务层采用streamlit、gradio这类轻量Python Web框架快速搭建可视化交互界面降低测试操作门槛以flask作为Python后端框架提供稳定的接口服务保障测试流程的顺畅运行同时预设回答问题模板统一输出格式提升测试反馈的规范性与效率。这套“人机协同的三步闭环法”既解决了人工梳理灰色地带效率低、覆盖不全的痛点又通过成熟的技术工具链保障了落地可行性助力测试工作精准覆盖边界场景全面提升测试质量。