🧠 图解记忆:Agent 项目的价值在于可控地完成任务,而不是展示会思考;点击图片可查看原图。
💡 STAR回答模板
S (Situation):
"我在xx公司开发了一个客服Agent,自动处理用户咨询、订单查询、退换货等问题。原来完全靠人工,客服团队10人,日均处理500个工单,响应慢、成本高。"
T (Task):
"目标是:
- 自动化率>70% (Agent独立解决)
- 准确率>90%
- 平均响应时间<10秒
- 降低人力成本50%"
A (Action):
1. Agent架构设计
用户输入 → 意图识别 → 工具路由 → 工具执行 → 结果整合 → 回复用户
↓
[ReAct循环]
Thought → Action → Observation → 继续或结束2. 工具设计
展开 Python 代码示例(40 行)
python
tools = [
# 工具1: 订单查询
{
"name": "query_order",
"description": "查询用户订单信息,需要订单号",
"parameters": {
"order_id": "string"
},
"function": query_order_from_db
},
# 工具2: 知识库检索
{
"name": "search_faq",
"description": "搜索常见问题FAQ",
"parameters": {
"question": "string"
},
"function": search_rag_system
},
# 工具3: 退货流程
{
"name": "process_refund",
"description": "处理退货申请,需要订单号和原因",
"parameters": {
"order_id": "string",
"reason": "string"
},
"function": create_refund_ticket
},
# 工具4: 转人工
{
"name": "transfer_to_human",
"description": "复杂问题转人工客服",
"parameters": {},
"function": create_human_ticket
}
]3. ReAct实现
python
from langchain.agents import create_react_agent
agent = create_react_agent(
llm=ChatOpenAI(model="qwen3.5-plus"),
tools=tools,
prompt=f"""
你是智能客服Agent。
可用工具:
{tools_description}
工作流程:
1. 理解用户问题
2. 选择合适的工具
3. 根据工具结果继续思考或给出答案
4. 如果3次调用未解决,转人工
格式:
Thought: 我需要...
Action: tool_name
Action Input: {{"param": "value"}}
Observation: tool返回结果
... (重复)
Final Answer: 最终答案
"""
)
# 执行
result = agent.run("我的订单123456什么时候发货?")4. 关键优化
(1) 意图识别提前
python
# 问题: 每次都从ReAct开始,浪费token
# 优化: 先快速分类
def classify_intent(query):
prompt = f"""
分类用户意图(只返回类别):
1. order_query - 订单查询
2. refund - 退换货
3. faq - 常见问题
4. other - 其他
用户: {query}
类别:
"""
intent = llm_fast.generate(prompt, max_tokens=10)
return intent.strip()
# 根据意图直接调工具
intent = classify_intent(query)
if intent == "order_query":
order_id = extract_order_id(query)
result = query_order(order_id)
# 省去ReAct推理,快速返回
# 效果: 延迟 8s → 2s, 成本 -60%(2) 防止死循环
python
class SafeAgent:
def __init__(self, max_iterations=5):
self.max_iterations = max_iterations
def run(self, query):
iteration = 0
while iteration < self.max_iterations:
thought = self.think(query)
action = self.act(thought)
observation = self.execute(action)
# 检查是否完成
if self.is_done(observation):
return observation
iteration += 1
# 超过最大迭代,转人工
return self.transfer_to_human(query)(3) 工具调用失败处理
python
def execute_tool_with_retry(tool, params, max_retries=3):
for attempt in range(max_retries):
try:
result = tool.function(**params)
return {"success": True, "data": result}
except DatabaseTimeout:
if attempt < max_retries - 1:
time.sleep(2 ** attempt) # 指数退避
continue
return {"success": False, "error": "数据库超时"}
except InvalidParameter as e:
# 参数错误不重试,让LLM修正
return {
"success": False,
"error": f"参数错误: {str(e)}",
"suggestion": "请检查并修正参数"
}R (Result):
"项目上线3个月后:
- 自动化率达到78% (超过目标70%)
- 准确率92% (目标90%)
- 平均响应时间3.5秒 (目标<10秒)
- 人力成本降低65% (5个客服缩减到2个)
- 用户满意度4.2/5 → 4.6/5
关键成果:
- 日均自动处理390个工单(总500个)
- 人工客服只处理110个复杂问题
- 夜间无人值守,24小时服务"
面试追问应对:
Q: "Agent出错怎么办?"
"3层防护:
- 意图识别层: 提前分类,简单问题直接返回,不走Agent
- 迭代限制层: 最多5次工具调用,超过转人工
- 异常捕获层: 工具调用失败重试3次,失败则转人工
示例表达(仅在能用本人经历或可复现实验佐证时使用): 实际上线后,Agent失败率<3%,都能优雅降级到人工。"
Q: "如何评估Agent质量?"
"4个维度:
- 自动化率: 成功独立解决的比例 (78%)
- 准确率: 人工抽查100条,答案正确的比例 (92%)
- 用户满意度: 对话结束后评分 (4.6/5)
- 工具调用效率: 平均调用次数 (1.8次,目标<3)
每周生成评估报告,发现问题及时调整Prompt。"
