Salesforce LangGraph代理
一个智能会话代理,集成了OpenAI、LangGraph和Salesforce MCP(模型上下文协议),为Salesforce操作提供自然语言访问。
🚀 概述
该项目演示了如何构建一个基于人工智能的Salesforce助手,该助手可以:
- 了解有关Salesforce的自然语言问题
- 自动决定何时使用Salesforce工具,何时进行对话式响应
- 执行Salesforce操作(SOQL查询、组织管理、元数据操作)
- 将技术成果总结为用户友好的响应
🏗️ 建筑
START → LLM Node → [continue → Tools Node → LLM Node (summarize)] → END
↓
end → ENDLLM节点:分析消息,决定是使用工具还是直接响应,并格式化最终输出\ 工具节点:获取可用的Salesforce工具并执行选定的操作\ 条件路由:“继续”(使用工具)或“结束”(直接响应)的路线
🛠️ 技术栈
- LangGraph:具有状态管理和条件路由的工作流编排
- OpenAI GPT-4o-mini:自然语言理解和决策
- Salesforce MCP服务器:通过stdio协议提供50多个Salesforce操作
- LangChain:消息格式和AI集成
- Python 3.12:核心实现语言
📋 特性
- 智能路由:自动区分随意聊天和Salesforce操作
- 工具选择:根据用户意图动态选择合适的Salesforce工具
- 自然语言接口:问“我的默认组织是什么?”或“列出我的所有组织”之类的问题
- 结果总结:将技术JSON/CLI输出转换为友好的响应
- 50+Salesforce工具:访问组织、SOQL查询、元数据部署、权限等
🔧 先决条件
- Python 3.12+
- Node.js(用于Salesforce MCP服务器)
- Salesforce CLI配置了至少一个组织
- OpenAI API密钥
- LangSmith帐户(可选,用于跟踪)
📦 安装
- 克隆存储库
git clone https://github.com/SalesforceDiariesBySanket/salesforce-langgraph-agent.git
cd salesforce-langgraph-agent- 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/Mac- 安装依赖项
pip install langgraph langchain-openai mcp langchain-core- 安装Salesforce MCP服务器
npm install -g @salesforce/mcp- 配置环境变量
创建一个 .env 文件:
OPENAI_API_KEY=your_openai_api_key_here
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=your_langsmith_key_here
LANGSMITH_PROJECT=your_project_name🚦 用法
独立运行
python langgraph_salesforce_mcp.py使用LangGraph开发服务器运行
pip install langgraph-cli
langgraph dev --port 8123 --allow-blocking然后访问Studio UI: http://127.0.0.1:8123
交互示例
随意聊天:
User: Hello!
Agent: Hello! How can I help you with Salesforce today?Salesforce运营:
User: What's my default org?
Agent: Your default org is epic.8d791757115102822@orgfarm.salesforce.comSOQL查询:
User: List all my Salesforce orgs
Agent: You have 3 configured orgs:
1. epic.8d791757115102822@orgfarm.salesforce.com (default)
2. dev-org@example.com
3. sandbox@example.com📁 项目结构
salesforce-langgraph-agent/
├── langgraph_salesforce_mcp.py # Main workflow implementation
├── langgraph.json # LangGraph configuration
├── .env # Environment variables (not committed)
├── README.md # This file
└── .gitignore # Git ignore rules🔑 关键组件
GraphState
管理对话状态,包括:
messages:聊天记录(LangChain消息格式)tools:可用的Salesforce MCP工具next_action:路由决策(“继续”或“结束”)selected_tool:LLM选择的工具tool_arguments:工具执行参数tool_result:原始工具输出
LLM节点
- 初步意图分析
- 带参数生成的工具选择
- 结果总结
工具节点
- Lazy在第一次调用时加载Salesforce工具
- 执行选定的Salesforce操作
- 优雅地处理错误
🎯 可用的Salesforce工具
该代理可以访问50多个Salesforce操作,包括:
get_username-获取默认组织用户名list_all_orgs-列出已配置的Salesforce组织run_soql_query-执行SOQL查询assign_permission_set-分配权限deploy_metadata-部署元数据更改run_apex_tests-执行Apex测试- 还有更多。..
🔍 运作原理
- 用户发送消息 → 添加到状态为
HumanMessage - LLM分析意图 → 决定“聊天”或“使用工具”
- 如果聊天 → LLM直接回应→ END
- 如果需要工具:
- 工具节点获取可用的Salesforce工具(仅限第一次) - LLM选择合适的工具并生成参数 - 工具节点执行Salesforce操作 - 流循环回到LLM节点 - LLM将结果总结为友好的回应
- 已发送响应 → END
🛡️ 错误处理
- 工具参数无效→ LLM提供指导
- MCP连接故障→ 优美的错误消息
- 缺少必要参数→ 自动默认值或用户提示
🚧 局限性
- 需要预先配置Salesforce CLI
- 工具同步执行(阻塞I/O)
- OpenAI API调用产生成本
- 仅限于基于stdio的MCP工具
🔮 未来的增强功能
- \[\]支持流式响应
- \[\]多工具并行执行
- \[\]会话间的对话记忆
- \[\]自定义Salesforce工具定义
- \[\]支持更多MCP服务器
- \[\]交互式工作室UI改进
📝 许可证
麻省理工学院
👤 作者
桑凯特·库马尔
- github: @销售日记BySanket
- 电子邮件:kumar.sanket539@gmail.com
🙏 致谢
- LangGraph -工作流编排
- Salesforce MCP -Salesforce工具
- 开放人工智能 -语言模型能力
- LangChain -人工智能集成框架
🤝 贡献
欢迎投稿!请打开问题或提交拉取请求。
______________________________________________________________________
⭐ 如果你觉得这个项目有帮助,请在存储库中加星!
