Claudeforce 拆解:Salesforce 把整个 CRM 塞进 Claude,靠的是一个只有 4 个工具的 MCP Server
2026 年 8 月 27 日,Salesforce 与 Anthropic 联合宣布了一项扩展战略合作:Claudeforce。官方通稿里的定位是"把 Claude 的推理能力,和 Salesforce 可信赖的企业级数据、工作流、业务逻辑、动作与治理体系连接起来"。听起来像是一句典型的合作公关辞令,但把这句话拆开看,它其实精确描述了 2026 年下半年企业级 Agent 落地过程中最核心的技术矛盾:模型的推理能力早已过剩,真正卡脖子的是"怎么把企业内部成千上万个 API、成千上万条权限规则,安全、可控地暴露给一个会自主决策的 Agent"。Claudeforce 给出的答案,是一套值得所有做 Agent 集成的开发者认真读一遍的架构设计。
一、背景:为什么是 Salesforce 和 Anthropic
这次合作的第一动作是 "Salesforce in Claude":一个内置 37 个预制销售技能的 Claude 插件,覆盖会议准备、交易健康度评估(deal health review)、销售管道(pipeline)管理等典型销售场景,目前面向精选试点客户开放,公开 Beta 计划在 2026 年 9 月启动,第三季度起会陆续上线覆盖其他业务职能的新技能包。合作的另外两个组成部分同样值得注意:一是 Claude 已经成为 Agentforce 的 Atlas 推理引擎的默认底座模型,同时支撑 Agentforce Vibes(低代码 Agent 搭建)和 Agentforce Coworker;二是 Claude 已成为 Slack 内置 Slackbot 的默认模型,Salesforce 披露的数据是已有 83% 的员工在使用这一能力。三条线放在一起,指向的是同一件事:Anthropic 不再只是把 Claude 当作一个可调用的 API 卖给企业客户,而是要成为企业软件里"负责思考和决策"的默认大脑,Salesforce 则负责把自己在 CRM 领域积累的数据模型、权限体系和业务规则,转译成 Claude 能安全调用的接口。
Marc Benioff 把这次合作形容为"融合 Claude 卓越的推理能力,与企业信任的数据、工作流和治理",最终产出"能够思考、推理并行动的动态界面";Dario Amodei 的表述则更偏向 Claude 一侧的价值主张——为 Salesforce 中的商业活动提供"前沿智能",让企业能够"实际运营和发展业务",而不只是生成文本。公告发布后,Salesforce 股价在盘后交易中上涨,市场把这次合作解读为"CRM 巨头选边站队":相比通过 ChatGPT 集成,Salesforce 选择与 Anthropic 建立更深度的技术绑定。
二、技术细节解析:一个只有 4 个工具的 MCP Server
Claudeforce 底层的技术支撑,Salesforce 称之为 AIforce ——一套通过 MCP(Model Context Protocol)服务器、REST/GraphQL API 与 CLI 工具,把企业数据和工作流暴露给"任意 Agent"的基础设施层。这里最值得展开讲的,是 Salesforce Hosted MCP Server 的设计取舍。
企业内部一个成熟的 CRM 系统,对外暴露的 API 端点动辄成百上千:客户对象的增删改查、机会(Opportunity)阶段流转、报价审批流、各种自定义对象和 Flow 触发器……如果按照 MCP 最朴素的实现方式,把每一个 API 端点注册成一个独立的 MCP tool,模型在做 tool selection 时会面临两个现实问题:一是 system prompt 里塞进成百上千个工具定义,会严重挤占上下文窗口、拖慢推理;二是当工具数量远超模型在一次决策中能有效区分的规模时,模型选错工具、参数拼错的概率会显著上升——这也是过去一年里,大量"企业级 Agent 项目做了半年,发现连基本的工具路由都做不准"的核心原因。
Salesforce 的做法是把这上千个能力收敛成 4 个抽象动作:
- Discover:对 Salesforce 侧的操作做语义搜索,返回一组按相关度排序的候选操作,而不是让模型直接面对全量 API 列表;
- Describe:针对 Discover 返回的某个具体候选操作,取回它的技术规范(参数、返回结构等);
- Dispatch:真正执行该操作,支持 GET / POST / PUT / DELETE / PATCH 等标准动作;
- Dispatch(只读变体):功能等同 Dispatch,但被约束为只允许 GET,用于治理策略要求"先只读,再逐步放开写权限"的场景。
模型的调用路径因此变成一个三段式流程:先用自然语言描述意图去 Discover,拿到候选操作列表;再对选中的操作调用 Describe,拿到准确的参数规范;最后带着正确参数调用 Dispatch 执行。这本质上是把"工具选择"这个组合爆炸问题,从"一次性在 N 个工具里选 1 个",转化成了"先在语义空间里做一次粗召回,再在一个小得多的候选集里做精确匹配"——是搜索系统里再常见不过的召回 + 排序思路,被搬到了 MCP tool 设计上。对任何要给 Agent 接入几十上百个内部系统 API 的团队来说,这是一个立刻可以复用的模式:与其把 API 网关里的每个端点原样注册成 MCP tool,不如先做一层语义索引,把 discover / describe / dispatch 这类"元工具"暴露给模型。
三、权限治理:管理员连一次,用户各自受限
比工具设计更关键的,是 Claudeforce 在权限模型上的选择,这也是企业级 Agent 项目里最容易被低估、又最容易出安全事故的一环。
传统做法下,要让一个 Agent 能够代表不同用户访问企业系统,通常需要给每个用户单独走一遍 OAuth 授权流程,配置各自的凭证——这在动辄几千上万人的企业里几乎不可能落地,实际结果往往是要么每个团队各自搭一套"影子 IT"式的 MCP 连接,权限管理形同虚设;要么干脆用一个高权限的服务账号一刀切,牺牲最小权限原则换取可用性。
Claudeforce 的 Hosted MCP Server 采用的是"每用户 OAuth"(per-user OAuth)模型:管理员只需要完成一次插件连接和认证配置,之后每一次工具调用都会以发起请求的具体用户身份运行,该用户在 Salesforce 里原本拥有什么数据权限,Agent 代表他执行操作时就只能拥有同样的权限——用业内评论的话说就是"如果你不拥有这条记录,MCP Server 也不会拥有,你依然无法读取或写入它"。而在 Slack 场景下(Claude Tag),走的则是客户端凭证流(client credentials flow),配合专门的集成用户账号,这是另一种更适合服务对服务场景的授权模式。两种模式的并存,本身就是一个值得参考的设计:面向"人代表自己操作"的场景用 per-user OAuth 继承权限,面向"系统对系统"的场景用独立的服务身份,不要用一套授权模型强行覆盖两种完全不同的信任边界。
对于计划接入类似能力的团队,行业分析给出的落地建议也相当具体,可以直接当作检查清单:
- 先审计权限,再开试点,而不是反过来——很多项目是等出了越权访问事故才回头补权限矩阵;
- 从只读访问起步,验证 Discover/Describe/Dispatch 这条链路的准确率和延迟,确认没有明显的误操作风险后,再逐步开放写权限;
- 写操作不能绕过既有业务规则——Salesforce 强调即便是通过 Claude 发起的写入,依然会触发原有的验证规则(Validation Rule)、Flow 和 Apex 触发器,也就是说 Agent 不是走了一条"绕开业务系统护栏"的后门,而是和人类用户走同一套校验逻辑;
- 警惕团队自建"影子 MCP 连接"——一旦某个业务团队为了图快,绕开中心化治理自己拼了一套 MCP Server 直连生产数据,整个企业级权限模型的努力就会被架空。
四、实践指南:把这套思路搬到自己的项目里
即便你的项目远没有 Salesforce 这种规模,Claudeforce 的架构选择依然有很强的可迁移性。下面是一个简化版的示意,说明如何用 "Discover / Describe / Dispatch" 模式给自己的内部系统接一个 MCP Server(示例基于 MCP Python SDK 的常见写法,实际字段以你使用的 SDK 版本为准):
from mcp.server import Server
from mcp.types import Tool, TextContent
import json
app = Server("internal-crm-mcp")
# 内部维护的操作索引:可以是向量检索,也可以先用简单的关键词/embedding匹配起步
OPERATION_INDEX = [
{"id": "get_opportunity", "desc": "按 ID 或客户名查询销售机会详情"},
{"id": "update_deal_stage", "desc": "更新某个销售机会的阶段"},
{"id": "list_open_tasks", "desc": "列出某个客户下所有未完成的跟进任务"},
]
@app.list_tools()
async def list_tools():
return [
Tool(name="discover", description="语义搜索可用操作,返回候选列表",
inputSchema={"type": "object", "properties": {"query": {"type": "string"}}}),
Tool(name="describe", description="获取指定操作的参数规范",
inputSchema={"type": "object", "properties": {"operation_id": {"type": "string"}}}),
Tool(name="dispatch", description="执行指定操作(默认仅只读,写操作需显式授权)",
inputSchema={"type": "object", "properties": {
"operation_id": {"type": "string"},
"params": {"type": "object"},
}}),
]
@app.call_tool()
async def call_tool(name: str, arguments: dict):
# 关键点一:权限继承——用当前会话用户身份去查库,而不是用服务账号
current_user = get_current_user_from_session()
if name == "discover":
candidates = semantic_search(OPERATION_INDEX, arguments["query"])
return [TextContent(type="text", text=json.dumps(candidates, ensure_ascii=False))]
if name == "describe":
spec = get_operation_spec(arguments["operation_id"])
return [TextContent(type="text", text=json.dumps(spec, ensure_ascii=False))]
if name == "dispatch":
op_id, params = arguments["operation_id"], arguments["params"]
# 关键点二:写操作复用既有业务校验,不给 Agent 开后门
assert_user_has_permission(current_user, op_id, params)
result = execute_operation(op_id, params, acting_as=current_user)
return [TextContent(type="text", text=json.dumps(result, ensure_ascii=False))]2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
这段代码略去了具体的鉴权和检索实现,但保留了 Claudeforce 架构里最核心的三个设计决策:用 discover/describe/dispatch 三个"元工具"收敛海量 API,避免一次性把所有端点塞进模型的工具列表;每次调用都携带当前用户身份、按用户原有权限执行,而不是用一个万能服务账号;写操作复用系统原有的业务校验逻辑,不为 Agent 单独开一条绕过审批和校验规则的通道。如果你正在给内部系统接 Claude、GPT 或任何支持 MCP 的 Agent,这三条几乎可以直接作为设计评审的检查项。
五、总结与展望
Claudeforce 表面上是一次商业合作公告,但它真正值得记录的地方,是给"企业级 Agent 如何安全地拿到足够多的权限去干活"这个行业性难题,提供了一个经过实战验证的参考架构:用语义检索代替海量工具注册来解决模型的工具选择问题,用按用户继承权限代替全量服务账号来解决安全边界问题,用复用既有业务规则代替单独开洞来解决数据一致性问题。随着 2026 年下半年越来越多企业软件厂商开始把自己的核心系统通过 MCP 暴露给通用大模型(Slack、Salesforce 已经落地,可以预期 Google Workspace、Microsoft 365 生态会有类似动作跟进),"如何设计一个既好用又不失控的 MCP Server"会变成企业开发团队绕不开的基本功。对独立开发者和小团队而言,即便暂时用不到 Salesforce 这样的规模,提前把 discover/describe/dispatch 这套模式内化成默认的 MCP Server 设计习惯,未来在对接任何规模的企业系统时都会少踩很多坑。
参考来源
- Salesforce and Anthropic Announce Claudeforce: The #1 AI Meets the #1 AI CRM
- Salesforce and Anthropic Announce 'Claudeforce' in Q2 '27 Earnings
- Salesforce just put its entire CRM inside Claude — and says you'll never need its app again | VentureBeat
- Claudeforce Explained: What Salesforce + Anthropic Actually Ship - Apex Hours
- Salesforce's Claudeforce Deal With Anthropic Signals the End of Model-Agnostic Enterprise AI
💬 评论