Mistral Medium 3.5 چیست؟ آموزش کامل مدل Reasoning، Coding و AI Agent با API درواره

Mistral Medium 3.5 مدل 128 میلیارد پارامتری برای Reasoning، برنامه‌نویسی، تحلیل تصویر و ساخت AI Agent است. در این راهنما استفاده از آن با API درواره را یاد می‌گیرید.

Share
Mistral Medium 3.5 چیست؟ آموزش کامل مدل Reasoning، Coding و AI Agent با API درواره


Mistral Medium 3.5 یک مدل هوش مصنوعی چندوجهی از شرکت Mistral AI است که قابلیت‌های Instruction Following، Reasoning، برنامه‌نویسی، تحلیل تصویر، Function Calling و اجرای وظایف طولانی AI Agent را در یک مدل واحد ترکیب می‌کند.

این مدل برخلاف مدل‌هایی که فقط برای چت، استدلال یا Coding بهینه شده‌اند، تلاش می‌کند مجموعه‌ای از قابلیت‌های عمومی و تخصصی را هم‌زمان ارائه دهد. در نتیجه، توسعه‌دهنده می‌تواند از یک Model ID برای درخواست‌های روزمره، مسائل پیچیده، تحلیل تصویر، تولید کد و Tool Calling استفاده کند.

Mistral Medium 3.5 یک مدل Dense با حدود ۱۲۸ میلیارد پارامتر و Context Window برابر با 256K Token است. این مدل برای Workflowهای طولانی و استفاده مکرر از ابزارها طراحی شده و می‌تواند سطح Reasoning را متناسب با پیچیدگی درخواست تغییر دهد.

کاربردهای اصلی آن عبارت‌اند از:

  • ساخت AI Agent
  • دستیار برنامه‌نویسی
  • Coding Agent
  • تحلیل Repository
  • طراحی معماری
  • تحقیق چندمرحله‌ای
  • تحلیل تصویر و Screenshot
  • RAG سازمانی
  • پردازش اسناد طولانی
  • Function Calling
  • تولید Structured Output
  • اتوماسیون فرایندهای چندمرحله‌ای

برای استفاده از Mistral Medium 3.5 می‌توانید از API درواره استفاده کنید و مدل را با API سازگار با OpenAI به پروژه‌های Python، JavaScript، TypeScript، PHP و سایر زبان‌ها متصل کنید.

برای مشاهده قیمت و وضعیت فعال مدل به صفحه مدل‌های درواره مراجعه کنید.

مشخصات Mistral Medium 3.5

ویژگیتوضیح
نام مدلMistral Medium 3.5
توسعه‌دهندهMistral AI
نسخه26.04
نوع مدلMultimodal Large Language Model
معماریDense Transformer
تعداد پارامترهاحدود ۱۲۸ میلیارد
Context Window256K Token
ورودی متندارد
ورودی تصویردارد
خروجی اصلیمتن
Reasoningقابل تنظیم
Function Callingدارد
Structured Outputدارد
برنامه‌نویسیدارد
FIMطبق قابلیت‌های رسمی مدل
کاربرد اصلیAgentic و Coding
Model ID دروارهmistralai/mistral-medium-3.5
Base URL دروارهhttps://api.darvareh.ir/v1

Model ID ممکن است با به‌روزرسانی نسخه یا Provider تغییر کند. پیش از قراردادن آن در Production، شناسه فعال را از صفحه مدل‌های درواره کپی کنید.

معماری Dense چیست؟

مدل‌های زبانی بزرگ معمولاً از معماری Dense یا Mixture of Experts استفاده می‌کنند.

در یک مدل Dense، تمام پارامترهای اصلی مدل برای پردازش هر Token درگیر می‌شوند. در معماری Mixture of Experts فقط تعدادی Expert منتخب فعال می‌شوند.

Mistral Medium 3.5 یک مدل Dense با حدود ۱۲۸ میلیارد پارامتر است. مزایای احتمالی معماری Dense عبارت‌اند از:

  • رفتار نسبتاً یکپارچه‌تر
  • Routing داخلی ساده‌تر
  • پایداری مناسب در وظایف متنوع
  • استقرار قابل پیش‌بینی‌تر
  • استفاده کامل از ظرفیت مدل در هر Token

در مقابل، مدل Dense ممکن است برای استنتاج به منابع محاسباتی بیشتری نسبت به یک مدل MoE با پارامتر فعال کمتر نیاز داشته باشد.

برای کاربر API، مدیریت معماری داخلی لازم نیست؛ اما نوع معماری در سرعت، هزینه و نحوه استقرار مدل اهمیت دارد.

چرا Mistral Medium 3.5 یک مدل «Merged» است؟

در مدل‌های نسل قبلی، ممکن بود برای هر وظیفه به مدل متفاوتی نیاز باشد:

  • مدل Instruct برای پاسخ‌گویی
  • مدل Reasoning برای مسائل پیچیده
  • مدل Coding برای برنامه‌نویسی
  • مدل Agent برای Tool Calling

Mistral Medium 3.5 این توانایی‌ها را در یک مجموعه وزن ادغام کرده است. هدف این است که یک مدل بتواند براساس درخواست، رفتار مناسب را انتخاب کند.

برای مثال:

یک متن کوتاه را بازنویسی کن.

به Reasoning سنگین نیاز ندارد.

اما درخواست زیر پیچیده‌تر است:

علت پردازش تکراری سفارش‌ها در معماری Event-Driven را تحلیل کن،
سه راه‌حل را مقایسه کن و برنامه مهاجرت بدون Downtime ارائه بده.

مدل می‌تواند برای درخواست دوم از Reasoning بیشتری استفاده کند.

این رویکرد تعداد Model IDهای لازم در محصول را کاهش می‌دهد، هرچند Model Routing همچنان برای کنترل هزینه و Latency مفید است.

Reasoning قابل تنظیم

یکی از مهم‌ترین قابلیت‌های Mistral Medium 3.5، امکان کنترل میزان Reasoning است.

طبق معرفی رسمی مدل، توسعه‌دهنده می‌تواند میزان تلاش استدلالی را متناسب با درخواست تنظیم کند. بسته به مسیر API فعال، پارامتری مانند reasoning_effort ممکن است قابل استفاده باشد.

سطوح متداول می‌توانند شامل این موارد باشند:

none
low
medium
high

Reasoning خاموش یا None

مناسب برای:

  • بازنویسی متن
  • طبقه‌بندی
  • استخراج فیلد
  • خلاصه کوتاه
  • پاسخ‌های ساده
  • تولید Boilerplate

Reasoning پایین

مناسب برای:

  • پرسش عمومی
  • تولید کد ساده
  • تحلیل کوتاه
  • Tool Calling ساده
  • تولید JSON

Reasoning متوسط

مناسب برای:

  • تحلیل سند
  • Code Review
  • رفع باگ
  • طراحی API
  • مقایسه چند گزینه
  • Agent چندمرحله‌ای

Reasoning بالا

مناسب برای:

  • طراحی معماری
  • Debug پیچیده
  • تحلیل Repository
  • مهاجرت نرم‌افزاری
  • تحقیق عمیق
  • Agentهای طولانی
  • ترکیب چند منبع

Reasoning بیشتر معمولاً باعث افزایش Token خروجی، زمان پاسخ و هزینه می‌شود. بنابراین نباید آن را برای تمام درخواست‌ها روی بالاترین سطح قرار داد.

پشتیبانی دقیق پارامتر را برای Model ID فعال درواره بررسی کنید. اگر مسیر API آن را نپذیرفت، پارامتر را حذف کنید.

Context Window برابر با 256K Token

Mistral Medium 3.5 از Context Window برابر با 256K Token پشتیبانی می‌کند.

Context مجموع این اطلاعات است:

  • System Prompt
  • پیام کاربر
  • تاریخچه گفتگو
  • محتوای اسناد
  • اطلاعات استخراج‌شده از تصویر
  • خروجی ابزارها
  • پاسخ در حال تولید

Context 256K برای کاربردهای زیر مناسب است:

  • تحلیل اسناد طولانی
  • بررسی چند سند
  • پردازش Repository
  • نگهداری تاریخچه Agent
  • تحلیل Log
  • ترکیب نتایج ابزارها
  • Refactoring چندفایلی
  • تحلیل گزارش‌های سازمانی

بااین‌حال، ارسال تمام داده‌های موجود همیشه روش مناسبی نیست.

اصول مدیریت Long Context

  • فقط اطلاعات مرتبط را انتخاب کنید.
  • اسناد را با RAG بازیابی کنید.
  • نتایج را Rerank کنید.
  • اطلاعات تکراری را حذف کنید.
  • خروجی ابزارهای قدیمی را خلاصه کنید.
  • هدف و محدودیت‌ها را در State نگه دارید.
  • اطلاعات حیاتی را به‌وضوح برچسب‌گذاری کنید.
  • برای هر سند شناسه منبع تعریف کنید.

قابلیت Multimodal

Mistral Medium 3.5 می‌تواند متن و تصویر را در یک درخواست پردازش کند.

کاربردهای ورودی تصویر:

  • تحلیل Screenshot
  • استخراج اطلاعات از نمودار
  • بررسی رابط کاربری
  • تحلیل Diagram
  • مقایسه طرح و پیاده‌سازی
  • پاسخ به سؤال درباره تصویر
  • پردازش سند تصویری
  • تحلیل جدول
  • شناسایی اجزای صفحه
  • تولید توضیح فنی

خروجی مدل متن است. این مدل برای تولید تصویر ساخته نشده است.

قابلیت برنامه‌نویسی

Mistral Medium 3.5 برای Coding و Agentic Coding بهینه شده است.

کاربردهای مهم:

  • تولید کد
  • توضیح کد
  • Refactoring
  • Code Review
  • رفع باگ
  • تولید تست
  • طراحی API
  • تحلیل Stack Trace
  • مهاجرت Framework
  • تحلیل Repository
  • نوشتن مستندات
  • تبدیل زبان برنامه‌نویسی

در Benchmark اعلام‌شده توسط سازنده، این مدل در SWE-Bench Verified عملکرد قوی نشان داده است؛ اما Benchmark عمومی جایگزین تست روی Repository واقعی شما نیست.

Agentic Workflow چیست؟

Agentic Workflow فرایندی است که مدل فقط پاسخ نهایی تولید نمی‌کند؛ بلکه برای رسیدن به هدف چند اقدام انجام می‌دهد.

جریان معمول:

هدف کاربر
برنامه‌ریزی
انتخاب ابزار
اجرای ابزار توسط Backend
مشاهده نتیجه
اصلاح برنامه
ابزار بعدی
ارزیابی نتیجه
پاسخ نهایی

برای مثال، یک Coding Agent ممکن است:

  1. ساختار پروژه را فهرست کند.
  2. کد را جست‌وجو کند.
  3. فایل مرتبط را بخواند.
  4. تست را اجرا کند.
  5. علت خطا را پیدا کند.
  6. Patch تولید کند.
  7. تست را دوباره اجرا کند.
  8. نتیجه نهایی را گزارش دهد.

Mistral Medium 3.5 برای Workflowهایی طراحی شده که چند Tool Call و چند مرحله Reasoning دارند.

کاربردهای Mistral Medium 3.5

۱. ساخت دستیار سازمانی

یک دستیار سازمانی می‌تواند به منابع زیر متصل شود:

  • مستندات
  • پایگاه دانش
  • CRM
  • سیستم مدیریت پروژه
  • اطلاعات محصول
  • APIهای داخلی
  • پایگاه داده
  • سیستم Ticket
  • گزارش‌های سازمانی

مدل باید برای اطلاعات جاری از ابزار استفاده کند و داده را حدس نزند.

۲. ساخت Coding Agent

ابزارهای متداول Coding Agent:

list_files
search_code
read_file
get_symbols
apply_patch
run_tests
run_linter
run_type_check
get_git_diff

بهتر است دسترسی Agent مرحله‌بندی شود:

مرحله بررسی

  • خواندن فایل
  • جست‌وجو
  • اجرای تست
  • طراحی برنامه تغییرات

مرحله اجرا

  • اعمال Patch
  • اجرای Formatter
  • اجرای Test
  • بررسی Diff

این جداسازی از تغییرات ناخواسته جلوگیری می‌کند.

۳. تحلیل Repository

مدل می‌تواند به سؤال‌هایی مانند این پاسخ دهد:

  • Entry Point پروژه کجاست؟
  • معماری سیستم چگونه است؟
  • جریان درخواست از HTTP تا Database چیست؟
  • کدام فایل‌ها به یک Interface وابسته‌اند؟
  • تست‌های یک قابلیت کجا هستند؟
  • تغییر یک Schema چه اثرهایی دارد؟
  • علت احتمالی یک باگ چندماژوله چیست؟
  • چه بخش‌هایی نیاز به Refactoring دارند؟

مدل باید پیش از نتیجه‌گیری فایل واقعی را از طریق ابزار بخواند.

۴. تحلیل تصویر رابط کاربری

می‌توان Screenshot یک صفحه را به مدل داد و از آن خواست:

  • Componentها را شناسایی کند.
  • Component Tree بسازد.
  • مشکلات Responsive را پیدا کند.
  • Accessibility را بررسی کند.
  • Stateهای ناقص را تشخیص دهد.
  • Design Tokenها را استخراج کند.
  • کد React پیشنهاد دهد.

مدل باید Observation را از Inference جدا کند؛ زیرا رفتارهای تعاملی از روی یک تصویر ثابت قابل تشخیص نیستند.

۵. تحقیق چندمرحله‌ای

یک Research Agent می‌تواند:

  1. سؤال را به زیرموضوع تقسیم کند.
  2. منابع را جست‌وجو کند.
  3. اطلاعات مرتبط را استخراج کند.
  4. ادعاها را با منابع پیوند دهد.
  5. تناقض‌ها را پیدا کند.
  6. شکاف اطلاعاتی را مشخص کند.
  7. گزارش نهایی بسازد.

جست‌وجوی اینترنت یا منابع داخلی باید توسط ابزار انجام شود؛ مدل به‌تنهایی به اطلاعات لحظه‌ای دسترسی ندارد.

۶. RAG سازمانی

Mistral Medium 3.5 می‌تواند مدل تولید پاسخ در سیستم RAG باشد.

جریان پیشنهادی:

پرسش
تشخیص Intent
ساخت Query
Hybrid Search
Reranking
انتخاب اسناد
ساخت Context
تولید پاسخ
اعتبارسنجی Citation

برای اطلاعات سازمانی بهتر است پاسخ فقط براساس اسناد بازیابی‌شده ساخته شود.

۷. Structured Data Extraction

مدل می‌تواند داده را از متن یا تصویر استخراج و به JSON تبدیل کند.

کاربردها:

  • استخراج مشخصات محصول
  • دسته‌بندی بازخورد
  • تبدیل ایمیل به Task
  • استخراج موجودیت
  • تحلیل Ticket
  • استخراج داده جدول
  • تبدیل گزارش به ساختار استاندارد
  • تولید Metadata

تمام خروجی‌ها باید با Schema اعتبارسنجی شوند.

۸. مهاجرت نرم‌افزاری

نمونه وظایف:

  • JavaScript به TypeScript
  • Python 2 به Python 3
  • ارتقای Framework
  • تغییر ORM
  • مهاجرت REST API
  • تبدیل Monolith به Modular Monolith
  • به‌روزرسانی Dependencyها
  • مهاجرت Test Framework

برای پروژه بزرگ، مدل باید تغییرات را مرحله‌ای و قابل Rollback طراحی کند.

۹. بررسی نهایی خروجی مدل‌های دیگر

در معماری چندمدلی می‌توان Draft را با مدل کوچک‌تر تولید و Review را به Mistral Medium 3.5 سپرد.

مدل Reviewer می‌تواند بررسی کند:

  • آیا دستور رعایت شده است؟
  • پاسخ کامل است؟
  • تناقض وجود دارد؟
  • JSON معتبر است؟
  • Citationها پشتیبانی می‌شوند؟
  • معیار پذیرش برقرار است؟
  • چه ریسک‌هایی باقی مانده‌اند؟

مزایای Mistral Medium 3.5

ترکیب Instruct، Reasoning و Coding

برای وظایف مختلف نیاز کمتری به تغییر مدل وجود دارد.

Reasoning قابل تنظیم

می‌توان میان سرعت و کیفیت تعادل ایجاد کرد.

Context برابر با 256K

برای اسناد، کد و Agentهای طولانی مناسب است.

تحلیل تصویر

مدل می‌تواند متن و تصویر را در یک درخواست پردازش کند.

Function Calling

برای Agentهای متصل به ابزار کاربردی است.

Structured Output

خروجی قابل پردازش برای Backend تولید می‌کند.

برنامه‌نویسی قوی

برای Coding، Code Review و Workflowهای سطح Repository مناسب است.

محدودیت‌های مدل

هزینه بیشتر از مدل‌های کوچک

یک مدل 128B برای طبقه‌بندی و استخراج ساده ممکن است بیش از نیاز باشد.

Latency Reasoning

Reasoning بالا می‌تواند زمان پاسخ را افزایش دهد.

خروجی متنی

مدل تصویر یا Audio تولید نمی‌کند.

احتمال Hallucination

ممکن است API، فایل یا اطلاعات غیرواقعی تولید کند.

کیفیت فارسی نیازمند Evaluation است

پشتیبانی چندزبانه باید روی داده واقعی فارسی آزمایش شود.

Context بزرگ تضمین کیفیت نیست

اطلاعات نامرتبط می‌توانند کیفیت تصمیم مدل را کاهش دهند.

استفاده با API درواره

برای شروع:

  1. در درواره ثبت‌نام کنید.
  2. API Key دریافت کنید.
  3. مدل را در صفحه مدل‌ها پیدا کنید.
  4. Model ID را کپی کنید.
  5. درخواست را از Backend ارسال کنید.

تنظیمات:

Base URL: https://api.darvareh.ir/v1
Model ID درواره: mistralai/mistral-medium-3.5

API Key را در Frontend یا Repository عمومی قرار ندهید.

نمونه درخواست cURL

curl https://api.darvareh.ir/v1/chat/completions \
  -H "Authorization: Bearer YOUR_DARVAREH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mistralai/mistral-medium-3.5",
    "messages": [
      {
        "role": "system",
        "content": "You are a principal software engineer. State assumptions and produce practical, testable solutions."
      },
      {
        "role": "user",
        "content": "برای یک سیستم سفارش Event-Driven، معماری idempotency، retry، dead-letter queue و reconciliation را طراحی کن."
      }
    ],
    "temperature": 0.2,
    "max_tokens": 6000
  }'

اتصال به Python

نصب SDK:

pip install openai

تعریف API Key:

export DARVAREH_API_KEY="YOUR_DARVAREH_API_KEY"

نمونه کد:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DARVAREH_API_KEY"],
    base_url="https://api.darvareh.ir/v1"
)

response = client.chat.completions.create(
    model="mistralai/mistral-medium-3.5",
    messages=[
        {
            "role": "system",
            "content": """
تو یک مهندس ارشد Python هستی.

قوانین:
- فرضیات را صریح بنویس.
- راه‌حل باید قابل تست باشد.
- Failure Modeها را بررسی کن.
- اطلاعات ناموجود را حدس نزن.
"""
        },
        {
            "role": "user",
            "content": """
برای FastAPI یک سرویس پردازش Webhook طراحی کن.

نیازمندی‌ها:
- signature verification
- idempotency
- PostgreSQL
- concurrent delivery handling
- retry
- structured logging
- Unit Test و Integration Test
"""
        }
    ],
    temperature=0.2,
    max_tokens=6000
)

print(response.choices[0].message.content)

اتصال به JavaScript

نصب پکیج:

npm install openai

نمونه Node.js:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.DARVAREH_API_KEY,
  baseURL: "https://api.darvareh.ir/v1",
});

const response = await client.chat.completions.create({
  model: "mistralai/mistral-medium-3.5",
  messages: [
    {
      role: "system",
      content:
        "You are a senior TypeScript engineer. Produce maintainable and testable solutions.",
    },
    {
      role: "user",
      content: `
یک Worker با TypeScript طراحی کن.

نیازمندی‌ها:
- retry with exponential backoff
- idempotency
- graceful shutdown
- structured logging
- timeout
- tests with Vitest
      `,
    },
  ],
  temperature: 0.2,
  max_tokens: 5000,
});

console.log(response.choices[0].message.content);

استفاده از Streaming

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DARVAREH_API_KEY"],
    base_url="https://api.darvareh.ir/v1"
)

stream = client.chat.completions.create(
    model="mistralai/mistral-medium-3.5",
    messages=[
        {
            "role": "user",
            "content": (
                "یک برنامه مهاجرت مرحله‌ای از "
                "JavaScript به TypeScript تهیه کن."
            )
        }
    ],
    temperature=0.2,
    max_tokens=5000,
    stream=True
)

for chunk in stream:
    content = chunk.choices[0].delta.content

    if content:
        print(content, end="", flush=True)

استفاده از Reasoning Effort

اگر این پارامتر در مسیر فعال درواره پشتیبانی شود، درخواست می‌تواند چنین باشد:

response = client.chat.completions.create(
    model="mistralai/mistral-medium-3.5",
    messages=[
        {
            "role": "user",
            "content": (
                "سه معماری برای پردازش سفارش را مقایسه "
                "و بهترین گزینه را انتخاب کن."
            )
        }
    ],
    reasoning_effort="high",
    temperature=0.2,
    max_tokens=6000
)

اگر API خطای پارامتر ناشناخته برگرداند، reasoning_effort را حذف کنید و از Prompt صریح‌تر استفاده کنید.

ارسال تصویر

response = client.chat.completions.create(
    model="mistralai/mistral-medium-3.5",
    messages=[
        {
            "role": "system",
            "content": (
                "You are a frontend engineer "
                "and accessibility reviewer."
            )
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": """
این Screenshot را تحلیل کن.

خروجی:
1. اجزای اصلی
2. Component Tree پیشنهادی
3. مشکلات UX
4. مشکلات Responsive
5. مشکلات Accessibility
6. موارد غیرقابل تشخیص
"""
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/dashboard.png"
                    }
                }
            ]
        }
    ],
    temperature=0.2,
    max_tokens=3500
)

پشتیبانی URL و Base64 و محدودیت اندازه تصویر را در نسخه فعال بررسی کنید.

Function Calling

تعریف ابزار وضعیت سفارش:

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_order_status",
            "description": (
                "Get the current status of an order."
            ),
            "parameters": {
                "type": "object",
                "properties": {
                    "order_id": {
                        "type": "string"
                    }
                },
                "required": ["order_id"],
                "additionalProperties": False
            }
        }
    }
]

ارسال درخواست:

response = client.chat.completions.create(
    model="mistralai/mistral-medium-3.5",
    messages=[
        {
            "role": "system",
            "content": (
                "Use tools for current order data. "
                "Never invent status or delivery dates."
            )
        },
        {
            "role": "user",
            "content": "سفارش 8214 من چه وضعیتی دارد؟"
        }
    ],
    tools=tools,
    tool_choice="auto",
    temperature=0.1
)

ساخت Agent Loop

import json
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DARVAREH_API_KEY"],
    base_url="https://api.darvareh.ir/v1"
)


def get_order_status(order_id: str) -> dict:
    return {
        "order_id": order_id,
        "status": "shipped",
        "tracking_code": "TRK-78421"
    }


tools = [
    {
        "type": "function",
        "function": {
            "name": "get_order_status",
            "description": "Get current order status.",
            "parameters": {
                "type": "object",
                "properties": {
                    "order_id": {"type": "string"}
                },
                "required": ["order_id"],
                "additionalProperties": False
            }
        }
    }
]

handlers = {
    "get_order_status": get_order_status
}

messages = [
    {
        "role": "system",
        "content": (
            "Use tools for current facts. "
            "Do not invent information."
        )
    },
    {
        "role": "user",
        "content": "وضعیت سفارش 8214 را بررسی کن."
    }
]

for step in range(6):
    response = client.chat.completions.create(
        model="mistralai/mistral-medium-3.5",
        messages=messages,
        tools=tools,
        tool_choice="auto",
        temperature=0.1,
        max_tokens=2000
    )

    assistant_message = response.choices[0].message
    messages.append(assistant_message)

    if not assistant_message.tool_calls:
        print(assistant_message.content)
        break

    for call in assistant_message.tool_calls:
        try:
            name = call.function.name
            arguments = json.loads(
                call.function.arguments
            )
            result = handlers[name](**arguments)
        except Exception as exc:
            result = {
                "ok": False,
                "error": str(exc)
            }

        messages.append({
            "role": "tool",
            "tool_call_id": call.id,
            "content": json.dumps(
                result,
                ensure_ascii=False
            )
        })
else:
    raise RuntimeError("Agent exceeded maximum steps")

Structured Output

نمونه Schema برای Code Review:

{
  "summary": "string",
  "decision": "approve | comment | request_changes",
  "findings": [
    {
      "title": "string",
      "severity": "low | medium | high | critical",
      "file": "string",
      "explanation": "string",
      "suggestion": "string"
    }
  ],
  "recommended_tests": [
    "string"
  ]
}

خروجی را با Pydantic یا Zod اعتبارسنجی کنید.

Validation با Pydantic

from typing import Literal
from pydantic import BaseModel


class Finding(BaseModel):
    title: str
    severity: Literal[
        "low",
        "medium",
        "high",
        "critical"
    ]
    file: str
    explanation: str
    suggestion: str


class ReviewResult(BaseModel):
    summary: str
    decision: Literal[
        "approve",
        "comment",
        "request_changes"
    ]
    findings: list[Finding]
    recommended_tests: list[str]

در صورت نامعتبر بودن پاسخ، فقط تعداد محدودی Retry برای اصلاح JSON انجام دهید.

پرامپت مناسب Coding Agent

You are a repository coding agent.

Goal:
Complete the task with the smallest maintainable change.

Rules:
- Inspect relevant files before editing.
- Follow existing architecture.
- Do not invent APIs, files or dependencies.
- Do not modify unrelated code.
- Provide a short plan before changes.
- Never claim tests passed without tool evidence.
- Stop when acceptance criteria are satisfied.
- Finish with changed files, test results and remaining risks.

Prompt مناسب تحلیل Repository

این Repository را برای اضافه‌کردن Audit Log بررسی کن.

فرایند:
1. ساختار پوشه‌ها را بررسی کن.
2. Entry Pointها را پیدا کن.
3. جریان عملیات تغییردهنده داده را دنبال کن.
4. الگوی فعلی Logging را بررسی کن.
5. فایل‌های مرتبط را فهرست کن.
6. پیش از ویرایش برنامه ارائه بده.
7. فقط فایل‌های ضروری را تغییر بده.
8. تست‌ها را اجرا کن.

معیار پذیرش:
- Actor، Action، Entity، Timestamp و Request ID ثبت شوند.
- اطلاعات محرمانه در Log قرار نگیرد.
- رفتار API عمومی تغییر نکند.
- نتیجه Test واقعی گزارش شود.

Prompt مناسب تحلیل تصویر

این Screenshot مربوط به Dashboard فروش است.

وظیفه:
- اجزای رابط را شناسایی کن.
- Component Tree پیشنهاد بده.
- Layout را در Mobile و Desktop توضیح بده.
- مشکلات Accessibility را مشخص کن.
- حالت‌های Loading، Empty و Error را اضافه کن.
- Design Tokenهای قابل استنباط را استخراج کن.

قوانین:
- Observation را از Inference جدا کن.
- مقدار دقیق نامشخص را حدس قطعی نزن.
- موارد غیرقابل تشخیص را فهرست کن.

تنظیم Temperature

وظیفهTemperature پیشنهادی
استخراج داده0 تا 0.2
Function Calling0 تا 0.2
Code Review0 تا 0.2
رفع باگ0 تا 0.2
تحلیل سند0.1 تا 0.3
تحلیل تصویر0.1 تا 0.3
معماری0.2 تا 0.5
تولید محتوا0.5 تا 0.8
ایده‌پردازی0.7 تا 1

معماری Production پیشنهادی

API Layer

  • Authentication
  • Rate Limit
  • Validation
  • Request ID
  • محدودیت اندازه ورودی

Model Router

  • تشخیص پیچیدگی
  • انتخاب مدل
  • تنظیم Reasoning
  • Fallback

Context Builder

  • انتخاب اسناد
  • ساخت Prompt
  • خلاصه‌سازی تاریخچه
  • حذف داده تکراری

Tool Executor

  • Validation ابزار
  • کنترل مجوز
  • Timeout
  • Audit Log

State Store

  • هدف Agent
  • مراحل انجام‌شده
  • نتیجه ابزارها
  • خطاهای باز
  • بودجه باقی‌مانده

Output Validator

  • JSON Validation
  • Citation Validation
  • Acceptance Criteria
  • بررسی پاسخ ناقص

Observability

  • Latency
  • Token مصرفی
  • هزینه
  • Tool Call
  • نرخ خطا
  • نتیجه وظیفه

Model Routing

MISTRAL_MEDIUM = "mistralai/mistral-medium-3.5"


def choose_model(task: dict) -> str:
    if task.get("requires_reasoning"):
        return MISTRAL_MEDIUM

    if task.get("requires_vision"):
        return MISTRAL_MEDIUM

    if task.get("requires_tools"):
        return MISTRAL_MEDIUM

    if task.get("type") in {
        "repository_analysis",
        "software_migration",
        "architecture_review",
        "complex_debugging"
    }:
        return MISTRAL_MEDIUM

    return "YOUR_LIGHTWEIGHT_MODEL_ID"

برای درخواست‌های ساده از مدل اقتصادی‌تر موجود در درواره استفاده کنید.

کنترل هزینه

  • Reasoning را فقط در صورت نیاز افزایش دهید.
  • درخواست‌های ساده را Route کنید.
  • Context تکراری را Cache کنید.
  • فقط اسناد مرتبط را ارسال کنید.
  • خروجی ابزار را خلاصه کنید.
  • تعداد Agent Stepها را محدود کنید.
  • max_tokens را متناسب تنظیم کنید.
  • تصاویر را بدون نیاز با وضوح بالا نفرستید.
  • مصرف را به تفکیک قابلیت ثبت کنید.
  • هزینه هر نتیجه موفق را بسنجید.

برای قیمت روز از صفحه مدل‌های درواره استفاده کنید.

Fallback

MODEL_CHAIN = [
    "mistralai/mistral-medium-3.5",
    "YOUR_FALLBACK_MODEL_ID"
]

Fallback را برای خطاهای موقت، Timeout یا نبود ظرفیت فعال کنید، نه برای خطاهای Validation یا API Key.

Evaluation مدل

فارسی

  • درک Prompt فارسی
  • کیفیت نگارش
  • خلاصه‌سازی
  • استخراج موجودیت
  • ترکیب فارسی و English
  • پایداری JSON

Coding

  • درصد Testهای پاس‌شده
  • صحت Patch
  • رعایت معماری
  • Backward Compatibility
  • نرخ API ساختگی
  • تغییرات غیرضروری

Vision

  • تشخیص Component
  • استخراج متن
  • تحلیل نمودار
  • تفکیک مشاهده از حدس
  • پاسخ به سؤال تصویری

Agent

  • انتخاب ابزار
  • آرگومان معتبر
  • تعداد مراحل
  • مدیریت خطا
  • حفظ هدف
  • تشخیص پایان
  • هزینه موفقیت

اشتباهات رایج

فعال‌کردن Reasoning بالا برای همه درخواست‌ها

باعث افزایش Latency و هزینه می‌شود.

استفاده از مدل 128B برای کار ساده

طبقه‌بندی یا استخراج ساده را می‌توان به مدل کوچک‌تر سپرد.

ارسال تمام Repository

ابتدا فایل‌های مرتبط را جست‌وجو و انتخاب کنید.

اجرای Tool Call بدون Validation

Tool Call فقط یک پیشنهاد مدل است و باید بررسی شود.

اعتماد به ادعای اجرای Test

تنها نتیجه واقعی ابزار Test معتبر است.

قراردادن API Key در Frontend

کلید درواره را فقط در Backend نگه دارید.

اعتماد کامل به خروجی Structured

حتی JSON ظاهراً صحیح باید با Schema اعتبارسنجی شود.

پرسش‌های متداول

Mistral Medium 3.5 چیست؟

یک مدل Multimodal با حدود ۱۲۸ میلیارد پارامتر است که Instruction Following، Reasoning، Coding و Agentic Workflow را ترکیب می‌کند.

Context Window مدل چقدر است؟

Mistral Medium 3.5 از Context تا 256K Token پشتیبانی می‌کند.

آیا این مدل تصویر را تحلیل می‌کند؟

بله. مدل ورودی متن و تصویر دریافت و خروجی متنی تولید می‌کند.

آیا برای برنامه‌نویسی مناسب است؟

بله. Coding، Code Review، Debug، تحلیل Repository و مهاجرت نرم‌افزاری از کاربردهای اصلی مدل هستند.

آیا از Function Calling پشتیبانی می‌کند؟

بله. مدل می‌تواند ابزار موردنیاز را انتخاب کند؛ اجرای واقعی ابزار توسط Backend انجام می‌شود.

آیا از Structured Output پشتیبانی می‌کند؟

بله، اما خروجی باید در Backend با Schema اعتبارسنجی شود.

آیا Reasoning قابل تنظیم است؟

بله. مدل برای سطوح مختلف Reasoning طراحی شده است. پشتیبانی پارامتر مربوط را در مسیر API فعال بررسی کنید.

Model ID درواره چیست؟

mistralai/mistral-medium-3.5

برای تأیید شناسه فعال به صفحه مدل‌های درواره مراجعه کنید.

Base URL درواره چیست؟

https://api.darvareh.ir/v1

آیا مدل با Python کار می‌کند؟

بله. با تنظیم Base URL و Model ID درواره می‌توانید آن را در Backend Python فراخوانی کنید.

آیا با Node.js قابل استفاده است؟

بله. API مدل از طریق JavaScript و TypeScript قابل فراخوانی است.

قیمت Mistral Medium 3.5 چقدر است؟

برای مشاهده قیمت به‌روز به صفحه مدل‌های درواره مراجعه کنید.

جمع‌بندی

Mistral Medium 3.5 مدلی چندمنظوره برای توسعه‌دهندگانی است که می‌خواهند Reasoning، Coding، Vision و Tool Calling را از طریق یک مدل واحد در اختیار داشته باشند.

مهم‌ترین ویژگی‌های آن عبارت‌اند از:

  • مدل Dense با ۱۲۸ میلیارد پارامتر
  • Context برابر با 256K
  • Reasoning قابل تنظیم
  • تحلیل متن و تصویر
  • Function Calling
  • Structured Output
  • برنامه‌نویسی در سطح Repository
  • مناسب Agentهای چندمرحله‌ای
  • مناسب RAG سازمانی
  • مناسب Review و Orchestration

برای درخواست‌های ساده بهتر است از مدل‌های کوچک‌تر استفاده شود؛ اما در وظایف پیچیده، Agentic و چندمرحله‌ای، Mistral Medium 3.5 می‌تواند گزینه‌ای قدرتمند باشد.

برای شروع:

  1. در درواره ثبت‌نام کنید.
  2. API Key دریافت کنید.
  3. مدل را در صفحه مدل‌ها پیدا کنید.
  4. Model ID فعال را کپی کنید.
  5. Base URL را روی https://api.darvareh.ir/v1 قرار دهید.
  6. مدل را با داده واقعی فارسی و وظایف محصول ارزیابی کنید.
  7. برای کنترل هزینه از Model Routing و Reasoning پویا استفاده کنید.

مقالات مرتبط

Read more

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی با ترکیب گردش‌کارهای خودکار و مدل‌های هوش مصنوعی، پردازش متن، دسته‌بندی، استخراج اطلاعات و تصمیم‌های پیشنهادی را خودکار می‌کند. در این راهنما، معماری و ساخت نمونه عملی آن با API درواره را می‌آموزید.

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce شیوه‌ای جدید برای خرید اینترنتی است که در آن ایجنت هوش مصنوعی می‌تواند نیاز کاربر را بفهمد، محصولات را جست‌وجو و مقایسه کند و فرایند خرید را پیش ببرد. در این راهنما با معماری، UCP، ACP و پیاده‌سازی آن با API درواره آشنا می‌شوید.