ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

AI工程实战:从提示工程到Agent工作流的完整落地指南

AI工程实战:从提示工程到Agent工作流的完整落地指南 做AI工程这条路上我见过太多人卡在第一步手里攥着大模型的API却不知道怎么把一次能用的调用变成稳定可用的产品服务。AI工程AI Engineering这个词说白了就是一套把大模型能力做成可靠交付物的方法论。它既不是算法岗去调参炼丹也不是传统后端去堆接口而是夹在中间的那层翻译官——把业务问题翻译成模型能理解的任务再把模型的输出翻译成业务能消费的结果。这篇文章写给三类人刚接触大模型应用开发、想系统化补上提示工程和AI Agent体系的开发者已经在做轻量AI工具、但总觉得换个场景就失控的实践者以及想从零搭建一套完整AI工作流的团队新手。我会按自己从零到一的真实路径来拆尽量把那些没人写在文档里的判断标准也讲清楚。1. 先说清楚AI工程到底在解决什么问题1.1 AI工程与算法岗、传统开发的边界很多初学者把钱和精力都砸在模型训练上总觉得不微调一个模型就不算真AI。这是第一个误区。在实际业务里70%以上用大模型解决的问题根本轮不到训练模型靠提示词设计、检索增强、工具调用和合理的工作流编排就能闭环。AI工程真正的战场在编排层而不是模型层。我自己是从监控告警开始写提示词的。当时团队的告警信息堆成山误报特别多我试着让模型去判断这条告警是否值得人工跟进结果效果相当不错。但把它接进生产系统时就发现问题了——模型回答不稳定、格式偶尔乱掉、同一个问题换一种问法结果就不一样。这时候我才意识到提示词写得好不好只是起点后面还有一连串工程问题等着解决。算法工程师关注的是模型质量和训练方法传统开发工程师关注的是系统架构和稳定性而AI工程师关注的是模型能力与业务约束之间的对齐。你不需要懂怎么从零训练一个千亿参数模型但你必须知道温度参数对输出的影响、上下文窗口怎么管理、工具调用失败时怎么兜底。这个角色很像翻译官要在模型说什么和业务需要什么之间不停地做对齐和修正。1.2 从零起步最容易被忽视的三件事第一件事是定义问题的能力。我见过太多项目上来就问我要接大模型做个智能助手但问智能助手解决谁的什么问题、输入是什么、输出是什么、失败时怎么处理一个都答不上来。定义问题不是写一句需求描述而是把任务边界、输入输出格式、质量标准和兜底策略全部想清楚。模型不是万能的神你给它的任务越模糊它给你的结果就越随机。第二件事是提示工程不等于写几句漂亮话。很多人以为提示工程就是把指令写得详细一点实际上它是一套系统性设计系统提示词负责设定角色和行为边界少样本示例负责对齐输出风格输出格式约束负责让结果可被程序消费上下文管理负责控制成本和避免干扰。这四个维度缺一个到生产环境都会爆雷。第三件事是没有评估体系就不算工程化。写一百个提示词版本哪个更好不能靠感觉要有评估集。把历史真实请求沉淀下来标注好预期结果每次改提示词或换模型都跑一遍回归。这个习惯一开始不起眼等系统上线运营几个月后它就是你的救命稻草。2. 从零开始的完整路径规划2.1 阶段一提示工程打底我建议所有人都从结构化输出开始练习。先别做花哨的Agent就拿一个最简单的任务练手让模型从一段文本里抽取关键信息并以JSON格式返回。这个练习能逼着你把需求讲清楚也能逼着你去理解输出格式约束的重要性。你很快就会发现不约束输出格式的Prompt就是在给自己埋坑。在这个阶段你需要系统地理解几个基本概念。系统提示词是有优先级的行为准则它可以设定角色的专业背景、任务目标、输出格式和处理边界少样本示例是给模型看的标准答案两三组示例往往比一大段描述管用上下文管理则是所有工程问题的源头——你到底给模型喂了多少东西什么该保留什么该裁剪。这些概念看起来基础但绝大多数生产事故都出在这几个点上。我的训练方法是每天选一个真实业务场景写一个带系统提示词、少样本示例、输出格式约束的完整Prompt然后自己扮演用户去攻击它——换措辞、加噪点、给边界输入看看它会不会崩。这个方法比看十篇理论文章都管用。2.2 阶段二Agent与工作流单次调用能解决简单任务但真实业务里的复杂任务比如根据用户描述判断问题类型再决定是否调用工单系统单次调用根本扛不住。这时候你要进入第二个阶段把一次调用拆成多轮调用让模型具备思考-行动-观察的循环能力也就是AI Agent的雏形。以我做过的一个工单分诊Agent为例它的工作流是先用分类模型判断工单类型如果属于技术类再调用知识库检索工具把相关文档喂回给模型生成解答如果判断需要升级人工就附带置信度评分并转给人工队列。这中间用到了工具调用function calling、条件分支和结果校验三个关键能力。工具调用让模型不再只是说话还能真正做事。工作流编排是这个阶段的核心。不要上来就追求完全由模型自主规划先在代码里写死流程先做什么、后做什么、哪些步骤并行、哪些步骤串行、哪个节点失败后是重试还是降级。等你把确定性流程跑通了再慢慢把部分决策权交给模型。一句话总结能用代码控制的结构用代码不能控制的部分才交给模型。2.3 阶段三评估与工程化收口到了这个阶段你已经有了能跑的Agent工作流接下来要做的不是继续加功能而是把系统焊死。工程化收口包含四件事评估集建设、回归测试、日志追踪、成本监控。评估集建设是最重要的一步。从真实请求里抽200到500条历史数据人工标注好预期结果作为标准评估集。每次改动Prompt、调整工作流或更换模型都在这个评估集上跑一遍对比通过率和质量分。没有评估集你做的每一次优化都是在赌博。日志追踪和成本监控容易被新手当成上线后再做的事实际上应该在开发阶段就埋好点。每条请求的Prompt内容、模型返回、token消耗、耗时、重试次数都要记录。上线后你会发现很多模型变笨了的报障其实是上下文塞太满、token超预算、或者外部接口超时导致的有日志才能快速定位。3. 核心能力拆解提示、Agent与多AI协作3.1 提示工程的三个关键参数与设计要点先回答一个最常见的问题temperature到底设多少合适不能拍脑袋要看任务性质。判定类任务比如告警分类、内容审核输出必须稳定temperature建议0到0.2之间生成类任务比如文案润色、创意写作可以放到0.7到0.9如果你做的是代码生成建议0.2到0.4太低会机械太高容易编造API。top_p和temperature类似都控制随机性实际使用中我一般固定一个调另一个就够了两个一起调反而不好控制。max_tokens是很多人的噩梦。它只限制输出长度不限制思考长度但模型会用完输出预算才停。如果你要求模型先分析再给结论而max_tokens太小它可能分析到一半就断了。我的习惯是把max_tokens设成预期答案长度的1.5倍以上。少样本示例的设计也有讲究。示例不是越多越好三到五组覆盖典型情况的例子最好。示例要覆盖正常情况、边界情况和错误处理方式这样模型才不至于只学会照猫画虎。另外示例里不要用特殊情况当标准答案比如抽取信息时用了一条包含多个电话号码的记录作示例模型就很容易在后面所有结果里都硬凑出多个电话号码。输出约束一定要做两件事定义输出格式比如必须返回JSON包含name和score两个字段以及定义异常输出时的行为比如如果无法判断请将score置为0并添加reason字段。这能大大减少后续解析报错。3.2 Agent开发的三种常见模式我实践下来Agent开发绕不开三种模式。第一种是规划-执行-反思模式。模型先拆解任务生成步骤清单然后按步骤调用工具执行最后把执行结果拿回来让模型检查一遍看有没有遗漏或错误。典型的例子是自动写周报先收集动作和关键词再起草正文最后检查有没有漏掉重要事项有就补。这个模式的关键是最后一步反思不能省它是质量兜底。第二种是工具调用模式。现在主流大模型都支持function calling你可以定义一系列工具函数比如查询数据库、发送HTTP请求、读写文件模型自己决定要调用哪个函数传入什么参数。注意工具函数最好做到小颗粒、大覆盖——单个函数职责单一组合起来能覆盖多种场景。函数多了也不要慌模型会根据函数描述和参数说明自己选。第三种是多模型协同模式。用一个模型做生成另一个模型做审查或者让不同模型各司其职。这个思路放到后面的多AI协作里详细说在这里先记住一个原则不要指望一个模型把一个复杂任务从头到尾做到满分拆成多步每步用最合适的方式去解决效果会稳得多。3.3 多AI协作的工作流设计很多人听到多AI协作就觉得是多线程调用几个模型一起干活没有那么简单。我做过一个内容生成流水线用三个模型角色协作写手负责生成初稿编辑负责删减和调整语气审校负责检查事实错误。跑通后我发现真正的难点不在让三个模型各写一段而在于它们之间怎么传递信息。我的经验是模型之间的通信一定要用结构化数据不要让下一个角色去读上一轮的自然语言对话。比如写手输出一版带章节标题和要点的JSON编辑直接操作这个JSON而不是把一大段对话历史丢给编辑。这样既能省token又能减少信息在传递过程中的失真。还要设计清晰的失败兜底策略。比如审校发现事实错误次数超过阈值工作流要能自动触发重写分支如果某步连续失败三次要兜底到人工处理而不是无限循环。所有分支都要有日志记录否则你根本不知道是哪一环出了问题。最后提醒一句多AI协作的人效红利是真实的但不适合所有场景。任务能被清晰拆解、各步骤之间依赖较弱时才值得做协作编排。像那种强依赖上下文连贯的创意写作强行拆给多个模型反而会丢掉全局感。4. 实操全记录从0到1搭一个AI应用4.1 需求定义与场景选择在这个部分我不讲理论直接拿一个我最近做的团队知识问答助手当案例把完整的推进过程拆给你看。起步阶段的场景选择有个原则选一个真实存在、频率较高、答案有明确质量标准的任务。我选的场景是新员工在入职前三个月高频提问关于内部工具、流程和规章制度的问题。这类问题量大且重复知识库比较稳定答案正确性可以人工判断非常适合作为第一个AI应用。定义问题时我把用户可能的问题归成四类工具使用类XX系统怎么申请权限、流程制度类报销超过多少需要审批、资源查询类XX项目的负责人是谁、异常情况类登录报错怎么办。针对每个类别我写清楚评估标准回答是否正确、是否有依据、是否给出下一步行动建议。这一步花了一个下午但后来证明它直接决定了我评估集怎么做。4.2 技术选型与模型选择模型选择的判断维度就四个效果、延迟、成本、可控性。对内部知识问答这个场景我不需要最强的模型我需要的是在常见问题上不犯错、能稳定输出引用来源、延迟不超过三秒的模型。于是我的模型选型逻辑变成了先用主力商用模型跑通流程验证效果再把涉及敏感内部数据的部分放在私有化部署的开源模型上。这里插一句很多团队一上来就自研框架、非要本地部署开源模型。除非你有明确的数据合规要求或足够的运维人力否则我建议先用成熟方案快速跑通把精力花在数据准备和评估上。开源模型的优势在可控和成本劣势在部署门槛和真实效果对齐这个账要算清楚。我的技术栈很朴素模型API 向量检索 工作流编排。向量检索负责召回相关知识段落工作流编排负责判断意图-检索-生成-引用检查的串联。没有用特别重的框架因为任务流程明确自己写编排代码不过几十行反而更好排查问题。4.3 迭代式开发实录V1版本是一个单轮Prompt问答把用户问题直接丢给模型模型凭自己的记忆回答。测试结果准确率大概只有六成而且经常给出没有依据的答案。这一步让我明白知识问答不做检索增强光靠模型头脑里的知识根本不可靠。V2版本加入了向量检索先把问题转成向量在知识库中召回最相关的段落拼进Prompt再让模型回答。效果提升很明显准确率到了八成以上因为模型有了参考资料。但新的问题出现了模型偶尔会忽略参考材料自己编答案。于是我加了一道引用检查要求模型在回答中明确标注答案依据来自哪一条参考资料没有依据就不许回答。这一刀切下去幻觉率明显下降。V3版本我把工作流Agent化。当用户问登录报错怎么办这类问题时系统先判断是否需要查询最新状态需要就调用后端接口拉取当前服务状态再结合知识库回答。这就从纯问答变成了具备行动力的助手。V3版本还加了兜底如果检索结果相关性低于阈值直接提示该问题需要人工支持并转接人工。这是整个开发过程中最值得的一步——让系统知道自己不知道比假装知道强得多。版本迭代里最深的体会是不要一次性把功能全部堆上去。每个版本只加一个变量跑一周评估看数据再决定下一步。V1到V3用了三周每周末都花半天做回归测试。虽然节奏不快但每一步都踩得很实后面几乎没有推翻重来的情况。5. 踩坑记录与问题排查技巧5.1 高频问题速查表我在这个项目里踩了不少坑下面这张表几乎覆盖了我遇到过的所有高频问题你可以直接对照排查。问题现象常见根因排查手段规避方案同一问题每次回答不一样temperature偏高 / Prompt表述含混固定输入多次测试观察输出分布判定类任务设置temperature不超过0.2回答看起来合理但实际是幻觉未做检索增强 / 上下文无事实依据检查回答是否能定位到源材料强制无依据不回答 引用标注输出格式偶尔解析失败格式约束不严格 / max_tokens截断抓取原始响应查看截断位置显式声明JSON格式 max_tokens预留余量回答越来越慢或超时上下文塞入过多历史 / 检索结果过多记录每次请求的token输入量限制检索条数与历史轮数做上下文裁剪某个环节突然报错外部接口限流 / 函数参数格式变化看日志里该环节的原始入参出参加超时重试与降级分支函数入参加校验效果变差但没人改代码上游数据源更新 / 检索质量下降对比新旧版本回复检查知识库内容知识库更新后做回归测试加版本号这些坑里最阴险的是最后一个代码一行没改效果却变差了。问题往往出在数据源知识库里新增了几篇质量不高的文档检索系统把它当成高相关度内容召回模型的回答就被带偏了。所以知识库更新必须和代码变更一样纳入版本管理。5.2 排查与调试的实战方法排查AI应用的问题最忌讳的是看着输出猜原因。模型返回的文本只是最后一步真正出问题的往往是前面的检索、上下文拼接或工具调用。所以我的第一个建议是开发的每一步都做好快照日志。请求进来了意图分类结果是什么检索召回哪几条拼进去的Prompt长什么样模型原始返回是什么全部记录。只记录最后回答等于没有日志。第二个方法是做最小复现。用户报障说回答不对你不要直接看那个回答而是把用户输入带入到开发环境里一步一步重放整个工作流。通常到检索命中这一步就能看出问题要么没有命中相关文档要么命中的文档本身就是错的。把问题定位到具体环节修复才有方向。这个习惯帮我省了大量时间。第三个方法是用评估集做回归测试。每次改动后我把评估集跑一遍记录通过率的变化。有一个印象很深的例子我优化了提示词在20条测试样本上效果都很好但跑完整评估集发现有一个分类的通过率反而从90%掉到了75%。原因是我加的示例让模型过度倾向于某一种回答风格闷头调优反而弄巧成拙。没有评估集这个问题根本发现不了。最后再分享一点个人体会从零到一完成一个AI项目最大的收获不是会用大模型API了而是理解了工程化三个字的分量。模型能力再强没有检索、评估、监控、兜底这套工程体系撑着也只是一个好看的玩具。每次踩坑回头复盘绝大多数问题都不是模型不够聪明而是我没有把约束和边界交代清楚。如果你正在犹豫要不要入局AI工程我的建议很直接别囤课别等完整方法论找一个真实的、小到一两天能做完的任务直接开干。先让模型跑通一个最简陋的流程再一步步加约束、加评估、加兜底。你会在错误里把直觉磨出来这比看任何文章都管用。
返回列表