Agent的能力边界取决于工具库的设计。这篇从"功能目录设计"的角度梳理——哪些功能适合Agent自动执行、哪些需要人工确认、哪些不该交给Agent。

一、读取类功能——Agent自由调用

读取类功能不改动业务数据,风险为零,适合Agent全自动调用。常用读取工具:查订单状态、查物流进度、查产品库存、查用户历史订单、查退款进度。

这类功能的设计要点是"参数自动提取"——用户说"帮我看看那个订单",Agent要从上下文判断"那个订单"指的是什么。最近聊到的订单号优先匹配,没有就主动问。

二、操作类功能——带确认的执行

操作类功能改动业务数据,有风险但可逆。常用操作工具:改收货地址、取消订单、申请退款、修改备注。这类功能必须带二次确认——Agent先展示操作计划("将订单DD20240901的地址改为XXX,确认?"),用户回复确认后执行。

操作类功能的确认文案要结构化展示——改了什么、改成什么、影响范围,让用户一眼看懂要执行什么操作。

三、流程类功能——Agent编排多步

流程类功能涉及多个步骤和多个系统。典型场景:售后全流程(收集问题描述→拍照取证→关联订单→创建工单→通知客服)。Agent不只是调一个工具,而是编排多个工具完成完整流程。

流程类功能的设计要点是"步骤回溯"——用户在流程中间退出后回来,Agent能从上次停的步骤继续,不需要从头重来。

三类功能对照

类型

风险等级

确认机制

典型功能

读取类

无需确认

查订单/查物流

操作类

二次确认

改地址/取消单

流程类

中高

分步确认

售后全流程

功能目录实现

TOOL_CATALOG = {
    # 读取类:自由调用
    "query_order": {
        "type": "read", "confirm": False,
        "func": lambda p: erp.get_order(p["order_no"]),
        "desc": "查询订单状态和物流信息"
    },
    "check_stock": {
        "type": "read", "confirm": False,
        "func": lambda p: erp.get_stock(p["sku"]),
        "desc": "查询产品库存"
    },
    # 操作类:带确认
    "update_address": {
        "type": "write", "confirm": True,
        "func": lambda p: erp.update_address(
            p["order_no"], p["address"]),
        "desc": "修改订单收货地址",
        "display": lambda p: f"订单{p['order_no']}地址改为{p['address']}"
    },
    "cancel_order": {
        "type": "write", "confirm": True,
        "func": lambda p: erp.cancel(p["order_no"]),
        "desc": "取消订单",
        "display": lambda p: f"取消订单{p['order_no']}"
    },
    # 流程类:分步编排
    "after_sale_flow": {
        "type": "workflow", "steps": [
            "collect_description",
            "collect_photo",
            "link_order",
            "create_ticket",
            "notify_agent"
        ]
    }
}

def execute_tool(name, params, wxid):
    tool = TOOL_CATALOG[name]
    if tool["type"] == "read":
        return tool["func"](params)
    if tool["type"] == "write":
        display = tool["display"](params)
        sendText(WID, wxid, f"确认操作:{display}\n回复'确认'执行")
        db.save("pending_confirm", {"wxid": wxid,
            "tool": name, "params": params})
        return None  # 等确认
    if tool["type"] == "workflow":
        return run_workflow(tool["steps"], wxid, params)

落地建议

功能目录按风险从低到高逐步开放:读取类先上(验证工具选择准确率),操作类第二(验证确认流程),流程类最后(需要状态机支持)。每类功能上线后跟踪"准确率"和"用户确认通过率"——准确率低于80%或确认通过率低于60%说明功能设计需要调整。接口能力参考 Eyun 开发文档

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐