第 1.5.2 节:把 Agent 的输入、输出和状态写成契约
Agent 的输入、输出和状态不能只停留在口头约定,还需要落实为字段、校验和失败处理。完成本节后,你应该能够把 Agent 的输入、输出和状态落成字段表、校验规则、错误处理和验收样例。
核心概念
第一个 Agent(智能体)
第一个 Agent(智能体)不是功能最少的聊天框,而是范围最小的任务执行单元。它要能接收目标、读取上下文、生成结构化结果、记录状态,并在边界内停止。
四层解释法:第一个 Agent(智能体)
| 层级 | 解释 |
|---|---|
| 人话解释 | 第一个 Agent 先像一个“客服分诊员”:听懂用户诉求,判断风险,决定下一步。 |
| 项目位置 | 它位于客服入口和工具执行层之间,为第 1.6 章的查订单、查政策、建工单做准备。 |
| 工程动作 | 设计输入字段、输出字段、Prompt(提示词)、Mock(模拟)结果、真实模型调用、状态日志和停止条件。 |
| 面试说法 | 我会先做一个最小 Agent 切片,把不确定的模型输出变成可校验字段,再逐步接入工具和业务系统。 |
最小可用切片
最小可用切片不是随便做个 Demo(演示),而是只保留最关键的业务闭环。本章的切片包含:
- 用户问题进入。
- 构造任务上下文。
- 识别意图、风险和缺失字段。
- 生成下一步动作。
- 校验输出字段。
- 记录状态和日志。
- 失败时降级或转人工。
暂时不包含:
- 真实订单查询。
- 真实工单创建。
- 真实退款审批。
- 多智能体协作。
- 复杂 RAG(检索增强生成)链路。
这些能力会在后续章节逐步补上。
Mock(模拟)模式和 Real Provider(真实模型供应商)模式
Mock(模拟)模式用固定规则返回结果,用来验证流程、字段和界面。Real Provider(真实模型供应商)模式调用真实模型,用来验证实际效果。
两种模式必须遵守同一份输出契约。否则 Mock(模拟)模式通过了,真实模型仍然可能把系统拖坏。
状态和日志
状态记录“任务现在到哪里了”,日志记录“系统为什么这样做”。第一个 Agent 就要记录这些内容,因为面试官和客户都会关心系统是否可追踪。
停止条件
停止条件决定 Agent 什么时候结束本轮处理。本章的停止条件很简单:输出有效、需要用户补充信息、需要转人工、输出校验失败达到上限,或问题超出系统范围。
本章在客服 Agent(智能体)工作台中的位置
| 工作台层级 | 本章做什么 | 第 1.6 章会继续做什么 |
|---|---|---|
| 用户入口 | 接收客服问题和会话信息 | 保持一致。 |
| 意图识别 | 判断问题类型、风险和缺失字段 | 根据识别结果选择工具。 |
| 下一步动作 | 输出 answer、ask_followup、search_knowledge、call_tool、create_ticket、handoff | 把 call_tool 和 create_ticket 接到真实工具。 |
| 状态日志 | 记录 trace_id(追踪编号)、session_id(会话编号)、intent(意图)和风险 | 记录工具调用日志和审批状态。 |
| 失败兜底 | 输出无效时重试、降级或转人工 | 工具失败时继续兜底。 |
本章是第 1.6 章的前置骨架。没有这个骨架,工具调用会变成“模型想调什么就调什么”。
系统流程图
这个流程体现了第一个 Agent 的价值:它不急着完成所有事情,而是稳定决定下一步。
读图重点:模型或 Mock 都不能直接驱动业务;只有通过契约校验并留下日志的结果,才会进入下一步动作。