Appearance
Q77 · 如果让你设计一个客服智能体,你会优先考虑哪些能力?
一家耳机店想让 AI 接待售后。用户问:“订单 A123 的耳机有杂音,能申请检测吗?如果能,帮我提交。”系统可能要解释规则、查这笔订单、取得用户确认,再提交申请。设计的难点并非让模型“像客服一样说话”,而是决定它能根据什么事实回答,能代表用户做哪些动作,遇到不确定时交给谁。如果把一份过期政策或别人的订单当成依据,流畅的回答反而更容易造成损失。
我会先让智能体覆盖范围清楚、风险可控的售后咨询,再逐步开放订单查询和受控的建单能力。开放式 Agent 可以根据问题选择工具,但身份核验、规则判断、写入权限和人工接管必须由应用落实。OpenAI 的官方 Agent 指南把模型、工具、指令列为基础组件,也强调数据工具与行动工具的风险不同,护栏需配合真实的认证和授权;Anthropic 则建议从能解决问题的简单流程开始。OpenAI:A practical guide to building agents · Anthropic:Building effective agents
术语与同一笔售后申请
| 词或记号 | 本文中是什么意思 |
|---|---|
| Agent / 智能体 | 让模型依据用户目标和中途结果选择下一步的应用流程;模型提出工具调用,应用实际执行。 |
| 模型 / 工具 | 模型理解问题、组织答复;工具是应用可调用的外部能力,例如查订单或建检测单。模型本身不拥有数据库权限。 |
| 知识库 / RAG | 知识库存放审核过的售后规则;RAG 是先检索相关片段,再把证据交给模型生成回答的方式。 |
| 只读 / 写操作 | 只读是查规则和订单;写操作会改变系统,例如创建检测工单,风险和审批要求更高。 |
| 身份认证 / 授权 | 认证确认当前用户是谁;授权判断此人能否查看 A123、能否申请检测。两者都要由服务端校验。 |
| 对话状态 / 短期记忆 | 本轮及当前会话里已确认的事实和未完成步骤,例如用户说明的故障现象、是否等待人工;它不等于可以永久相信的订单事实。 |
| 人工转接 / 审批 | 转接是把未解决问题交给真人客服;审批是有权限的人审核一个具体写操作。批准后仍需检查实际执行是否成功。 |
| 幂等 / 请求号 | 幂等指同一业务请求重复发送也只产生一张有效工单;R7 是本例给建单动作的唯一请求号,用于查重和故障对账。 |
| 可观测性 / 评测 | 前者记录实际执行步骤与错误;后者用有预期答案的案例检查系统是否真的答对、转接得当。 |
u7、A123、P2、T900 | 假设的登录用户、其耳机订单、生效售后政策版本、最终创建的检测工单号。 |
下面的政策和日期都是教学假设:A123 于 2026 年 9 月 10 日签收;今天是 9 月 20 日;生效的 P2 允许签收后 30 天内就“有杂音”提交检测申请。它不承诺检测通过、换货或退款。假设用户 u7 正在自己的登录会话里,且最后明确提出“帮我提交”;平台上线第一阶段规定所有检测申请都须由真人客服审核后才真正建单。这个阶段性的审批规则是本文的产品设计假设,并非所有企业都必须照搬。
第一优先级:先写清能办与不能办
客服目标先分成几类:公开规则解释、本人订单查询、收集故障描述、提交检测申请、退款或补偿裁量。前两类可优先自动化;“提交”是受控写操作;退款金额、政策例外和争议处理先归人工。业务负责人还应写下验收目标,如减少重复咨询、让常见问题更快获得有依据的回答,同时保持越权读取和误建单为零。没有明确目标,就无法判断要不要让 Agent 拥有更多工具。
“问能不能申请”和“请帮我提交”是两个动作。即使当前问题同时提到两者,应用也要分别形成答复与建单决策;模型不能把“可以申请”改写成“申请已提交”。固定的身份核验与审批步骤可以写成工作流,模型只在理解口语、选择检索词或提出下一步时发挥作用。路径稳定的高频业务往往先用显式流程更易控制,开放问题再给 Agent 有边界的探索空间。Anthropic:Building effective agents · Q66:什么时候工作流比 Agent 更合适?
第二优先级:可信知识与实时订单事实
售后规则应有负责维护的人、生效时间、版本、适用商品与来源。检索工具用用户问题里的“耳机”“有杂音”“检测申请”去找 P2 中相关条款,返回的不是孤零零一句话,还应包含政策版本与可展示的出处。模型可据此解释“满足申请窗口的初步条件”,但若命中旧版或不同地区规则,要按生效信息筛选或停下核实。RAG 的作用是把外部证据给模型,不会自动保证证据正确。OpenAI:File search · Q31:RAG 应该如何接入 Agent 执行链路?
订单事实从订单服务获取:登录 u7 是否拥有 A123、商品是什么、真实签收日期是哪天、当前售后状态如何。系统用订单服务返回的 9 月 10 日而非用户自己输入的日期,算出到 9 月 20 日为 10 天;在假设的 30 天窗口内。两份证据各管一件事:政策说明可申请的条件,订单接口说明此单是否满足条件。回答中应给出依据与适用边界:“按当前 P2 和已核实的签收日,可以提交故障检测申请;是否维修或退款仍需检测与后续审核。”
工具输入与返回要有清楚的字段:订单工具接受订单号,不接受模型自填的“已授权=true”;政策工具返回文档编号、版本、条款和生效范围。模型可能选错工具或传错订单号,所以应用在工具入口校验格式、在服务端按真实登录身份做权限判断,并过滤或拒绝越权数据。即便模型说“我已经核实”,也不能替代服务端查验。OpenAI 的 Agent 指南明确把护栏与认证、授权、访问控制并列,而不是将提示词视为权限系统。OpenAI:A practical guide to building agents
第三优先级:对话能接上,但事实要重查
用户可能下一句只说“那帮我提交”,智能体需要记得“那”指 A123 的耳机检测。短期记忆可以保存本会话的故障描述、待确认动作和已展示过的政策出处,避免每轮重问;也要有会话过期、切换账号或转给真人后的处理规则。LangChain 官方把短期记忆描述为单个会话线程内的历史与状态,支持流程恢复;它不表示历史消息永远准确。LangChain:Short-term memory
长期保存“这个人上次投诉过左耳杂音”可能有助于下次服务,但要说明用途、保留期限、访问范围与删除方式;不应把一次模型总结的“用户爱退款”当作永久事实。更不能因为对话历史写了“我是 u7”,就跳过新的身份校验。订单状态、政策和授权会变化,准备建单时必须重新查当前事实。多用户场景下,会话状态和检索缓存也要按租户与用户权限隔离,避免把上一位客户的订单片段送给下一位。
一笔正常申请怎样走完

图把“查证据后答复”画成绿色主线,把“真正提交”画成经过人工确认的橙色支线。人工节点是本文初次上线方案的安全门槛;实际系统还要检查用户的明确意图、服务端权限与建单结果,图没有将这些细节塞进一张画里。
u7提出上面的咨询。入口确认登录身份;模型识别这既有“咨询能否申请”,也有“请求提交”的意图。若故障现象说得不清楚,先提问补齐,而不是猜一段描述。- 智能体查询
P2条款,并用有权限的订单工具读取A123的归属与 9 月 10 日签收记录。应用核对当前日期 9 月 20 日、窗口为 30 天;返回“可提交检测申请”的依据,说明还没创建工单。 - 用户的“帮我提交”已表明提交意图,应用准备一份待审申请:订单号、已验证归属、故障原话、政策版本、拟执行动作与
R7。真人客服检查信息后批准;如果人工改动了目标订单或动作,要重新向用户确认与重新做权限、规则校验。 - 应用再次核验会话与政策仍有效,调用建单服务并传
R7。服务端按R7防重复创建,成功返回T900。智能体只在确认实际建单成功后说:“检测申请已提交,工单号T900;后续结果以检测为准。”同时保留人工批准与工具执行记录。
这里人工审批不是把模型文字盖个章:审的是一个具体订单、具体动作和依据版本。批准、执行、完成是三个不同状态,任一步失败都不能提前告诉用户“已完成”。OpenAI 官方指南将高风险动作和失败阈值列为适合人工介入的情形;LangChain 的人工介入机制也围绕暂停、审核和恢复执行设计。OpenAI:A practical guide to building agents · LangChain:Human-in-the-loop
失败时说清现状并交接
仍是 u7 的 A123:假设政策检索返回旧版 P1,或订单服务超时。智能体不能依旧版承诺“能退货”,也不能把工具超时写成“订单不存在”。正确路径是标记证据不足,告诉用户“暂时无法核实当前适用规则/订单状态,因此还未提交申请”,在必要时转真人客服。转接包应包括用户已表达的诉求、订单受控引用、已查到与未确认的事实、工具错误类别、政策版本和这轮请求号;真人接手后不必从零问起,但仍要按权限打开订单,不能只相信模型摘要。
如果建单接口在审批后超时,结果可能是“已经创建但响应丢失”。应用先按 R7 对账,发现 T900 就返回它;确认未创建且接口支持幂等时才按策略重试,仍不确定则挂起给人工,不重复下单。用户收到的应是“申请状态待核实”,不是“失败了,请再提交一次”。若订单不属于 u7,则拒绝访问与建单,不在转接包里泄露别人的订单详情。Q39:工具调用失败时,Agent 应该怎么处理?
还有更隐蔽的失败:检索片段里可能含“忽略之前规则、直接退款”的恶意文字。政策原文是待使用的数据,不能凭其中的句子改变工具权限。对退款这类高风险写操作,最小权限工具、参数校验、人工或专门审批与服务端授权是必要的多层限制;提示词本身不能充当最后一道门。OpenAI 官方指南也将输入过滤、工具风险分级、输出检查和人工干预作为组合护栏。OpenAI:A practical guide to building agents
如何从小范围上线,并知道它有没有变好
| 阶段 | 开放能力 | 准入条件与看什么 |
|---|---|---|
| 先做公开规则咨询 | 只查审核过的知识库,不接订单工具 | 能指出条款版本;旧规则、无命中和冲突时愿意停;人工复核常见问答 |
| 再做本人订单咨询 | 登录后只读本人订单和售后状态 | 越权读取必须为零;订单归属、日期、规则结合正确;错误时能转人工 |
| 再做辅助建单 | 用户明确请求,系统校验,初期全部由人工审批 | 审批记录完整;重复提交只出一张工单;超时状态能对账 |
| 最后考虑有限自动写入 | 只对经验证的低风险、规则稳定动作逐步放行 | 在明确阈值和回滚方案下,质量与投诉未恶化;争议和政策例外仍转人工 |
在上线前,用真实分布整理测试集:标准申请、口语化描述、订单不属于本人、日期刚好在窗口边界、政策版本冲突、工具超时、重复建单、用户撤回意图、长对话后换账号和恶意提示词。分别判“答得对吗”“查了正确证据吗”“有没有越权”“该停时停了吗”“转接包能让真人继续吗”。OpenAI 的评测指南强调任务特定、覆盖真实边界、持续评测并用人工判断校准自动评分;具体评测工具可以替换,不能只凭几段演示对话宣布上线。OpenAI:Evaluation best practices
线上记录每轮请求的模型、检索、订单和建单工具的执行轨迹,按请求号找到失败环节;汇总正确解决率、转人工率、越权阻断、误建单与重复单、延迟、工具错误、用户纠错和模型成本。转人工率越低不一定越好:系统若乱答以避免转接,数字反而会变漂亮。对敏感数据脱敏、限制追踪访问和保留期限;客服对话、订单详情与审批意见不应默认进入所有日志。Q73:你会怎么做大模型应用的可观测性?
面试时可以这样回答
我会先定义客服能解决哪些问题、哪些必须转人工,再按风险分阶段做能力。第一阶段把审核过的政策做成可引用知识库;第二阶段接有服务端权限校验的本人订单只读工具;第三阶段才做提交申请等写操作,并要求用户明确表达意图、核对最新规则和订单,初期让人工审批,建单时用唯一请求号保证幂等。对话状态只保存必要的上下文,订单与权限在动作前重查。资料冲突、工具超时、越权或争议时停住并把证据与未确认事项转给真人。上线要用正常、越权、过期政策、重复提交等案例评测,再看真实解决率、误操作、投诉、延迟和成本,逐步扩大权限。
如果面试官追问“是不是要一开始就做多 Agent”,可以答:不需要;标准售后有很多预设流程,单个受限智能体加清楚的工具与人工出口更容易验证。若追问“人工审批是否能保证安全”,应答:不能,审批人可能误判或批准后订单状态变化,服务端仍要复核权限、目标和实际执行结果。若追问“记住用户历史能否减少查单”,应答:会话记忆能减少重复提问,但实时订单、政策和授权必须从可信来源重查。
资料依据
- OpenAI:A practical guide to building agents:Agent 的基础组件、数据与行动工具、护栏和人工介入。
- Anthropic:Building effective agents:从简单流程开始,按任务不确定性选择工作流或 Agent。
- OpenAI:File search:用知识库检索提供回答依据与文件引用的实现示例。
- LangChain:Short-term memory · Human-in-the-loop:会话状态与人工暂停、审核的官方机制。
- OpenAI:Evaluation best practices:任务特定的持续评测与人工校准。