```html
Yapay Zeka (YZ), sadece metin üretmek veya görüntü tanımaktan hızla öteye geçiyor. Bir sonraki sınır, harekete geçebilen, sorunları çözebilen ve dünyayla anlamlı şekillerde etkileşime girebilen YZ ile ilgili. Alanında öne çıkan bir isim olan Mistral AI, Mistral Agents API'si ile bu yönde önemli bir adım attı. Bu güçlü araç seti, geliştiricilerin geleneksel dil modellerinden çok daha fazlasını yapabilen gelişmiş YZ aracıları oluşturmasına olanak tanır.
Temelinde, Agents API, genellikle dili anlamada ve üretmede harika olan ancak eylemleri gerçekleştirmekte, geçmiş etkileşimleri tutarlı bir şekilde hatırlamakta veya harici araçları etkili bir şekilde kullanmakta zorlanan standart YZ modellerinin sınırlamalarını aşmak için tasarlanmıştır. Mistral Agents API, güçlü dil modellerini çeşitli araçlara yerleşik bağlayıcılar, konuşmalar boyunca kalıcı bellek ve karmaşık görevleri koordine etme yeteneği gibi özelliklerle donatarak bu zorlukların üstesinden gelir.
Bunu, kitaplar hakkında konuşabilen çok bilgili bir kütüphaneciden, yalnızca bilgilere erişmekle kalmayıp aynı zamanda deneyler yapabilen, raporlar yazabilen ve birbirleriyle işbirliği yapabilen bir grup uzman araştırmacıya yükseltmek gibi düşünün. Bu yeni API, iş akışlarını otomatikleştirebilen, karmaşık karar verme süreçlerine yardımcı olabilen ve gerçekten etkileşimli deneyimler sağlayabilen kurumsal düzeyde YZ uygulamaları oluşturmanın temelini oluşturur.
Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?
Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!
Mistral Agents'ı Bu Kadar Yetenekli Yapan Nedir?

Geleneksel dil modelleri, metin üretimi konusunda yetenekliyken, eylemleri yürütme veya uzun süreli etkileşimler boyunca bilgileri hatırlama konusunda genellikle yetersiz kalır. Mistral Agents API, Mistral'in son teknoloji dil modellerini, aracı iş akışları için tasarlanmış bir dizi güçlü özellikle birleştirerek bu sınırlamaları doğrudan ele alır.
Temel Yetenekler:
Agents API, temelinde şunları sağlar:
- Yerleşik Bağlayıcılar: Bunlar, aracıların talep üzerine çağırabileceği önceden dağıtılmış araçlardır. Şunları içerir:
- Kod Yürütme: Aracıların hesaplamalar, veri analizi ve bilimsel hesaplama için kullanışlı, güvenli bir korumalı alanda Python kodu çalıştırmasına olanak tanır.
- Web Araması: Aracıları internetten güncel bilgilere erişimle güçlendirerek yanıt doğruluğunu ve alaka düzeyini önemli ölçüde artırır. Örneğin, SimpleQA kıyaslamasında, web aramasıyla Mistral Large %75 puan alırken, web araması olmadan %23'te kalmıştır.
- Görüntü Oluşturma: Black Forest Lab FLUX1.1 [pro] Ultra gibi modellerden yararlanan aracıların, eğitim yardımlarından pazarlama grafiklerine kadar çeşitli uygulamalar için çeşitli görüntüler oluşturmasını sağlar.
- Belge Kütüphanesi: Aracıların Mistral Cloud'dan belgelere erişmesini ve bunları kullanmasını sağlayarak, bilgi tabanlarını geliştirmek için entegre Geri Alma Destekli Üretim (RAG) sağlar.
- MCP Araçları: Bölüm 3'te derinlemesine inceleyeceğimiz Model Context Protocol aracılığıyla harici sistemlerle sorunsuz entegrasyonu kolaylaştırır.
- Kalıcı Bellek: Aracıların konuşmalar boyunca bağlamı koruyabilmesini sağlayarak daha tutarlı ve anlamlı uzun vadeli etkileşimlere yol açar.
- Aracı Orkestrasyonu: API, her biri potansiyel olarak farklı görevlerde uzmanlaşmış birden fazla aracının, karmaşık sorunları işbirliği içinde çözmesini sağlar.
Bu API, yalnızca Chat Completion API'lerinin bir uzantısı değil; özellikle aracı kullanım durumlarının uygulanmasını basitleştirmek için tasarlanmış özel bir çerçevedir. İşletmelerin YZ'yi daha pratik, etkili ve eylem odaklı şekillerde dağıtmasını sağlayarak, kurumsal düzeyde aracı platformların omurgası olarak tasarlanmıştır.
Mistral Agents İş Başında: Gerçek Dünya Uygulamaları
Agents API'sinin çok yönlülüğü, çeşitli yenilikçi uygulamalar aracılığıyla sergilenmektedir:
- GitHub ile Kodlama Asistanı: Bir aracının, tam depo yetkisiyle yazılım geliştirme görevlerini otomatikleştiren, GitHub ile etkileşim kuran bir geliştirici aracısını (DevStral tarafından desteklenir) denetlediği bir aracı iş akışı.
- Linear Biletleri Asistanı: Çağrı transkriptlerini Ürün Gereksinim Belgelerine (PRD'ler) dönüştüren, ardından eyleme geçirilebilir Linear sorunlarına dönüştüren ve daha sonra proje teslimatlarını izleyen, çok sunuculu bir MCP mimarisi kullanan akıllı bir asistan.
- Finans Analisti: Finansal metrikleri kaynaklamak, içgörüler derlemek ve sonuçları güvenli bir şekilde arşivlemek için birden fazla MCP sunucusunu orkestre eden, karmaşık veri toplama ve analizi gösteren bir danışman aracı.
- Seyahat Asistanı: Kullanıcıların seyahat planları yapmasına, konaklama rezervasyonu yapmasına ve çeşitli seyahatle ilgili ihtiyaçları yönetmesine yardımcı olan kapsamlı bir YZ aracı.
- Beslenme Asistanı: Kullanıcıların hedefler belirlemesine, öğünleri kaydetmesine, kişiselleştirilmiş yiyecek önerileri almasına, günlük ilerlemeyi izlemesine ve beslenme hedeflerine uygun restoranlar bulmasına yardımcı olan YZ destekli bir diyet arkadaşı.
Bellek, Bağlam ve Durumsal Konuşmalar
Agents API'sinin temel taşı, sağlam konuşma yönetimi sistemidir. Etkileşimlerin durumsal olmasını sağlar, yani bağlam zaman içinde korunur. Geliştiriciler konuşmaları iki ana yolla başlatabilir:
- Bir Aracı ile: Bir
agent_id
belirterek, belirli bir aracının önceden yapılandırılmış yeteneklerinden, araçlarından ve talimatlarından yararlanırsınız. - Doğrudan Erişim: Modeli ve tamamlama parametrelerini doğrudan belirterek bir konuşma başlatabilir, önceden tanımlanmış bir aracı olmadan yerleşik bağlayıcılara hızlı erişim sağlayabilirsiniz.
Her konuşma, "konuşma girdileri" aracılığıyla yapılandırılmış bir geçmişi koruyarak, bağlamın titizlikle korunmasını sağlar. Bu durumsallık, geliştiricilerin geçmiş konuşmaları görüntülemesine, herhangi bir etkileşime sorunsuz bir şekilde devam etmesine ve hatta geçmişin herhangi bir noktasından yeni konuşma yolları başlatmasına olanak tanır. Ayrıca, API akış çıktılarını destekleyerek gerçek zamanlı güncellemeler ve dinamik etkileşimler sağlar.
Aracı Orkestrasyonu: İşbirliğinin Gücü
Agents API'sinin gerçek farklılaştırıcı gücü, birden fazla aracı orkestre etme yeteneğinde ortaya çıkar. Bu, tek bir monolitik YZ ile ilgili değil; birbiriyle uyum içinde çalışan, uzmanlaşmış aracıların bir senfonisiyle ilgili. Dinamik orkestrasyon sayesinde, karmaşık bir sorunun farklı yönlerini ele almak için her biri benzersiz becerilerini katkıda bulunarak, aracıların gerektiği gibi bir konuşmaya eklenmesi veya çıkarılması sağlanabilir.
Devir teslimlerle bir aracı iş akışı oluşturmak için:
- Aracılar Oluşturun: Her biri rolüne göre uyarlanmış belirli araçlar, modeller ve talimatlarla donatılmış, gerekli tüm aracıları tanımlayın ve oluşturun.
- Devir Teslimleri Tanımlayın: Hangi aracıların görevleri başkalarına devredebildiğini belirtin. Örneğin, birincil bir müşteri hizmetleri aracı, teknik bir sorguyu uzman bir sorun giderme aracısına veya bir faturalandırma sorgusunu bir finans aracısına devredebilir.
Bu devir teslimler, sorunsuz bir eylem zinciri sağlar. Tek bir kullanıcı isteği, her biri kendi belirlenmiş bölümünü özerk olarak ele alan, birden fazla aracı arasında bir dizi görevi tetikleyebilir. Bu işbirlikçi yaklaşım, gelişmiş gerçek dünya uygulamaları için sorun çözümünde benzeri görülmemiş verimlilik ve etkililik sağlar.
Mistral Agents API'sinin Temel Kullanımı
Mistral Agents API'sinin yeteneklerini anladıktan sonra, onunla nasıl etkileşim kuracağımızı inceleyelim. API, üç yeni birincil nesne sunar:
- Aracılar: Bunlar, bir modelin yeteneklerini artıran yapılandırmalardır. Bir aracı tanımı, kullanılacak model, erişebileceği araçlar, sistem talimatları (istemler) ve varsayılan tamamlama parametreleri gibi önceden seçilmiş değerleri içerir.
- Konuşma: Bu nesne, bir asistanla yapılan etkileşimlerin ve geçmiş olayların geçmişini temsil eder. Kullanıcı mesajlarını, asistan yanıtlarını ve araç yürütmelerinin kayıtlarını içerir.
- Girdi: Bir girdi, kullanıcı veya bir asistan tarafından oluşturulan, bir konuşma içindeki bireysel bir eylem veya olaydır. Etkileşimleri temsil etmek için esnek ve etkileyici bir yol sunarak, olayları tanımlama üzerinde daha ince bir kontrol sağlar.
Özellikle, önce resmi bir "Aracı" nesnesi oluşturup referans vermeden, durumsal konuşmalar ve yerleşik bağlayıcılar gibi birçok özellikten yararlanabilirsiniz. Bu, daha basit kullanım durumları için esneklik sağlar.
Bir Aracı Oluşturma
Özel bir aracı tanımlamak için, API'ye birkaç parametre belirterek bir istekte bulunursunuz:
model
: Temel Mistral modeli (örneğin,mistral-medium-latest
).name
: Aracınız için açıklayıcı bir ad.description
: Aracın amacı veya başarmak için tasarlandığı görev hakkında kısa bir açıklama.instructions
(isteğe bağlı): Aracın davranışını ve yanıtlarını yönlendiren sistem istemi.tools
(isteğe bağlı): Aracın kullanabileceği araçların bir listesi. Araç türleri şunları içerir:function
: Sohbet tamamlamalarında standart işlev çağırmaya benzer, kullanıcı tanımlı araçlar.web_search
/web_search_premium
: Yerleşik web arama araçları.code_interpreter
: Kod yürütme için yerleşik araç.image_generation
: Görüntü oluşturmak için yerleşik araç.completion_args
(isteğe bağlı): Sıcaklık, top_p vb. gibi standart sohbet tamamlama örnekleyici argümanları.
İşte basit bir aracı oluşturmak için bir cURL isteği örneği:
curl --location "https://api.mistral.ai/v1/agents" \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "Authorization: Bearer $MISTRAL_API_KEY" \
--data '{
"model": "mistral-medium-latest",
"name": "Simple Agent",
"description": "A simple Agent with persistent state."
}'
Bir Aracı Güncelleme
Aracılar oluşturulduktan sonra güncellenebilir. Argümanlar, oluşturma için olanlarla aynıdır. Bu işlem, güncellenmiş ayarlara sahip yeni bir aracı nesnesiyle sonuçlanır ve bu da aracılarının sürüm oluşturulmasına olanak tanır.
curl --location "https://api.mistral.ai/v1/agents/<agent_id>" \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "Authorization: Bearer $MISTRAL_API_KEY" \
--data '{
"completion_args": {
"temperature": 0.3,
"top_p": 0.95
},
"description": "An edited simple agent."
}'
Konuşmaları Yönetme
Bir aracı oluşturulduktan sonra (veya doğrudan erişim kullanıyorsanız), konuşmalar başlatabilirsiniz.
Bir Konuşma Başlatma:
Şunları sağlamanız gerekir:
agent_id
: Aracının kimliği (önceden tanımlanmış bir aracı kullanılıyorsa).inputs
: İlk mesaj, basit bir dize veya mesaj nesnelerinin bir listesi olabilir.
Bu istek birconversation_id
döndürür.
Örnek (basit dize girişi):
curl --location "https://api.mistral.ai/v1/conversations" \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "Authorization: Bearer $MISTRAL_API_KEY" \
--data '{
"inputs": "Who is Albert Einstein?",
"stream": false,
"agent_id": "<agent_id>"
}'
Bir Konuşmaya Devam Etme:
Mevcut bir konuşmaya eklemek için:
conversation_id
: Devam edilecek konuşmanın kimliği.inputs
: Sonraki mesaj veya yanıt (dize veya mesaj listesi).
Durum saklanıyorsa, her devam etme yeni birconversation_id
sağlar.store=False
ayarını yaparak bulut depolamadan vazgeçebilirsiniz.handoff_execution
parametresi, aracı devir teslimlerinin nasıl yönetildiğini kontrol eder:server
(varsayılan, Mistral'in bulutu tarafından işlenir) veyaclient
(yanıt, devir teslimi yönetmek için kullanıcıya döndürülür).
Örnek:
curl --location "https://api.mistral.ai/v1/conversations/<conv_id>" \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "Authorization: Bearer $MISTRAL_API_KEY" \
--data '{
"inputs": "Translate to French.",
"stream": false,
"store": true,
"handoff_execution": "server"
}'
Akış Çıktısı
Gerçek zamanlı etkileşimler için, hem konuşmaları başlatma hem de devam ettirme, stream: true
ayarlanarak ve Accept
başlığının text/event-stream
olduğundan emin olarak akışa alınabilir.
curl --location "https://api.mistral.ai/v1/conversations" \
--header 'Content-Type: application/json' \
--header 'Accept: text/event-stream' \
--header "Authorization: Bearer $MISTRAL_API_KEY" \
--data '{
"inputs": "Who is Albert Einstein?",
"stream": true,
"agent_id": "ag_06811008e6e07cb48000fd3f133e1771"
}'
Akış yaparken, aşağıdakiler gibi yanıtın ilerlemesini ve içeriğini gösteren çeşitli olay türleri alacaksınız:
conversation.response.started
: Konuşma yanıtının başlangıcını işaretler.message.output.delta
: Modelin yanıtı için bir içerik (token) parçası.tool.execution.started
/tool.execution.done
: Bir araç yürütmenin yaşam döngüsünü gösterir.agent.handoff.started
/agent.handoff.done
: Bir aracı devir tesliminin başlangıcını ve sonunu işaret eder.
Bu temel işlemler, Mistral aracılarıyla dinamik ve etkileşimli uygulamalar oluşturmanın temelini oluşturur.
Mistral Agents API'sini Model Context Protocol (MCP) ile Entegre Etme
Yerleşik bağlayıcılar önemli bir güç sunarken, Mistral Agents'ın gerçek genişletilebilirliği, Model Context Protocol (MCP) ile birleştirildiğinde parlar.
MCP Nedir?
Model Context Protocol (MCP), YZ modellerinin çeşitli harici veri kaynakları, araçlar ve API'lerle entegrasyonunu kolaylaştırmak için tasarlanmış açık bir standarttır. YZ sistemlerinin gerçek dünya bağlamsal bilgilere verimli bir şekilde erişmesini ve bunları kullanmasını sağlayan standartlaştırılmış, güvenli bir arayüz sağlar. Çok sayıda özel entegrasyon oluşturmak ve sürdürmek yerine, MCP, YZ modellerinin canlı verilere ve sistemlere bağlanması için birleşik bir yol sunarak daha alakalı, doğru ve güçlü yanıtlar sağlar. Ayrıntılı bilgi için, resmi Model Context Protocol belgelerine bakın.
Mistral'in Python SDK'sı, aracıları MCP İstemcileriyle bağlamak için sorunsuz entegrasyon mekanizmaları sağlar. Bu, aracılarınızın, yerel bir araç, üçüncü taraf bir API veya özel bir kurumsal sistem olsun, bir MCP arayüzü sunan herhangi bir hizmet veya veri kaynağıyla etkileşim kurmasını sağlar.

Mistral Agents ile MCP'yi kullanmaya yönelik üç yaygın senaryoyu inceleyeceğiz: yerel bir MCP sunucusu, kimlik doğrulaması olmayan uzak bir MCP sunucusu ve kimlik doğrulaması olan uzak bir MCP sunucusu. Tüm örnekler eşzamansız Python kodu kullanacaktır.
Senaryo 1: Yerel Bir MCP Sunucusu Kullanma
Mistral aracınızın etkileşim kurmasını istediğiniz yerel bir komut dosyanız veya hizmetiniz (örneğin, özel bir hava durumu bilgisi sağlayıcısı) olduğunu hayal edin.
Adım 1: Mistral İstemcisini ve Kurulumu Başlatınmistralai
ve mcp
'den gerekli modülleri içe aktarın. Buna Mistral
, RunContext
, StdioServerParameters
(yerel işlem tabanlı MCP sunucuları için) ve MCPClientSTDIO
dahildir.
import asyncio
import os
from pathlib import Path
from mistralai import Mistral
from mistralai.extra.run.context import RunContext
from mcp import StdioServerParameters
from mistralai.extra.mcp.stdio import MCPClientSTDIO
from mistralai.types import BaseModel
cwd = Path(__file__).parent
MODEL = "mistral-medium-latest" # Or your preferred model
async def main_local_mcp():
api_key = os.environ["MISTRAL_API_KEY"]
client = Mistral(api_key=api_key)
# Define parameters for the local MCP server (e.g., running a Python script)
server_params = StdioServerParameters(
command="python",
args=[str((cwd / "mcp_servers/stdio_server.py").resolve())], # Path to your MCP server script
env=None,
)
# Create an agent
weather_agent = client.beta.agents.create(
model=MODEL,
name="Local Weather Teller",
instructions="You can tell the weather using a local MCP tool.",
description="Fetches weather from a local source.",
)
# Define expected output format (optional, but good for structured data)
class WeatherResult(BaseModel):
user: str
location: str
temperature: float
# Create a Run Context
async with RunContext(
agent_id=weather_agent.id,
output_format=WeatherResult, # Optional: For structured output
continue_on_fn_error=True,
) as run_ctx:
# Create and register MCP client
mcp_client = MCPClientSTDIO(stdio_params=server_params)
await run_ctx.register_mcp_client(mcp_client=mcp_client)
# Example of registering a local Python function as a tool
import random
@run_ctx.register_func
def get_location(name: str) -> str:
"""Function to get a random location for a user."""
return random.choice(["New York", "London", "Paris"])
# Run the agent
run_result = await client.beta.conversations.run_async(
run_ctx=run_ctx,
inputs="Tell me the weather in John's location currently.",
)
print("Local MCP - All run entries:")
for entry in run_result.output_entries:
print(f"{entry}\n")
if run_result.output_as_model:
print(f"Local MCP - Final model output: {run_result.output_as_model}")
else:
print(f"Local MCP - Final text output: {run_result.output_as_text}")
# if __name__ == "__main__":
# asyncio.run(main_local_mcp())
Bu kurulumda, stdio_server.py
, stdin/stdout üzerinden iletişim kuran, MCP sunucu mantığını uygulayan komut dosyanız olacaktır. RunContext
etkileşimi yönetir ve register_mcp_client
yerel MCP sunucusunu aracıya bir araç olarak kullanılabilir hale getirir. Ayrıca, @run_ctx.register_func
kullanarak doğrudan yerel Python işlevlerini de kaydedebilirsiniz.
Yerel Bir MCP Sunucusu ile Akış:
Akış yapmak için, client.beta.conversations.run_stream_async
kullanın ve olaylar geldikçe işleyin:
# Inside RunContext, after MCP client registration
# events = await client.beta.conversations.run_stream_async(
# run_ctx=run_ctx,
# inputs="Tell me the weather in John's location currently, stream style.",
# )
# streamed_run_result = None
# async for event in events:
# if isinstance(event, RunResult): # Assuming RunResult is defined or imported
# streamed_run_result = event
# else:
# print(f"Stream event: {event}")
# if streamed_run_result:
# # Process streamed_run_result
# pass
Senaryo 2: Kimlik Doğrulaması Olmayan Uzak Bir MCP Sunucusu Kullanma
Birçok genel veya dahili hizmet, kimlik doğrulaması gerektirmeden HTTP/SSE üzerinden bir MCP arayüzü sunabilir.
from mistralai.extra.mcp.sse import MCPClientSSE, SSEServerParams
async def main_remote_no_auth_mcp():
api_key = os.environ["MISTRAL_API_KEY"]
client = Mistral(api_key=api_key)
# Define the URL for the remote MCP server (e.g., Semgrep's public MCP)
server_url = "https://mcp.semgrep.ai/sse"
mcp_client = MCPClientSSE(sse_params=SSEServerParams(url=server_url, timeout=100))
async with RunContext(
model=MODEL, # Can use agent_id too if an agent is pre-created
) as run_ctx:
await run_ctx.register_mcp_client(mcp_client=mcp_client)
run_result = await client.beta.conversations.run_async(
run_ctx=run_ctx,
inputs="Can you write a hello_world.py file and then check it for security vulnerabilities using available tools?",
)
print("Remote No-Auth MCP - All run entries:")
for entry in run_result.output_entries:
print(f"{entry}\n")
print(f"Remote No-Auth MCP - Final Response: {run_result.output_as_text}")
# if __name__ == "__main__":
# asyncio.run(main_remote_no_auth_mcp())
Burada, MCPClientSSE
, uzak URL'ye işaret eden SSEServerParams
ile kullanılır. Daha sonra aracı, bu uzak MCP sunucusu tarafından sağlanan araçlardan yararlanabilir. Akış, run_stream_async
kullanılarak yerel MCP örneğiyle aynı deseni izler.
Senaryo 3: Kimlik Doğrulaması Olan Uzak Bir MCP Sunucusu Kullanma (OAuth)
OAuth2 kimlik doğrulaması gerektiren hizmetler (Linear, Jira vb. gibi) için, yetkilendirme akışını işlemek için birkaç adım daha gerekir.
from http.server import BaseHTTPRequestHandler, HTTPServer
import threading
import webbrowser
from mistralai.extra.mcp.auth import build_oauth_params
CALLBACK_PORT = 16010 # Ensure this port is free
# Callback server setup (simplified from source)
def run_callback_server_util(callback_func, auth_response_dict):
class OAuthCallbackHandler(BaseHTTPRequestHandler):
def do_GET(self):
if "/callback" in self.path or "/oauth/callback" in self.path: # More robust check
auth_response_dict["url"] = self.path
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(b"<html><body>Authentication successful. You may close this window.</body></html>")
callback_func() # Signal completion
threading.Thread(target=self.server.shutdown).start()
else:
self.send_response(404)
self.end_headers()
server_address = ("localhost", CALLBACK_PORT)
httpd = HTTPServer(server_address, OAuthCallbackHandler)
threading.Thread(target=httpd.serve_forever, daemon=True).start() # Use daemon thread
redirect_url = f"http://localhost:{CALLBACK_PORT}/oauth/callback"
return httpd, redirect_url
async def main_remote_auth_mcp():
api_key = os.environ["MISTRAL_API_KEY"]
client = Mistral(api_key=api_key)
server_url = "https://mcp.linear.app/sse" # Example: Linear MCP
mcp_client_auth = MCPClientSSE(sse_params=SSEServerParams(url=server_url))
callback_event = asyncio.Event()
event_loop = asyncio.get_event_loop()
auth_response_holder = {"url": ""}
if await mcp_client_auth.requires_auth():
httpd, redirect_url = run_callback_server_util(
lambda: event_loop.call_soon_threadsafe(callback_event.set),
auth_response_holder
)
try:
oauth_params = await build_oauth_params(mcp_client_auth.base_url, redirect_url=redirect_url)
mcp_client_auth.set_oauth_params(oauth_params=oauth_params)
login_url, state = await mcp_client_auth.get_auth_url_and_state(redirect_url)
print(f"Please go to this URL and authorize: {login_url}")
webbrowser.open(login_url, new=2)
await callback_event.wait() # Wait for OAuth callback
token = await mcp_client_auth.get_token_from_auth_response(
auth_response_holder["url"], redirect_url=redirect_url, state=state
)
mcp_client_auth.set_auth_token(token)
print("Authentication successful.")
except Exception as e:
print(f"Error during authentication: {e}")
return # Exit if auth fails
finally:
if 'httpd' in locals() and httpd:
httpd.shutdown()
httpd.server_close()
async with RunContext(model=MODEL) as run_ctx: # Or agent_id
await run_ctx.register_mcp_client(mcp_client=mcp_client_auth)
run_result = await client.beta.conversations.run_async(
run_ctx=run_ctx,
inputs="Tell me which projects do I have in my Linear workspace?",
)
print(f"Remote Auth MCP - Final Response: {run_result.output_as_text}")
# if __name__ == "__main__":
# asyncio.run(main_remote_auth_mcp())
Bu, OAuth yönlendirmesini yakalamak için yerel bir HTTP sunucusu kurmayı, kullanıcıyı sağlayıcının yetkilendirme sayfasından yönlendirmeyi, alınan kodu bir erişim belirteciyle değiştirmeyi ve ardından MCPClientSSE
'yi bu belirteçle yapılandırmayı içerir. Kimlik doğrulamasından sonra, aracı korumalı MCP hizmetiyle etkileşim kurabilir. Akış yine yerleşik deseni izler.
Sonuç: Gelecek Aracı ve Birbirine Bağlı
Mistral Agents API, özellikle Model Context Protocol ile desteklendiğinde, yeni nesil YZ uygulamaları oluşturmak için sağlam ve esnek bir platform sunar. Aracıların yalnızca akıl yürütmesini ve iletişim kurmasını değil, aynı zamanda çok çeşitli araçlar, veri kaynakları ve hizmetlerle etkileşim kurmasını sağlayarak, geliştiriciler karmaşık, gerçek dünya sorunlarını ele alabilen gerçekten akıllı sistemler oluşturabilirler. İster karmaşık iş akışlarını otomatikleştiriyor, ister derinlemesine bağlamsallaştırılmış yardım sağlıyor, isterse insan-YZ işbirliğinin yeni biçimlerine öncülük ediyor olun, Mistral Agents ve MCP'nin kombinasyonu bu heyecan verici gelecek için temel araç setini sağlar. MCP standardı daha geniş çapta benimsendikçe, birbirine bağlı ve son derece yetenekli YZ aracıları oluşturma potansiyeli artmaya devam edecektir.
Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?
Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini