今天我们发布 Studio 中的连接器(Connectors),以帮助开发者构建基于企业数据的高度定制化 AI 应用。所有内置连接器以及自定义 MCP,现在都可以通过 API/SDK 使用,并可与所有模型和智能体调用配合使用。
我们还引入了直接工具调用(direct tool calling),让开发者能够精确控制工具的调用方式和时机,而不会因身份验证障碍妨碍测试和迭代。此外,你现在还可以实现人在回路(human-in-the-loop)审批流程,在工具执行前进行安全审查和确认,从而兼顾灵活性与治理。
以编程方式创建、修改、列出和删除你的连接器,同时还可以列出它们的工具并直接运行它们。
所有连接器都集中注册,使其可在 Mistral 应用中通用:LeChat 和 AI Studio(Vibe 即将推出)。
通过 Conversation API、Completions API 和 Agent SDK 使用,现在可以促进复杂工作流以及与 CRM、知识库和生产力工具等企业系统的集成。
集成存在于平台中,而非你的代码里
构建企业 AI 智能体正变得越来越容易。更难的部分是围绕它们的一切:查找正确的 API 文档、编写和维护工具函数、构建集成、设置 OAuth、处理令牌刷新,以及调试诸如分页损坏之类的边缘情况。
因此,团队不断重建相同的集成层。即使在同一家公司内部,类似的集成也常常以任意代码多次实现,导致安全风险、缺乏流量可观测性以及重复工作。
连接器通过使用 MCP 协议将集成打包为单个可复用实体来解决这一问题。
my_connector = client.beta.connectors.create( name="salesforce-crm", description="Salesforce CRM — accounts, contacts, opportunities", server="https://your-mcp-server.internal/salesforce", visibility="shared_workspace", oauth_config={ "client_id": os.environ["SALESFORCE_CLIENT_ID"], "scopes": ["read_accounts", "read_contacts"], "redirect_uri": "https://your-app.internal/oauth/callback", },)
一旦注册,自定义 MCP 连接器就可在 Studio 中被发现、治理和监控,并成为任何对话、智能体或工作流的原生工具,无需重写集成逻辑,无需重新实现身份验证,无需在团队之间重复实现。一次设置,随时随地持续运行。将连接器附加到任何对话只需一行:
response = client.beta.conversations.start_async( model="mistral-medium-latest", inputs="Which enterprise accounts renewed last quarter?", tools=[{"type": "connector", "connector_id": "salesforce-crm"}],)
一条可运行的黄金路径
让我们基于智能体对 GitHub、公共仓库内容和文档,以及来自网络的实时数据的安全连接,构建一个跨来源推理的多步骤工作流智能体。该智能体可以理解意图、分析代码并提出更改,同时还可用于其他常见用例,如生成测试、重构、识别低效、缺陷或漏洞。
先决条件
pip install mistralaiexport MISTRAL_API_KEY="your-api-key"client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
1 - 为公共远程 MCP 创建连接器
为了查询和探索代码库,我们将利用 DeepWiki 远程服务器,它提供了到 API/工具端点的 MCP 接口。这样,代理就可以探索内容和文档,而无需手动抓取文档或加载整个仓库。
my_custom_mcp = client.beta.connectors.create_async( name="my_deepwiki", description="DeepWiki MCP for code repository exploration", server="https://mcp.deepwiki.com/mcp", visibility="shared_workspace",)
注册一次 MCP 服务器后,用户就可以在对话、代理或直接工具调用中重复使用它。这是任何自定义 MCP 流程的入口点。有关如何管理内置连接器和自定义连接器的完整示例,请参阅 cookbook: Connectors Management。
2 - 创建代理
该代理还应能够连接到 GitHub 和网络;用户无需创建这些连接器,因为它们已内置于 Mistral 中。
请注意,一个连接器可以暴露数十个工具。如果用户想要排除可能具有破坏性的操作,tool_configuration
可以在不修改连接器本身的情况下控制工具的可用性。更多详细信息可在 Cookbook 中找到:Using Connectors in Conversations。
my_agent = client.beta.agents.create_async( name="deepwiki_agent", description="Agent for code repository exploration", model="mistral-small-latest", instructions="""\ You are an Open-Source Software Auditor. \
当被要求审查某个库或仓库时,你必须执行以下所有任务:
## 最终结论基于以上三项分析,给出明确的建议:- **可安全采用** — 无重大顾虑- **谨慎采用** — 有一些需要注意的顾虑- **避免使用** — 已识别出重大风险
务必做到全面详尽,并引用你的来源。\""", tools=[ {"type": "web_search"}, { "type": "connector", "connector_id": "github", "tool_configuration": {"exclude": ["delete_file"]}, }, {"type": "connector", "connector_id": "my_custom_mcp.name"}, ],)
response = await client.beta.conversations.start_async( agent_id=my_agent.id, inputs=[ { "role": "user", "content": "Please perform full audit on repo pallets/flask", } ],)
直接调用工具
并非每个工作流都需要由模型来决定何时以及如何调用工具。为了获得更确定性的体验,用户现在可以直接调用连接器。
result = await client.beta.connectors.call_tool_async( connector_id="my_deepwiki", tool_name="read_wiki_structure", arguments={"repoName": "sqlite/sqlite"}, ) print(f"Tool output:\n{result.content}")
这对于调试和限制歧义的管道式自动化尤其有用。完整模式请参见 cookbook: Connector tool calling。
当需要人工介入时
某些操作不应在未经明确批准的情况下执行。requires_confirmation
会在工具运行前暂停执行并将控制权交还给你的应用程序:
{ "type": "connector", "connector_id": "gmail", "tool_configuration": { "include": ["gmail_search"], "requires_confirmation": ["gmail_search"] }}
模型提出建议,用户应用程序决定是否继续。AI 判断与人类判断之间的边界是明确的,并写在代码中。完整的审批流程,包括待处理的工具调用和恢复步骤,请参见 cookbook: Human-in-the-loop Confirmation。
开始构建
你现在可以在 Studio 中使用连接器(公共预览版)。立即访问 Studio 控制台开始构建:https://console.mistral.ai/build/connectors
Documentation关于发布Cookbooks关于各种常见使用模式
