文章摘要
当前办公智能体需求已从个人轻任务辅助,转向深入企业业务流程实现组织提效。本文讲解通过MCP Apps将企业应用接入桌面智能体WorkBuddy的集成方案,对比其与企业自建共享Agent的差异,演示了CRM接入流程,展望了办公Agent作为企业业务入口的发展前景。

国内头部科技企业近日完成了WorkBuddy与企业协作平台的打通,这一动作背后,是行业对办公智能体(Agent)的期待升级——不再仅满足于处理个人邮件、文档等轻量任务,而是希望这类工具能深入企业业务流程,真正实现组织层面的效率提升,毕竟个人提效不等于组织提效。

一种新的协作模式正在形成:Agent负责理解用户意图、规划任务步骤;业务应用提供必要的上下文数据,执行具体操作;而人则承担最终的审查和关键节点的接管工作。那么,如何将企业应用的业务能力,甚至操作界面接入WorkBuddy这类桌面智能体?本文就来探讨并演示其中一种集成方式——MCP Apps。

为什么要将企业系统接入WorkBuddy

核心逻辑在于,让员工日常使用的AI工具,在组织授权和管理的框架下接入企业系统,深度参与业务协作、承担实际任务,而不是局限于个人层面的辅助。

从一项典型工作任务说起

以销售的客户拜访为例,过去需要做大量跨系统的重复操作:查询CRM商机、梳理未结售后工单、翻阅每周会议纪要,再手动整理下一步行动方案,期间频繁切换系统、复制粘贴,效率低下且容易出错。

有了接入后的WorkBuddy,员工只需提出明确需求:“查询我目前跟进的所有商机,翻阅本周的会议纪要,制定本周的跟进计划”,WorkBuddy就会自动调用相关业务工具,汇总资料并整理出计划供核对确认。之后还可以进一步指令:“帮我准备明天的客户拜访材料,并将跟进计划录入CRM”,经用户确认后,Agent会通过CRM接口完成数据写入。

这类跨系统的任务集成,核心价值在于:WorkBuddy负责组织任务执行,企业系统负责保存业务事实、执行规则与专业操作,两者各司其职,让原本分散的工作环节得以顺畅衔接,相比传统模式有显著的效率提升。

接入WorkBuddy vs 自建共享Agent系统

接入WorkBuddy,和企业自建共享Agent服务有明显区别:

自建共享Agent系统:更适合围绕组织的统一业务流程持续运行,比如统一接收销售线索、按规则分配给员工、跟进超期触发提醒等,这类任务需要统一的流程管理、状态调度和运行环境,即使员工离线或换岗也不影响任务推进,企业需要承担全部的开发和运维工作,还可按需设计UI、编排流程。

接入WorkBuddy:则更贴近员工手头的具体日常任务,比如销售可以把CRM客户资料、本地方案和协作平台的会议纪要交给Agent,结合当前任务整理材料、给出建议。复用已有的对话和任务入口后,开发重点可放在业务能力、权限和操作界面的适配上。

两者也可以结合使用:比如共享Agent统一完成市场调研和商机生成,员工在WorkBuddy中推进具体客户的跟进;专业Agent还可封装成服务,通过API与MCP接入WorkBuddy。此外,WorkBuddy新推出的“项目”功能支持共享上下文和团队协作,项目配置保存在云端,桌面Agent可访问本地环境,但并非所有数据都需留在本机。

企业应用的三种接入方式

将企业应用接入WorkBuddy这类桌面智能体,需要两端配合:智能体支持对应的调用协议,企业应用提供可用接口或操作入口。根据企业系统的现有能力,通常可选择以下几种接入方式:

  • Skill配合CLI/脚本:把操作方法写入Skill,让Agent按说明调用CLI工具或脚本,访问业务系统、执行操作。
  • MCP工具与MCP Apps:将应用API封装成MCP工具,供Agent调用;需要交互界面时,再配合MCP Apps,其他Agent也可封装成工具,通过MCP接入。
  • 浏览器自动化:若旧系统暂时没有可用接口,可通过浏览器自动化访问页面、完成操作,比如在WorkBuddy中使用Agent Browser技能。

MCP Apps:带交互的工具

对于已有API的企业系统,可优先考虑MCP方案。若系统提供标准OpenAPI描述,还可借助开源工具直接生成MCP封装,再按需求调整。比如,将查询客户、读取商机、登记跟进等能力,封装成用途明确、参数清晰的工具,供WorkBuddy等支持MCP的Agent调用。

WorkBuddy已支持通过连接器调用MCP工具,接入后员工可在同一个任务中使用企业应用的业务能力,减少多应用间的切换。但这类纯工具调用的问题在于交互体验:筛选数据、比较方案、填写表单时,每一步都靠自然语言交互,需要多轮沟通,操作不够便捷。

这时就需要为MCP工具配套开发MCP Apps界面,把表单等UI带入WorkBuddy,员工可在可视面板中查看数据、完成操作,推进当前任务。

如何用MCP Apps补齐交互界面

MCP让Agent调用工具,MCP Apps则为这些工具配上交互界面。这类围绕具体任务构建的交互组件被称为Widget,负责加载组件、承接交互的应用称为宿主,这里就是WorkBuddy。

Widget可复用企业应用已有的部分前端代码,也可单独开发,除了展示界面,还要处理交互和状态变化,比如筛选条件改变、提交完成后给出相应反馈。实际接入还涉及登录认证、授权和跨域访问等细节,这里暂不展开。

一次交互的完整流程

以“登记客户跟进计划”为例,完整的交互流程大致如下:

  1. 用户向WorkBuddy发起任务,比如“帮我登记某客户的跟进计划”;
  2. WorkBuddy规划步骤,识别CRM工具关联的UI资源,通过连接器调用对应的MCP工具;
  3. 读取UI资源,在沙箱中加载Widget,将客户基本信息等工具结果交给界面渲染;
  4. 员工填写并确认表单,Widget通过宿主的通信桥接调用MCP工具提交数据,根据返回结果更新界面;
  5. 交互完成后,WorkBuddy可结束任务或推进后续步骤。

整个过程中,员工可在提交前核对信息、修改输入,提交后查看结果,交互界面显示在WorkBuddy中,业务规则、数据校验和写入仍由企业应用负责,无需在多个应用间反复切换。

以CRM为例接入业务能力

我们以“登记客户跟进计划”为例,演示如何用MCP Apps将企业应用的UI接入WorkBuddy。

定义任务,封装MCP工具

先明确工具的输入、输出与职责:查询工具接收客户标识,返回客户信息、商机和未结事项等,并关联登记表单;销售填写后,由另一个工具负责提交。这里实现三个工具:

  • crm_customer_workspace:查询并关联工作台UI;
  • crm_create_followup:创建客户跟进计划;
  • crm_list_followups:查询跟进计划列表。

以第一个带UI的工具为例,核心代码示例:

const uri = 'ui://crm-demo/customer-workspace.html';
registerAppTool(server, 'crm_customer_workspace', {
  inputSchema: { customerId },
  _meta: { ui: { resourceUri: uri } }
}, async args => ({
  content: [{ type: 'text', text: '客户工作台' }],
  structuredContent: await workspace(args.customerId)
}));

其中,structuredContent返回结构化业务数据,由宿主传给UI渲染;_meta.ui.resourceUri声明与工具关联的UI资源,告诉WorkBuddy调用该工具时加载对应的UI组件。

编写界面,提供UI资源

将客户摘要和跟进表单组织成Widget:上半部分核对业务背景,下半部分登记跟进计划,大致骨架如下:

<h3 id="customer-name"></h3>
<form id="followup-form">
  <input name="title" placeholder="跟进事项">
  <input name="owner" placeholder="负责人">
  <input name="dueDate" type="date">
  <button>保存跟进计划草稿</button>
</form>

将HTML、样式和交互脚本打包后,需在MCP Server中注册资源,让WorkBuddy读取界面:

registerAppResource(server, '客户 UI', uri, {
  mimeType: RESOURCE_MIME_TYPE
}, async () => ({
  contents: [{
    uri, mimeType: RESOURCE_MIME_TYPE,
    text: html
  }]
}));

这里的html是构建后的完整HTML内容,RESOURCE_MIME_TYPE的值为text/html;profile=mcp-app,用于标识MCP Apps界面资源,uri需与之前工具注册中的一致。

绑定交互,让表单提交生效

要让表单真正完成业务操作,需由WorkBuddy转发工具调用,将跟进计划写入CRM,使用MCP SDK的callServerTool实现:

import { App } from '@modelcontextprotocol/ext-apps';
const app = new App({ name: 'CRM', version: '1.0.0' }, {});
app.ontoolresult = result => consume(result);
await app.connect();
form.onsubmit = async event => {
  event.preventDefault();
  consume(await app.callServerTool({
    name: 'crm_create_followup',
    arguments: argumentsValue
  }));
};

提交时从表单组装argumentsValue,callServerTool将保存动作交给WorkBuddy转发请求,获得返回后更新前端界面。

在WorkBuddy中跑通

工具和UI资源准备好后,启动MCP Server,通过Streamable HTTP提供远程服务;在WorkBuddy中添加对应的MCP连接器,填写服务地址(需完成认证),连接成功后发起测试:“查询某客户的信息,并帮我登记跟进计划”。

工作台加载后,可查看客户信息和历史跟进,填写并提交新计划,核对CRM返回的保存结果,整个过程都在WorkBuddy中完成,结合协作平台等入口,将分散的系统操作串在一项任务中。

总结与展望

桌面Agent可连接个人资料、协同办公和企业应用,减少系统切换和重复操作,从高频任务、业务工具和交互组件入手,形成“Agent规划准备、员工核对确认、企业应用执行操作”的协作模式。

这种方式可延伸到更多场景,比如报销凭证核对、采购报价比较、运维证据追踪、合同条款确认、经营指标下钻、招聘材料整理等。

当办公Agent真正接入企业应用时,未来还需完善几类问题:应用开放对商业模式的影响、身份认证与授权审核、长任务的进度管理与中断恢复、连接器的分发与版本管理等。随着这些能力逐步完善,办公Agent有望成为未来企业日常业务的重要入口。

以上内容不代表本平台立场,仅供读者参考