Skip to content
🔗 分享本题
查看我的学习进度 →

项目经验模块 Q3 教学图:完整讲述 AI Agent 项目

🧠 图解记忆: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/54.6/5

关键成果:

  • 日均自动处理390个工单(总500个)
  • 人工客服只处理110个复杂问题
  • 夜间无人值守,24小时服务"

面试追问应对:

Q: "Agent出错怎么办?"

"3层防护:

  1. 意图识别层: 提前分类,简单问题直接返回,不走Agent
  2. 迭代限制层: 最多5次工具调用,超过转人工
  3. 异常捕获层: 工具调用失败重试3次,失败则转人工

示例表达(仅在能用本人经历或可复现实验佐证时使用): 实际上线后,Agent失败率<3%,都能优雅降级到人工。"

Q: "如何评估Agent质量?"

"4个维度:

  1. 自动化率: 成功独立解决的比例 (78%)
  2. 准确率: 人工抽查100条,答案正确的比例 (92%)
  3. 用户满意度: 对话结束后评分 (4.6/5)
  4. 工具调用效率: 平均调用次数 (1.8次,目标<3)

每周生成评估报告,发现问题及时调整Prompt。"

📚 参考:STAR 法则(Wikipedia:Situation, Task, Action, Result)