美团正式发布全场景 AI Agent 产品 CatPaw。比“发布”本身更值得关注的是其内部落地规模:累计覆盖 9 万名员工、搭建 3 万个 Agent,并已在多个真实业务场景中完成验证。这组数据说明,AI Agent 正在从少数人的对话工具,转向可批量创建、运行和治理的企业生产力基础设施。
规模化落地,难点不只是接入大模型
个人使用 AI 时,一个提示词加一个模型接口通常就能解决问题。但当使用范围扩展到数万名员工,工程重点会迅速改变。
| 层次 | 个人提效关注点 | 企业智能化关注点 |
|---|---|---|
| 输入 | 提示词是否好用 | 数据来源、身份和权限是否明确 |
| 执行 | 能否生成满意答案 | 能否调用业务工具并稳定完成任务 |
| 输出 | 内容是否可读 | 结果能否审计、复核和追责 |
| 成本 | 单次调用是否划算 | 并发、额度、模型路由和整体预算 |
| 维护 | 用户自行调整 | Agent 的版本、评测、发布和下线 |
因此,“搭建 3 万个 Agent”传递出的关键信号,不只是 Agent 数量多,而是企业需要一套支持低成本创建、重复复用和集中管理的机制。否则,每个 Agent 都会变成独立脚本,最终形成新的技术债务。
来源摘要没有披露 CatPaw 的具体架构、官方 API 或工具协议,因此不能据此推断它采用了哪种模型、编排框架或权限系统。不过,从企业级 Agent 的通用工程需求出发,可以把落地链路拆成四层:
- 任务入口:聊天窗口、办公系统、业务后台或自动触发器。
- Agent 编排:解析意图,选择模型、知识和工具,维护任务状态。
- 业务工具:文档检索、工单、报表、代码仓库及内部服务。
- 治理系统:身份认证、权限校验、审计日志、质量评测和成本控制。
从个人助手走向业务 Agent
一个 Agent 是否真正进入业务,不能只看它能不能回答问题,而要看它能否完成有边界的动作。
个人场景往往从低风险任务开始,例如总结文档、整理会议纪要、生成代码框架。企业场景则可能进一步连接知识库和业务服务,形成“理解请求—获取上下文—调用工具—返回结果”的闭环。
可以用三个等级判断 Agent 的成熟度:
- 建议型:只生成文本,由员工自行执行后续操作。
- 协作型:读取授权数据,生成结构化结果,但关键动作需要人工确认。
- 执行型:在明确权限和规则下调用业务系统,并记录完整审计信息。
风险也随等级上升。一个能写退款说明的 Agent,与一个能直接发起退款的 Agent,权限设计不能相同。企业部署时应优先让高风险动作经过人工确认,并对工具参数进行服务端校验,而不是相信模型输出天然正确。
可以这样实践:搭建一个带权限和审计的最小 Agent
下面是一个可直接运行的 Python 示例,用来演示企业 Agent 的最小闭环:根据请求选择工具、检查用户权限、执行操作,并把结果写入审计日志。
说明:这不是 CatPaw 官方 SDK,也不代表 CatPaw 的内部实现。 它是一个基于公开摘要抽象出的最小工程示例,使用 Python 标准库,不需要安装依赖。
将以下内容保存为 agent_demo.py:
from __future__ import annotations
import json
import sys
import time
from pathlib import Path
AUDIT_FILE = Path("agent_audit.jsonl")
# 实际项目中应从统一身份与权限系统读取,不能硬编码在客户端。
USER_PERMISSIONS = {
"alice": {"search_docs", "draft_reply"},
"bob": {"search_docs"},
}
def search_docs(request: str) -> dict:
return {
"tool": "search_docs",
"items": [
{"title": "退款处理规范", "snippet": "高风险退款必须由负责人复核。"},
{"title": "客服回复指南", "snippet": "回复应包含问题摘要和下一步动作。"},
],
"query": request,
}
def draft_reply(request: str) -> dict:
return {
"tool": "draft_reply",
"draft": f"您好,我们已收到您的请求:{request}。相关团队正在核查,请等待进一步确认。",
"requires_human_review": True,
}
TOOLS = {
"search_docs": search_docs,
"draft_reply": draft_reply,
}
def choose_tool(request: str) -> str:
keywords = ("回复", "邮件", "答复", "通知")
return "draft_reply" if any(word in request for word in keywords) else "search_docs"
def write_audit(event: dict) -> None:
event["timestamp"] = int(time.time())
with AUDIT_FILE.open("a", encoding="utf-8") as file:
file.write(json.dumps(event, ensure_ascii=False) + "\n")
def run_agent(user: str, request: str) -> dict:
tool_name = choose_tool(request)
permissions = USER_PERMISSIONS.get(user, set())
if tool_name not in permissions:
result = {
"status": "denied",
"user": user,
"tool": tool_name,
"reason": "用户没有调用该工具的权限",
}
write_audit(result.copy())
return result
try:
output = TOOLS[tool_name](request)
result = {
"status": "success",
"user": user,
"tool": tool_name,
"output": output,
}
except Exception as exc:
result = {
"status": "error",
"user": user,
"tool": tool_name,
"reason": str(exc),
}
write_audit(result.copy())
return result
if __name__ == "__main__":
if len(sys.argv) < 3:
raise SystemExit("用法:python agent_demo.py <用户> <请求>")
response = run_agent(sys.argv[1], " ".join(sys.argv[2:]))
print(json.dumps(response, ensure_ascii=False, indent=2))
运行两个不同权限的请求:
python agent_demo.py alice "请为客户生成一封退款进度回复"
python agent_demo.py bob "请为客户生成一封退款进度回复"
python agent_demo.py bob "查找退款处理规范"
cat agent_audit.jsonl
第一个请求会生成待人工复核的回复;第二个请求会因为 bob 没有 draft_reply 权限而被拒绝;第三个请求则可以正常检索文档。审计文件会保留每次工具选择、执行状态和用户身份。
接入真实大模型时,可以替换 choose_tool(),让模型输出受约束的工具名称和参数,但权限检查仍应保留在模型之外。例如,模型即使生成了 draft_reply 调用,也必须通过服务端权限校验后才能执行。
企业采用时应先建立护栏
CatPaw 在美团内部覆盖 9 万名员工、搭建 3 万个 Agent,说明 Agent 已具备组织级推广的现实基础。但企业不应简单追求 Agent 数量,更应关注它们是否持续产生可验证的业务价值。
落地时可以按以下清单推进:
- 为每个 Agent 指定负责人、目标用户和明确的业务指标。
- 区分只读工具与写操作工具,默认采用最小权限。
- 对退款、发布、删除、付款等高风险动作增加人工确认。
- 记录提示词版本、模型版本、工具参数和执行结果。
- 建立离线测试集,发布前检查正确率、拒答和越权行为。
- 设置调用额度、超时、重试和降级策略,避免成本或故障失控。
- 定期下线低使用率、低质量或无人维护的 Agent。
真正的企业级 AI Agent 平台,不只是让员工“更容易创建机器人”,还要让组织知道这些 Agent 能访问什么、执行了什么、效果如何,以及出现问题时由谁负责。CatPaw 的大规模内部实践提供了一个重要信号:Agent 的竞争正在从模型能力,转向场景、工具和治理能力的综合工程。