فرمت Harmony که OpenAI با مدلهای gpt-oss معرفی کرده، یه پروتکل ساختاریافته برای تعامل با مدلهای ایجنتمحوره.
چند تا از کلیدیترین ویژگیهای این فرمت:
کانالهای مجزا (Channels): این نوآورانهترین بخش فرمته. به جای اینکه کل جواب مدل یه تیکه تکست باشه، به کانالهای مختلف تقسیم میشه:
کانال analysis: اینجا جاییه که Chain-of-Thought (CoT) یا همون فرآیند فکری مدل قرار میگیره. این همون بخشیه که فیلتر نشده و نباید مستقیم به کاربر نشون داده بشه.
کانال commentary: برای فراخوانی ابزارها (tool calls) استفاده میشه. مدل توی این کانال، پارامترهای فانکشن مورد نظرش رو به صورت ساختاریافته برمیگردونه.
کانال final: این کانال حاوی جواب تمیز و نهاییه که برای نمایش به کاربر در نظر گرفته شده.
نقش Developer و سلسلهمراتب: علاوه بر نقش System و User، یه نقش جدید به اسم Developer اضافه شده. این نقش برای تعریف ابزارها و دادن دستورالعملهای سطح بالا به مدل استفاده میشه. نکته حیاتی، سلسلهمراتب دستوریه: System > Developer > User. این یعنی دستورات System به Developer و دستورات Developer به User ارجحیت دارن و این به دولوپر کنترل دقیقی روی رفتار مدل میده.
تنظیم سطح استدلال (Reasoning Effort): داخل System پراپمت میتونید مشخص کنید که مدل چقدر برای رسیدن به جواب تلاش کنه. سه سطح low، medium و high وجود داره که به شما اجازه میده بین سرعت و دقت، یه تریدآف هوشمندانه برقرار کنید.
کتابخانه رسمی: برای اینکه درگیر پیچیدگیهای رندر و پارس کردن این فرمت رشتهای نشید، OpenAI یه کتابخونه رسمی به اسم openai-harmony منتشر کرده. این کتابخونه که هستهش با Rust برای پرفورمنس بالا نوشته شده و با pyo3 به پایتون متصل شده، به شما اجازه میده با آبجکتهای پایتونی مثل Conversation و Message کار کنید و خود کتابخونه زحمت تبدیلش به توکنهای مورد نیاز مدل رو میکشه.
به نظر من، فرمت Harmony یه شمشیر دولبهست. از یه طرف، با جدا کردن CoT از جواب نهایی، شفافیت و کنترل بینظیری به دولوپر میده و راه رو برای ساخت ایجنتهای پیچیده باز میکنه. از طرف دیگه، پیچیدگی پیادهسازی رو به شدت بالا میبره و مسئولیت مدیریت این فرمت کاملاً روی دوش دولوپره. در واقع OpenAI داره یه استاندارد جدید رو به کامیونیتی تحمیل میکنه که برای استفاده از مدلهاش باید ازش پیروی کنید.
💻 اطلاعات بیشتر و کتابخانه Harmony
🛠 Join @LLMEngineers Community
Post #128
736