ابزار ها ( Tools ) چی هستن؟

شما میتونی به LLM یک سری دسترسی ها بدی. اینجا بررسی میکنم که این ابزار ها دقیقا چطوری کارو در میارن.

ابزار ها ( Tools ) چی هستن؟

اون اوایل که chatgpt اومده بود، حتما یادته که مثلا برای یک تسک برنامه نویسی، باید میرفتی ازش سوال میپرسیدی و بعد chatgpt به شما یه تیکه کد میداد که اونو کپی میکردی میبردی داخل کد ادیتورت، پیست میکردی.

حالا اون موقع همه پراشون ریخته بود که این چه چیز خفنیه ولی الان دیگه هیچکی اینطوری از LLM ها استفاده نمیکنه، دلیلشم اینه LLM ها با استفاده از Tool Calling میتونن داخل همون ادیتور برات کد بزنن که هیچ، میتونن هزار تا کار دیگه هم در کنارش انجام بدن.

حالا tools یعنی چی و LLM ها چجوری Tool Calling انجام میدن؟ اینو اینجا برات باز میکنم.

ابزار ها چطور کار میکنن؟

شما از طریق سیستم پرامپت، میتونی به LLM یک سری دسترسی ها بدی و مثلا بهش بگی که به کدوم ابزار ها دسترسی داره.

سیستم پرامپت هم که یادته فقط یه مسج ساده محسوب میشه که همون اولِ اول چت میشینه و سیستم پرامپت یک چیز مقدسی برای LLM هست و در همه حال سعی میکنه ازش تبعیت کنه.

در نتیجه شما در سیستم پرامپت تعیین میکنی که LLM قراره چه کارهایی انجام بده، چه کارهایی انجام نده و به چه ابزار هایی دسترسی داره. ( همینجا میتونی ببینی که جیلبریک میتونه چقدر خطرناک باشه )

Pasted image 20260709030500.png

خب حالا برای هر Tool ، شما باید سه تا آیتم به LLM بدی:

  • اسم Tool ، مثلا writeFile
  • یه توضیح درباره کاری که انجام میده، مثلا تو عکس بالا میشه write a file to the file system.
  • پارامتر هایی که میگیره و نوع هرکدوم ( مثلا path و content )

این پارامترها هم با JSON تعریف میشن، پس شما میتونی هرچیزی که JSON پشتیبانی میکنه رو بهش بدی مثل آبجکت و آرایه و این داستانا.

بعد همه این تعاریف مربوط به Tool میرن داخل سیستم پرامپت و هر اطلاعات دیگه ای هم که بخوایم به سیستم پرامپت بدیم، همون پایینش اضافه میشن.

همونطور که میبینی، هیچ جادو جنبلی در کار نیست و Tool ها به راحتی داخل سیستم پرامپت تعریف میشن!

خود LLM تصمیم میگیره کدوم Tool رو استفاده کنه

قسمت باحال ماجرا برای من اینه که ما از LLM میخوایم خودش تصمیم بگیره که از کدوم Tool استفاده کنه.

فرض کن سیستم پرامپت بهش گفته:

You have access to the following tools …

بعد ما به عنوان کاربر، از اینور مسج میدیم که:

Write a new file called .gitignore

Pasted image 20260709030522.png

حالا اینجا LLM یه مسج از نوع Tool Call برمیگردونه.

این مسج فقط یه اینستراکشنه ( دستور عمل؟ ) که میگه فلان Tool باید اجرا بشه. داخلش هم یه id وجود داره و همینطور تمام پارامتر های مورد نیاز هم همونجا ارسال میشن.

تو این مثال بالا، LLM میگه که یه فایل خالی با مسیر .gitignore ساخته بشه.

خود Tool Call به معنای اجرا شدن Tool نیست!

نکته کنکوری اینه که Tool Call فقط و فقط یه درخواست یا دستور برای اجرای اون Tool هست و تا این لحظه هنوز هیچ اتفافی نیفتاده، صرفا LLM یه درخواست تولید کرده که برو فلان Tool رو اجرا کن.

حالا نوبت کامپیوتر خودمونه که اون Tool رو اجرا کنه، یعنی LLM اومده گفته که “این فایل رو بساز” ولی ساختن واقعی فایل باید توسط یه تیکه کد روی کامپیوتر انجام بشه.

Pasted image 20260709030544.png

برای هر Tool که داخل سیستم پرامپت تعریف میکنی، باید یه function متناظر هم داخل یه تیکه کد تعریف کنی.

و بعد هر وقت اجرای Tool با موفقیت انجام شد، اون فانکشن متناظر میاد و یه پیام برای LLM میفرسته.

اون پیام همون id مربوط به Tool Call قبلی رو داره و LLM اطلاع میده که نتیجه اجرای اون Tool چی شده، حالا اینجا خیلی مهمه!

اگه موقع اجرای Tool هر نوع خطایی رخ بده، ما حتما باید همون خطا رو به LLM برگردونیم.

چرا؟

چون ممکنه LLM با دیدن اون خطا تصمیم بگیره روش دیگه ای رو امتحان کنه.

و نتیجه اجرای یک Tool همیشه یکی از این دو حالته:

  • موفق یا Success
  • ناموفق یا Failure

و بر اساس نتیجه اجرا، LLM پاسخ نهایی رو به ما میده یا حالا شرایطو بررسی میکنه و میره سراغ راه حل های دیگه.

جمع بندی

Pasted image 20260709030601.png

برای جمع بندی یبار کل فرآیند رو برات مرور میکنم:

شما میای داخل system prompt ، ابزار هارو تعریف میکنی و JSON Schema مربوط به هر ابزار رو به LLM میدی، بعد کاربر یه پیام میفرسته:

Write a new file called .gitignore

اینجا لازم نیست که خودمون به LLM بگیم که این Tool رو اجرا کن و LLM خودش تصمیم میگیره که از کدوم Tool استفاده کنه.

بعد LLM خودش یه Tool Call با یک id و تمام پارامتر های مورد نیاز تولید میکنه و سپس کامپیوتر ما اون Tool Call رو دریافت میکنه و Tool رو روی سیستم اجرا میکنه.

بعد کامپیوتر ما، نتیجه رو دوباره همراه با همون id برای LLM ارسال میکنه.

آخر سر هم LLM با توجه به جوابی که از Tool Call خودش گرفته، میاد و پاسخ نهایی رو به کاربر که ما باشیم میده، مثلا یه چیزی شبیه این:

Done. What should go in there?

خلاصه اینکه ابزار ها یه راهی هستن تا LLM به جای جواب معمولی، یه نوع پیام خاص یا همون Tool Call تولید کنه.

بعد کامپیوتر شما اون پیام رو دریافت میکنه و اون Tool رو اجرا میکنه و نتیجه رو دوباره به LLM بر میگردونه و LLM هم بر اساس اون نتیجه ای که از Tool Call گرفته، پاسخ نهایی رو به شما میده.

همین حلقه ساده، زیربنای ساخت بسیاری از اپلیکیشن های خفن مبتنی بر LLM محسوب میشه!

منبع: AI Hero