tool
Tool ها قابلیتهایی هستن که Harness در اختیار Agent قرار میده، مدل بهتنهایی فقط متن تولید میکند و برای هر تعامل با دنیای بیرون باید از یک Tool استفاده کند.
ابزار یا Tool یعنی قابلیتی که Harness در اختیار Agent قرار میده تا بتونه با دنیای بیرون تعامل داشته باشه.
خود Model هیچ کاری جز تولید متن بلد نیست و هر کاری که خارج از تولید متن باشه، باید از طریق یه Tool انجام بشه.
مثلا Read برای خوندن فایلهاست، Write فایل ایجاد یا ویرایش میکنه، Bash دستورهای ترمینال رو اجرا میکنه و Search داخل پروژه دنبال فایل یا متن میگرده.
وقتی Agent تصمیم میگیره از یه Tool استفاده کنه، در واقع فقط یه Tool Call تولید میکنه. اجرای واقعی اون Tool توسط Harness انجام میشه. بعد نتیجه دوباره به Model برمیگرده تا تصمیم بگیره مرحلهی بعدی چیه.
به همین خاطر، هر بار که یه Tool اجرا میشه، یه Model Provider Request جدید هم ایجاد میشه. چون مدل باید نتیجهی اون Tool رو ببینه و بعد ادامهی کار رو مشخص کنه.
اینکه یه Agent چه کارهایی میتونه انجام بده، کاملا به Tool هایی بستگی داره که در اختیارش قرار گرفتن. مثلاً اگه هیچ Tool ـی برای اتصال به دیتابیس نداشته باشه خب مدل هم هیچ جوره نمیتونه اطلاعات دیتابیس رو بخونه.
اضافه کردن یه Tool جدید در واقع یعنی اضافه کردن یه توانایی جدید به Agent. به همین خاطر استانداردهایی مثل MCP به وجود اومدن تا بشه Tool های جدید رو راحت به Harness اضافه کرد.