ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从零开发英语情景教学Agent:架构、Prompt与工程实践

从零开发英语情景教学Agent:架构、Prompt与工程实践 能不能做个AI既能跟我用英语聊天又不像现在这些陪聊机器人一样只会接话茬?这是我在做教育产品调研时一个高中生当着我面说的话。当时市面上确实有不少对话式英语学习产品但基本都是问答器——你输入一句英文它夸你一句或者改个错没有情景没有角色更没有人逼着你把一句话说到位。我琢磨了一段时间决定自己动手从零开发一个英语情景教学Agent。这个Agent不是普通的聊天机器人。它内置了机场入境、餐厅点菜、商务谈判、诊所看病这类真实场景每个场景里有一个具体角色(海关官员、服务员、客户)明确的教学目标还有一整套纠错、评分、难度自适应的机制。你进入场景后不是在和AI聊天而是在完成一次情景任务。这篇文章会把我的完整开发过程、架构设计思路、Prompt工程经验、工程化落地时踩过的坑全部写出来给想入坑Agent开发的工程师一个可直接参考的完整样本也顺便给教育方向的从业者展示一下一个真正能用的教学Agent到底应该怎么搭建。1. 为什么选英语情景教学作为第一个Agent项目1.1 英语学习场景里的真实缺口先说痛点。传统的英语口语训练方式基本三条路:背单词、跟读、找真人陪练。背单词的问题在于缺乏语境你记住了book a room这个短语但真正到了酒店前台大脑还是空白。跟读软件只能判断你读得像不像没办法跟你对话。真人陪练效果最好但价格贵上课时间固定还经常陷入两个人都不知道聊什么的尴尬沉默。通用对话AI出来之后很多人尝试用它练口语但我实际测试下来发现三个核心问题。第一没有教学目标。你和ChatGPT对话它永远是一个配合者你说什么它接什么但它不会主动引导你练习某个句型不会因为你连续三次用错时态就专门给你出针对性练习。第二不会纠错。对话流畅进行但它不会告诉你刚才那句的语法问题即使你申请让它纠错它也是事后诸葛亮打断实际交流节奏。第三没有角色代入感。你的大脑知道对面是一个语言模型不是在机场、不是在酒店这种知道是假的的感觉会让练习效果大打折扣。1.2 为什么这个场景天然适合Agent我一开始也考虑过用传统开发方式做这个产品——写状态机、画流程图、枚举所有对话分支。但很快就放弃了因为情景对话的分支实在太庞大了。一个餐厅点菜场景用户可能说我要一个全熟的牛排可能说你们有什么推荐可能说我海鲜过敏甚至还可能突然问洗手间在哪。用传统状态机你需要为每个分支写处理逻辑最后代码里塞满了if else维护成本极高。Agent的规划—行动—反思循环本质上和教学里的示范—练习—反馈是高度同构的。Agent可以理解当前情景、决定下一步说什么、观察用户的反应、判断教学目标是否达成。它不需要穷举所有分支只需要一个足够清晰的剧本框架让LLM在这个框架内自由发挥。这才是教学场景真正需要的技术形态——既要有结构化的教学目标又要有开放式的对话自由。1.3 项目目标与技术边界定义动手之前我给这个项目定了非常明确的MVP边界避免一头扎进去出不来。功能上只做四件事:情景启动、角色扮演、自由对话、纠错反馈。难度自适应和学习报告放到第二个迭代再做。明确不做的有三件事:不做精确发音诊断(发音问题留给专门的语音评测工具)不做知识图谱(词汇语法体系太庞大)不做多人实时互动(技术成本过高)。技术目标上我给自己定了三条硬指标:单次对话延迟在3秒以内单次会话的LLM成本控制在0.5元以内用户的学习进度可以跨会话持久化。这三条指标在后面技术选型和架构设计时一直在帮我做决策判断。我建议所有准备做Agent项目的开发者动手前先花半天时间把这种边界和指标写清楚它们会在你纠结技术方案的时候给你一个明确的参考答案。2. Agent的核心架构:从对话链路到系统设计2.1 整体架构与关键模块整个系统分四层:前端交互层、后端服务层、Agent编排层、外部能力层。前端我用了一个简单的Web页面支持文字输入和语音输入(浏览器直接录音);后端是一个Python FastAPI服务负责鉴权、会话管理和数据持久化;Agent编排层是整个系统的大脑用了LangGraph来实现;外部能力层包括LLM接口、词典查询工具、语法检查工具、语音识别和语音合成服务。Agent编排层内部是一个图结构核心节点包括:剧情初始化节点、用户输入处理节点、Agent决策节点、纠错判定节点、剧情推进节点。每个节点都是一个独立的处理函数节点之间通过状态对象传递数据。之所以用图而不是线性链路是因为对话流程存在明显的分支——用户说得很好就走推进节点说得不好就走纠错节点完全跑题了还要走拉回节点。模块职责关键实现情景管理加载剧本文档初始化角色与任务基于JSON剧本模板渲染对话引擎Agent决策与话术生成LLM ReAct循环评估模块用户语言输出检测与评分独立小模型 规则引擎记忆服务会话内上下文与跨会话用户画像Redis PostgreSQL语音模块语音输入输出转换ASR TTS服务封装这套结构的好处是每个模块都能独立替换。比如评估模块你可以用GPT-4来评分也可以换成本地部署的小模型甚至先用简单的正则和规则顶一段时间。我不建议一开始就把所有能力都做得很重先把链路跑通再逐步迭代每个节点的质量。2.2 LLM选型与Prompt设计思路LLM选型上我做了不少对比测试。结论是一个万能大模型撑不起一个教学系统。原因很简单教学场景需要同时具备三种能力——高质量的角色扮演、准确的语言纠错、稳定的教学目标控制。我用同一个模型同时承担这三项任务时总是会顾此失彼:角色感强了纠错变弱;纠错强了对话变得像考试审问。最终我采用了主模型小模型的分工方案。主模型负责对话生成选的是Claude或者GPT-4o这类角色扮演能力强的模型Prompt里明确写好角色人设和教学目标约束;辅助模型选的是GPT-4o-mini或者国内的GLM-4-Flash这类便宜快速的模型单独跑一个评估Prompt对用户的每句话做语法检查、词汇水平分析和教学目标完成度判断。主模型的Prompt模板我沉淀成这样一段结构你是【角色名称】正在【场景描述】中与用户对话。 你的教学目标引导对方自然运用【目标句型/词汇】。 当前剧情阶段【阶段描述】。 对话历史 ... 你刚才观察到对方说了一句英文... 请用【角色身份】的方式回应。要求 1. 保持角色不要跳出情景解释语法 2. 如果对方表达有误先用自然方式示范正确表达不打断对话 3. 如果对方翻译成中文求助你只能用英文回应配合肢体和情景提示。这个Prompt的关键在于把教学目标和角色身份同时注入。刚开始我的Prompt只写了角色设定结果Agent完全沉浸在角色里聊得很开心但教学任务完全没达成。加入教学目标之后Agent才真正像一个有好剧本的即兴演员——既有自由度又不会跑偏。2.3 情景剧本的结构化表示情景剧本身是整个系统里我最重视的部分。一开始我尝试把整个场景描述直接塞进Prompt写了一大段散文结果LLM的表现非常不稳定——同一个场景跑三次三次的角色语气、剧情走向都不一样。后来我把剧本改成了严格的JSON结构化格式稳定性立刻大幅提升。一个剧本的基本结构如下{ scene_id: airport_immigration, title: 机场入境盘查, role: { name: Immigration Officer, personality: 礼貌但公事公办, mannerism: 喜欢看着对方眼睛说话 }, objectives: [ {skill: simple_past, target: 让用户使用一般过去时描述旅行经历}, {skill: answer_questions, target: 练习回答海关常规问题} ], key_phrases: [What is the purpose of your visit?, How long will you stay?], difficulty_level: B1, stages: [ {id: 1, step: greeting, description: 开场问好出示护照}, {id: 2, step: questions, description: 询问行程、住宿、目的}, {id: 3, step: decision, description: 通过/进一步问询} ], fallback: 如果用户完全无法沟通Officer需要放慢语速使用简单词汇坚持英文询问 }为什么要这样设计因为剧本其实定义了Agent行动的剧情轨道。角色、目标、阶段都在JSON里明确写好了LLM只需要在这个轨道内做即兴发挥。这种方式大大降低了幻觉风险——Agent不会突然告诉你它是OpenAI开发的AI助手不会从海关官员跳变成英语老师也不会在一个入境场景里突然聊起美食。结构化让它的自由度被关在了一间合适大小的房间里。2.4 多轮对话的状态管理多轮对话的状态管理是Agent项目里最容易出错的地方。很多新手把整个历史对话全部塞给LLM前几轮没问题但到了第20轮上下文越来越长不仅成本飙升模型还会遗忘早期的剧情任务——它可能已经忘了今天的目标是练习一般过去时。我的方案是维护一个明确的DialogueState对象里面包含四个部分:当前场景ID、当前剧情阶段、教学目标完成进度、上下文滚动摘要。每次对话前系统先把DialogueState序列化成一段简短的状态描述与最近十轮对话一起拼成Prompt给LLM。十轮之前的内容不再原文输入而是用每次对话后的摘要节点生成一段压缩摘要。这里有个很重要的细节:摘要不能只在对话末尾生成而是每3-5轮就做一次。我测试过只在最后做摘要的做法中间如果用户已经说了很多关键信息中途模型就会开始遗忘因为它根本看不到早期的对话内容。摘要节点我用的是一次独立的LLM调用Prompt非常简单——把以下对话压缩成包含关键信息的摘要保留用户的语法错误示例和Agent的纠正话术这样长期信息不会丢短期信息也完整。3. 情景模拟的关键实现:角色扮演与动态纠错3.1 角色系统:让Agent演起来而不是答起来角色系统的核心难点在于你需要的不是一个知道自己是服务员的回答机器而是一个从服务员的视角思考问题的互动演员。两者差别很大。前者只是对话中添加了一句你是一名服务员后者会让Agent真的去理解服务员的处境——手里有菜单、后面有别的客人、用户需要推荐但用户的口音很难懂。我在角色Prompt里除了基础人设还加入了一层内部思考机制。做法是在Prompt里允许Agent生成一个角色默认的思维过程再输出对用户的话术。你正在扮演一位在忙碌餐厅中服务的服务员。用户是一位你需要服务好的顾客。 在给出回应前先快速思考顾客说了什么他/她的需求是什么 你手里有哪些信息可以回应 最后用服务员的语气直接给出英文回应。加入这一层之后Agent的输出质量提升非常明显。它不再会问出请问你是否需要帮助这种生硬的客服话术而是会自然地接话。更关键是当用户说出语法错误较多的长句时Agent会先通过思考环节翻译出用户想表达的真实意思再做回应这让后续的纠错环节有了准确的基础。关于防止出戏我还有一条硬性约束:如果用户直接用中文提问Agent绝对不能用中文回答只能通过英文配合困惑表情和合理猜测来回应。前期我试过允许中英夹杂结果Agent越来越懒一遇到复杂表达就直接切中文用户也顺势切换成中文模式口语练习彻底泡汤。除非用户连续三次请求解释规则否则禁止中文出戏。3.2 实时纠错与评分机制纠错是教学Agent的灵魂但它也是最容易做崩的功能。我最初直接把请纠正用户语法错误写在主对话Prompt里结果Agent变成了一个强迫症老师——用户每说半句话它就打断纠正对话体验支离破碎。整改之后我把纠错做成了一个独立的后置评估流程不再让对话模型兼任纠错员。用户的每句英文会同时发给两个地方:主对话模型用于生成情景回应评估模型用于产出诊断报告。诊断报告包含语法错误列表、词汇水平预估、教学目标命中情况。Agent是否当场纠正由策略层决定——如果用户刚开口还没说完绝不允许打断Agent会先把整句话听完。纠错强度分三档:低干扰:不影响理解的时态小错不打断Agent只在回话中自然示范正确表达。中干扰:反复出现的同类错误Agent在用户说完后说还有一个小细节示范正确型让用户复述一遍。高干扰:词汇完全用错导致意思无法理解Agent用情景内的方式请求澄清比如Do you mean...?帮助用户重新组织语言。评分机制上我没有用复杂的NLU指标因为LLM本身就能给出不错的维度评分。我用了一个轻量的评分Prompt让评估小模型从流利度(1-5)、准确度(1-5)、词汇复杂度(1-5)、目标完成度(1-5)四个维度打分每次会话结束生成一个综合得分。流利度看句子的完整度和停顿表现准确度看语法和用词错误数量词汇复杂度看用词是否超出基础词汇表目标完成度看是否用上了目标句型。最后综合得分加权为:流利30% 准确30% 词汇20% 完成度20%。这套评分不搞复杂算法胜在稳定和快速每次评估只有一次小模型调用成本大约千分之二美元。3.3 语音输入输出集成口语学习场景肯定绕不开语音。我把语音模块拆成两个独立环节:ASR负责把用户口语转写成英文文本TTS负责把Agent回复朗读出来。ASR我选了Whisper的API因为它对带口音和非母语者的英文识别效果明显好于国内大部分通用语音识别服务。TTS选了Azure的英文语音音色自然度足够。整个语音链路的延迟预算我控制在2.5秒左右:录音停止后ASR大约0.3-0.8秒返回文本LLM生成大约1-1.5秒TTS合成大约0.5秒整体体验基本可接受。为了减少延迟录音使用了按停顿自动断句的策略一句话说完停顿超过600毫秒就自动结束录音避免用户等太久。语音交互中有一个最常见的坑:ASR转写错误会影响Agent理解。比如用户说Where can I get a cab?如果ASR听成了capeAgent可能就懵了。我的处理方案是ASR文本不直接进入对话状态先经过一个轻量的文本归一化模块把明显的同音词错误和标点问题修正。归一化规则来自日常测试积累的词库配合评估小模型做一次结合上下文的语义修复让ASR文本尽量忠于原意再交给对话引擎。3.4 难度自适应与学习路径第二迭代我加入了难度自适应。所有剧本按CEFR等级分为A2(基础)、B1(中级)、B2(中高级)三档。系统根据用户历史对话的正确率、词汇水平评分和纠错率维护一个用户的难度等级。难度调整有三条硬规则:评估得分稳定在4分以上且纠错少于每次2次连续3个场景难度升一档。评估得分低于2.5分或用户主动表达太难了难度降一档。生词率超过20%时当前场景自动暂停推进插入复习环节。具体到单个剧本内部我会把目标句型拆成递进的三个阶梯。以机场入境为例:第一阶梯只需要回答Yes/No加简单短语第二阶梯要求使用完整句子第三阶梯要求使用一般过去时描述完整的旅行经历。阶梯的选择不是死板的而是根据用户在开场前两轮的输出质量动态决定。如果用户一开始就能完整说三句以上直接跳到第三阶梯。这条自适应路径最终会沉淀成一份用户画像存在长期记忆里。下次用户再来学习开场第一个场景就会复习上次暴露出来的薄弱点比如上次时态错了三次这次的餐厅场景里服务员会恰好问到关于过去经历的问题。4. 工程化落地:Memory、Tools与Agent框架的选择4.1 框架选型:从裸调API到LangGraph我一开始没有直接用框架而是裸调LLM API每个节点手动写函数、手动管理上下文。整个流程用两三天就跑通了但改起来非常痛苦——每加一个功能就要在对话循环里塞一段逻辑很快变得不可维护。后来我评估了主流Agent框架最终选了LangGraph。原因有三条:第一它的核心抽象是图节点之间可以任意跳转和条件分支完美对应情景剧本的阶段推进第二它内置了状态管理机制可以在不污染Prompt的前提下持有一个全局状态对象第三它支持节点的持久化和断点恢复方便做对话的审计和回放。如果你不想引入LangGraph用Python手写一个轻量状态机也完全可行。我会建议先自己动手写一次裸版本体验一下没有编排管理时的痛点再切到框架你才能真正理解框架解决了什么问题。直接上框架的后果是:出了bug不知道是框架行为还是你的逻辑问题。对于初次做Agent的人这个先裸后框架的顺序学习效率是最高的。4.2 记忆系统的两级设计记忆系统我分两级。短期记忆就是当前会话的上下文窗口用滑动窗口管理保留最近10轮原文外加一个滚动摘要。长期记忆是跨会话的用户画像存Redis和PostgreSQL结构上是一个用户档案表加一个错误记录表。错误记录表是长期记忆的核心资产。每次评估节点发现用户的语言错误就写入一条记录包含错误原文、错误类型、正确形式、出现的场景和时间。跨会话的新场景开始时系统会查询该用户最近二十条错误记录把最常见的前三类错误生成一段复习提示注入到新剧本的Prompt里。这个功能上线后效果非常显著——很多用户反馈这个AI怎么知道我之前老是说错时态实际上就是长期记忆在起作用。长期记忆的写入需要注意去重和衰减。同一类错误不能重复写入否则数据会变成垃圾。我加了按错误类型分组的逻辑同类型的错误只更新最近发生时间和次数不再新增记录。超过30天没有复现的错误在画像中的权重会衰减避免旧的薄弱点挤掉当前更紧迫的问题。4.3 Tools扩展:词典、语法检查与进度上报Tools设计上我刻意保持克制。LangGraph里注册了三个工具:词典查询、语法详解、进度上报。词典工具在用户明确询问单词意思时触发返回带音标、例句和同义词的词典释义。语法详单在用户反复犯同一类错误时触发给出一段针对性的语法规则解释。进度上报工具会在每轮评估得分落库时自动调用把得分、错误记录和学习时长同步到用户档案。很多开发者喜欢把一堆工具塞给Agent觉得工具越多越强大。我的体会正好相反工具越多Agent的决策成本越高它还经常会用错工具——查语法的时候调词典用户明明在练口语却突然上报进度。我的原则是每个工具必须有明确的触发条件、明确的输入输出格式并且只在小部分场景中出现频次高。工具触发条件输出格式成本词典查询用户询问词义或发音JSON: 单词音标2个例句0.3元/次语法详解同类型错误重复3次以上JSON: 规则1个例句1个仿写题0.5元/次进度上报每次评估节点执行后JSON: 得分错误时长本地执行词典和语法工具我并没有直接用现成的API而是让LLM从知识库中获取内容再封装成结构。这样的好处是输出格式可控坏处是偶尔会有幻觉所以我在Prompt里明确要求不确定的单词不要编只要返回unknown。从实际运营效果看这类偶发幻觉对教学流程的负面影响不大可以接受。4.4 并发与成本控制这个项目上线后我遇到了热词里最戳心的问题——AI Agent怎么扛并发。最开始服务只有一个后台进程每个用户请求是串行的。用户一多请求队列排队把延迟拉到了10秒以上。我的优化分三步:第一步把LLM调用全部改成异步并发同一个会话内部并行处理主对话请求和评估请求。第二步所有LLM请求加了缓存层——相同剧本的剧情初始化内容、常见错误的标准纠错话术都直接读缓存不再重复调用模型。第三步写了一个简单的模型降级策略:评估请求优先用最便宜的模型主对话请求在晚高峰排队严重时自动从高端模型降级到性价比模型保证对话基本可用只是角色表现力略微下降。成本控制上我做了精确测算。一次短对话(约200个词的用户输入加Agent输出)的主对话调用大约消耗1500个token折合人民币0.07元左右评估调用消耗600个token折合0.01元TTS和ASR加起来约0.05元。综合计算一个用户每天练30分钟大约进行40-50轮对话总成本约3-5元。如果再叠加缓存优化用户第二天开始的复练成本能降到一半以下。我算过一笔账如果做到月付费29元的定价只要控制用户每天的活跃会话数在一个合理区间成本结构是可承受的。这也是为什么我一直在强调——教育类Agent必须做成本控制否则产品越火亏得越多。5. 实测效果与调优记录:那些文档里不会写的坑5.1 评测方法:怎么判断这个Agent教得好不好项目跑通之后我意识到一个比开发更棘手的问题:怎么证明这个Agent教得好对话能接通不算好角色会演不算好必须有一套可复现的评测方法。我建了一个评估集包含10个核心场景每个场景覆盖3种用户水平(高分学员、中等学员、低分学员)共30条测试对话脚本。每次改动Prompt或架构都要跑一遍评估集请5名英语老师按三个维度打分:角色一致性(1-5)、教学目标达成度(1-5)、纠错准确度(1-5)。老师们的打分结果取平均与上一版本对比分数下降超过0.3的版本直接回滚。这套评测流程非常笨重但是极其有效。至少有两次我自以为做出了很好的优化跑到评测集才发现角色一致性反而下降了——一次是我加了太多纠错规则Agent变得像审问官一次是难度自适应逻辑改得太激进低分用户频繁被打断。没有这套评测集我根本发现不了这些问题。除了人工评测我还做了自动化回归:用脚本模拟固定用户输入跑20轮对话检查Agent的所有输出是否满足硬性约束(不出现中文、不跳出角色提示词、不直接翻译用户的中文输入)。自动化回归加人工评测双轨并行这个Agent的质量才真正稳定下来。5.2 踩坑记录与规避建议第一个大坑是角色越界。早期Agent会在对话里突然切换成语法老师模式说一句你的句子有语法错误让我解释一下角色瞬间崩塌。根因是Prompt里同时要求了保持角色和纠正错误模型无所适从。解决办法就是前面提到的——把纠错拆到后置流程对话层永远不直接解释语法。第二个大坑是纠正节奏控制。我过度追求纠错覆盖率导致每句话后面都跟着一句提醒用户反馈说像在被老师盯着一举一动。后来我做了聚合反馈机制:只在会话中途和会话结束时各做一次集中纠错把前三类最重要的错误一次性讲清楚而不是逐句打断。这样既保证了纠错功能又保住了对话的流畅性。第三个大坑是剧本分支的失效。初期剧本写了非常多分支希望覆盖所有可能性比如用户不停地问与剧情无关的问题这种分支也写了处理。结果LLM在大Prompt空间里反而迷失了输出质量下降。我最终把剧本分支压缩到了最少三档:进展顺利、需要帮助、完全跑题。跑题情况由Agent用情景内的方式把对话拉回来不再设置复杂的特殊分支逻辑。第四个大坑是用户输入中文或乱打字。用户在手机端语音识别偶尔会翻车或者不好意思多说干脆打中文。早期Agent会跟着切中文整个练习报废。我加了两道防线:第一道输入归一化层检测到中文比例超过30%自动判断为求助状态触发阶梯式的英文提示和情景暗示第二道如果连续三轮用户坚持中文Agent会允许用一次中文解释关键规则但说完立刻回到英文场景。实测效果是大部分用户会在两轮内回到英文因为Agent的困惑表情和反复英文询问给了足够的压力。第五个大坑比较隐晦——ASR转写错误污染长期记忆。用户的错误记录里混入了ASR转写造成的假错误长期看来会误判用户的薄弱点。比如用户明明说对了ASR转写错了导致评估模型判定语法错误并写入档案用户画像被带偏。我的修正方案是:评估模型同时接收ASR原文和归一化后的文本如果两者差异较大标记该条评估为低置信度不写入长期记忆只用于当轮反馈。5.3 后续扩展方向与多Agent协作这个项目目前已经跑通了从注册到学习的完整闭环下一步我计划引入多Agent协作架构。目前的单Agent设计有一个天花板——教学、评估、进度管理全在一个Agent里每加一个功能就要重新调Prompt会互相干扰。我的规划是拆成三个Agent:主教学Agent负责情景对话;评估Agent独立运行专门做语言诊断;督学Agent负责长期学习规划和报告生成定期汇总用户数据并推送个性化练习任务。这种多Agent模式的好处是每个Agent的职责单一、Prompt稳定、输出质量可控。坏处自然是上下文切换和成本增加——评估Agent需要接收主对话的完整记录。我预计会用更小的模型来跑评估和督学类Agent主教学Agent继续用最高质量的模型总成本增加控制在20%以内但教学效果会有明显提升。另一个扩展方向是接入RAG。把分级教材、常用口语素材、历年考试真题语料做成向量知识库让Agent在生成情景时能引用真实的语料素材而不是完全靠模型记忆。这样既能降低幻觉又能让教学内容和官方教材对齐。目前我还在整理语料大概完成到一半等上线了再发一篇测试数据。在实测中我发现一个很值得分享的现象:用户对教学感的感知很大程度取决于Agent纠错时的措辞。同样指出一个错误You should say went, not go和Sorry, did you mean went?前者的对话中断感明显更强后者让用户感觉是在自然交流中被带了一下。这个经验教训也促使我在所有Agent输出里加入了一条硬性要求:纠错话术必须藏在情景对话里除非用户主动要求否则不使用直接的纠错句式。最后再分享一个小技巧:Air这类教学Agent的开发最忌讳上来就做功能堆叠。我初期写代码时既想加翻译又想加词汇测试还想做发音评估结果主对话质量一直提不上来。后来砍到只剩对话纠错两个核心功能质量才突飞猛进。Agent项目的特点是一个功能做到85分比五个功能都做到60分更有价值因为用户感知到的是整体体验而不是功能数量。整个开发过程下来最大的感受是Agent开发和传统软件开发的心智模型完全不同。传统开发是写逻辑把所有分支考虑清楚代码等于你思考的固化Agent开发是写约束和引导你没法控制模型生成什么但可以通过结构化剧本、Prompt约束、后置评估这三层设计让模型的自由度始终在一个合理空间内。想清楚这一点很多开发中的纠结都会迎刃而解。
返回列表