使用MCP跨聊天和语音实现统一的实时上下文
此存储库包含完整的实现指南、体系结构概述和用于构建的实用代码示例 跨MIAW(应用程序和网络中的消息)和语音的统一实时上下文 使用 特工力量 和 MCP(模型上下文协议)目标是允许通道之间无缝的上下文传递,使AI代理能够访问实时系统数据,并让AI采取安全的工具操作。
目录 - 概述 - 目标与非目标 - 建筑(美人鱼图+图像资产) - MCP:规格和数据模型 - 集成模式(MIAW、语音) - 代理平台:人工智能助手实施 - 安全与治理 - CI/CD和部署 - 测试与质量保证 - 故障排除 - 附录:示例有效载荷、模式和示例代码
______________________________________________________________________
概述
客户通过应用内/网络聊天(MIAW)或语音(服务云语音或电话)与您的产品进行交互。MCP充当 结构化上下文的单一来源 用于LLM和代理助理,以便渠道和工具之间的上下文保持一致。Agentforce使用MCP请求上下文、调用工具并将丰富的元数据保存回Salesforce。
益处
- 零重复:对话上下文在聊天过程中跟随客户→ 语音,反之亦然
- 通过预填充的上下文和AI建议加快平均处理时间(AHT)
- 通过MCP中的策略驱动工具调用实现更安全的AI操作
- 通过标准化的结构化元数据进行更好的分析和质量保证
______________________________________________________________________
目标与非目标
目标
- MIAW和Voice之间的实时上下文同步
- 通用实体(用户、帐户、案例、订单、会话)的标准化MCP模式
- 演示如何将MCP连接到Agentforce以启用工具调用
- 提供代码示例和部署步骤
非目标
- 替换您的电话提供商详细信息(我们展示了集成模式)
- 涵盖所有Salesforce定制(我们提供您可以适应的模式)
______________________________________________________________________
建筑
高层图(美人鱼)
flowchart LR
subgraph Customer
A[MIAW Chat] -->|message| B[MIAW Gateway]
C[Voice Call] -->|SIP/CCP| D[Voice Gateway]
end
B --> E[MCP Gateway]
D --> E
E --> F[Context Store / Cache]
E --> G[Tool Adapters]
G --> H[Order API]
G --> I[Telemetry API]
G --> J[Identity Service]
F --> K[Agentforce AI]
E --> K
K --> L[Salesforce Service Cloud]
L --> M[Case Object]
style E fill:#f9f,stroke:#333,stroke-width:1px
style K fill:#ff9,stroke:#333,stroke-width:1px笔记:
MCP Gateway将外部API和系统遥测规范化为MCP结构化模式。Context Store(Redis或内存缓存)支持实时语音耳语的低延迟读取。Tool Adapters实施invoke_tool功能(例如,退款、升级、运行诊断)。
______________________________________________________________________
MCP:规格和数据模型
MCP(模型上下文协议)故意简单:一种基于JSON的模式,用于在通道、模型和工具适配器之间传递结构化上下文。
核心实体
session--瞬态交互会话(id、started_at、channel)user--经过身份验证或匿名的用户信息(id、姓名、权限)account--计费/账户级元数据case--Salesforce案例参考(如果存在)entities--提取的实体列表(order_id、product_sku、invoice_id)policy--治理策略快照(允许使用哪些工具)
MCP有效载荷示例(聊天->MCP)
{
"mcp_version": "1.0",
"session": {
"id": "sess_abc123",
"channel": "miaw",
"started_at": "2025-11-28T10:12:00+05:30"
},
"user": {
"id": "user_987",
"name": "Manpreet Singh",
"authenticated": true
},
"account": {
"id": "acct_42",
"tier": "gold",
"entitlements": ["priority_support"]
},
"entities": [
{"type": "order_id", "value": "ORD-10234"}
],
"policy": {
"allow_tool_invoke": true,
"allowed_tools": ["refund", "escalate"]
}
}______________________________________________________________________
集成模式
1.MIAW(应用内聊天)
流量:
- 用户在应用程序中发送消息→ MIAW网关。
- MIAW网关将原始消息转发给NLP预处理器(意图/实体提取)。
- 预处理器将MCP有效载荷草稿写入
MCP Gateway(提取实体)。 MCP通过调用来丰富有效载荷Order API,Identity Service,Entitlement Service.- 代理从MCP请求上下文并接收规范化数据。
- 如果代理机构需要采取行动,它会提交
invoke_tool向MCP提出请求。
实施说明:
- 保持消息幂等:包括
message_id以避免重复工作。 - 限制丰富调用,以避免在高聊天量期间后端API过载。
2.语音(服务云语音/电话)
流量:
- 呼叫连接;电话网关或CCP发送
call_startMCP事件。 - 实时语音转文本(STT)将临时转录本转录并流式传输到MCP。
- MCP与聊天一样执行实体提取和上下文丰富。
- Agentforce订阅低延迟MCP更新,以提供耳语建议。
- 开
call_end,为该案例存储最终富集的MCP快照。
实施说明:
- 使用websockets进行低延迟转录和上下文推送到Agentforce。
- 在上下文存储中缓存最后N个会话回合,以便快速检索。
______________________________________________________________________
代理:人工智能助手实施
Agent使用MCP有效载荷来:
- 提供建议回复(聊天或通话耳语)
- 执行策略检查工具调用
- 预先填充案例字段和推荐的宏
例子: suggest_reply 请求
POST /agentforce/suggest_reply
Content-Type: application/json
{
"session_id": "sess_abc123",
"mcp_snapshot": { /* MCP payload from above */ },
"last_user_message": "My order ORD-10234 is delayed, can you check?"
}代理响应示例:
{
"suggested_replies": [
"I can check that for you — can you confirm the order ID is ORD-10234?",
"I see your order is delayed. Would you like me to escalate to priority shipping?"
],
"actions": [
{"id": "check_order_status", "label": "Check Order Status"}
]
}工具调用(安全模式)
- 代理提交
invoke_tool带有工具名称和参数。 - MCP验证
policy在MCP快照中。 - 如果允许,MCP将转发到
Tool Adapter其调用下游API。 - MCP返回
tool_result并存储审计跟踪。
POST /mcp/invoke_tool
{
"session_id": "sess_abc123",
"tool": "refund",
"params": {"order_id": "ORD-10234", "amount": 10.50}
}答复: 200 OK 随着 tool_result 以及审计元数据(参与者、时间戳)。
______________________________________________________________________
安全与治理
- 身份验证: MCP和代理服务必须对所有服务到服务调用使用双向TLS+OAuth。
- 授权: 使用RBAC来确定谁/什么可以调用工具;MCP执行政策。
- 数据最小化: 仅在MCP快照中包含任务所需的字段。
- 审核日志: 每
invoke_tool调用会记录请求/响应和策略快照。 - PII处理: 除非流程要求,否则在成绩单中隐藏或编辑PII;尽可能只存储哈希值。
______________________________________________________________________
CI/CD和部署
建议的组件和部署选项:
mcp-gateway--Node.js或Go微服务,部署到Kubernetescontext-store--Redis或DynamoDB用于低延迟读取tool-adapters--小型无服务器功能(AWS Lambda/GCP云功能)agentforce--托管在AI运行时(可能是调用LLM的内部微服务)
Kubernetes提示:
- 使用具有CPU和自定义队列长度度量的水平播客自动缩放器
- 使用sidecar进行遥测收集(Prometheus)和分布式跟踪(Jaeger)
______________________________________________________________________
测试与质量保证
- 单元测试MCP模式验证器和工具适配器模拟。
- 端到端集成测试:模拟聊天+语音事件。
- 使用合成转录本对MCP进行负载测试,以验证延迟约束。
- QA检查表:
- 实体提取的上下文准确率>95% - 工具调用成功率>99% - 延迟:从最终STT块到代理的耳语建议\<800ms
______________________________________________________________________
故障排除
- 语音耳语中缺少上下文: 检查MCP和Agentforce之间的websocket连接;检查上下文存储TTL。
- 工具调用被阻止: 检查
policy在MCP快照中(allow_tool_invoke错误的)以及审计日志。 - 高延迟以丰富上下文: 在上下文存储中缓存常见查找并使用后台刷新。
______________________________________________________________________
附录:示例代码片段
1.MCP模式验证器(Node.js/JSON模式)
// simple schema snippet (ajv)
const schema = {
type: 'object',
properties: {
mcp_version: { type: 'string' },
session: {
type: 'object',
properties: {
id: { type: 'string' },
channel: { type: 'string' }
},
required: ['id', 'channel']
}
},
required: ['mcp_version', 'session']
};2.工具适配器示例(Python Flask)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/refund', methods=['POST'])
def refund():
data = request.json
# call payment gateway here
result = {"status": "ok", "refund_id": "r_123"}
return jsonify(result)
if __name__ == '__main__':
app.run(port=8080)______________________________________________________________________
贡献
- 分叉此存储库
- 在下添加或更新MCP架构版本
/specs/ - 在下面添加实现示例
/examples/ - 打开带有详细描述的PR
______________________________________________________________________
许可证
麻省理工学院
______________________________________________________________________
如果你愿意,我现在可以:
- ✅ 将美人鱼图导出到PNG,并将其添加到
/docs/images/在回购中 - ✅ 将示例测试有效负载生成为JSON文件
/examples/ - ✅ 创建一个小型参考实现(微服务)脚手架
我可以立即启动上面的任何一个——告诉我你想要哪一个,我会把它添加到仓库中。
