Harness

Harness مغز اجرایی یه Agent ـه؛ همه‌ی قابلیت‌هایی که فراتر از تولید متن هستن، مثل استفاده از Toolها، مدیریت Context و اجرای کارهای چندمرحله‌ای، توسط Harness انجام میشن، نه خود Model.

Harness اون چیزیه که یه Model ساده رو به یه Agent تبدیل می‌کنه.

خود Model فقط متن می‌گیره و متن میده بیرون نمیتونه فایل بخونه، دستور اجرا کنه، ابزار استفاده کنه و اصلا چیزی از مکالمه رو پیش خودش نگه نمیداره.

تمام این قابلیت‌ها رو Harness بهش اضافه می‌کنه.

هر بار که یه درخواست می‌فرستی، Harness اول Context رو آماده می‌کنه، بعد اون رو برای Model Provider می‌فرسته. اگه مدل درخواست اجرای یه Tool رو بده، این Harness ـه که اون ابزار رو اجرا می‌کنه، نتیجه‌ش رو دوباره به مدل میده و این چرخه رو تا تموم شدن کار ادامه میده.

همچنین Harness تاریخچه‌ی Session رو نگه می‌داره، قبل از انجام کارهای حساس ازت اجازه می‌گیره، تصمیم می‌گیره چه اطلاعاتی داخل Context Window قرار بگیره و هر تنظیمی مثل AGENTS.md، Permission ها یا Hooks رو مدیریت می‌کنه.

برای همین ممکنه دو محصول دقیقا از یه Model استفاده کنن، ولی رفتارشون کاملاً فرق داشته باشه. مثلاً Claude.ai و Claude Code هر دو از یه مدل استفاده می‌کنن، اما چون Harness های متفاوتی دارن، یکی فقط باهات چت می‌کنه و اون یکی می‌تونه فایل بخونه، کد ویرایش کنه و دستور اجرا کنه و این داستانا.

به خاطر همینم وقتی رفتار یه Agent عوض میشه، همیشه نباید تقصیر رو گردن Model بندازی بلکه خیلی وقت‌ها فقط Harness تغییر کرده و شاید System Prompt عوض شده، ابزارهای جدید اضافه شدن یا نحوه‌ی مدیریت Context فرق کرده باشه.