GEODE
Autonomous Agent Harness
من الملاحظة إلى الإجراء التالي.
إطار تشغيل محلي لوكيل مستقل يمكن أن تُسند إليه الأبحاث والعمل على الملفات والمهام المجدولة.
لا يصبح اقتراح النموذج بالتوقف اكتمالًا إلا عبر التحقق.
في التوقف القابل للتسليم، حتى طلب النموذج التوقفَ يمر بالتحقق من الاكتمال. والنتيجة إما الإنجاز، أو المتابعة ضمن الميزانية، أو انتظار المراجعة، أما حدود التنفيذ والإلغاء والأخطاء فتنتهي في حالة توقف منفصلة.
التحقق → الاكتمال
لا يمر إلا التوقف القابل للتسليم عبر PreVerify → الحكم → PostVerify → Stop. ولا يُعد اقتراح النموذج بالتوقف ولا تعليمة hook اكتمالًا في حد ذاته.
arun · دور النموذج
loop/agent_loop.pyبيانات: اقتراح التوقفتوقف قابل للتسليم · natural وغيرهloop/_guards.py · models.pyحين يجيب النموذج نصًّا دون استدعاء أداة، يصبح الدور مرشحًا لتوقف natural (وforced_text في آخر جولة مسموح بها). واقتراح النموذج بالتوقف ليس اكتمالًا بعد.
توقف قابل للتسليم · natural وغيره
loop/_guards.py · models.pyبيانات: مرشح الاكتمالfinalize_and_return_asyncloop/_lifecycle.pyلا تُعد توقفات قابلة للتسليم إلا natural وforced_text وactionable_partial، وهي وحدها تنتقل إلى التحقق العام.
finalize_and_return_async
loop/_lifecycle.pyتشغيل · حكم: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pyلا يستطيع PreVerify hook عبر STRENGTHEN إلا إضافة متطلبات ورموز نقص. فيمكنه جعل الحكم أشد صرامة، لا تمريره أبدًا.
finalize_and_return_async
loop/_lifecycle.pyتشغيل · حكم: verify_turn_asyncفحص بنيوي · empty_turncore/agent/verify.pyيأتي الفحص البنيوي أولًا (دور فارغ، model_action_required)، والإخفاق البنيوي غير القابل للإصلاح يتخطى الحكم الدلالي. وتُفسَّر الإعدادات القديمة مثل off أو rule_based على أنها llm_judge، فلا يمكنها تعطيل الحكم.
حكم دلالي · LLM أو Jev
core/agent/verify.pyبيانات: طلب حكمالنموذج الحَكَميُستدعى الحَكَم المختار (LLM judge افتراضيًا، وJev Choice عند اختياره) مرة واحدة دون أدوات، لمدة أقصاها 120 ثانية ودون تجاوز ميزانية الوقت المتبقية. ولا يُرسَل المرشح الذي قد يحمل ملاحظات شخصية إلى حَكَم مساعد.
حكم دلالي · LLM أو Jev
core/agent/verify.pyبيانات: passed · rubric_missespolicy_action · قراءة الحكمloop/_lifecycle.pyيحمل الحكم النجاح أو الإخفاق، ورموز النقص، وreflection للمحاولة التالية، وما إذا كانت إعادة المحاولة مفيدة. ولا يغطي النجاح الدلالي أبدًا فحصًا بنيويًا أخفق.
policy_action · قراءة الحكم
loop/_lifecycle.pyتشغيل · حكم: قرار PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyيقرر PostVerify hook أحد ACCEPT أو REVISE أو ESCALATE. ويتحول ACCEPT لمرشح أخفق في التحقق إلى escalate. وعند غياب القرار تنطبق القيمة الافتراضية لبيئة التشغيل (نجاح → accept، قابل لإعادة المحاولة → revise، وإلا escalate).
policy_action · قراءة الحكم
loop/_lifecycle.pyتشغيل · حكم: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyلا يمكن لتعليمة CONTINUE من Stop hook أن تطلب متابعة الإصلاح إلا في غير حالة escalate. وتعليمة hook مُدخلٌ للمحاولة التالية، لا سلطة.
policy_action · قراءة الحكم
loop/_lifecycle.pyبيانات: completed · محفوظcheckpoint · حالة الجلسةmemory · observabilityعند النجاح وaccept، تُدمج المحاولات المتابَعة، وتُحفظ النتيجة، وتُسجَّل الجلسة بوصفها completed.
finalize_and_return_async
loop/_lifecycle.pyبيانات: الاستجابةIPC · مستدعٍ عبر CLIيعيد الإجابة النهائية عند الاكتمال، وإجابةً فارغة مع EXTERNAL_VERIFICATION_REQUIRED عند انتظار المراجعة، وسببَ التوقف في التوقف بلا تحقق.
إصلاح ضمن الميزانية
يواصل الإخفاقُ القابل للإصلاح الطلبَ نفسه. الميزانية الافتراضية محاولتان، وعند نفادها ينتظر المرشح المراجعة.
حكم دلالي · LLM أو Jev
core/agent/verify.pyبيانات: passed · rubric_missespolicy_action · قراءة الحكمloop/_lifecycle.pyيحمل الحكم النجاح أو الإخفاق، ورموز النقص، وreflection للمحاولة التالية، وما إذا كانت إعادة المحاولة مفيدة. ولا يغطي النجاح الدلالي أبدًا فحصًا بنيويًا أخفق.
policy_action · قراءة الحكم
loop/_lifecycle.pyتشغيل · حكم: قرار PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyيقرر PostVerify hook أحد ACCEPT أو REVISE أو ESCALATE. ويتحول ACCEPT لمرشح أخفق في التحقق إلى escalate. وعند غياب القرار تنطبق القيمة الافتراضية لبيئة التشغيل (نجاح → accept، قابل لإعادة المحاولة → revise، وإلا escalate).
policy_action · قراءة الحكم
loop/_lifecycle.pyتشغيل · حكم: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyلا يمكن لتعليمة CONTINUE من Stop hook أن تطلب متابعة الإصلاح إلا في غير حالة escalate. وتعليمة hook مُدخلٌ للمحاولة التالية، لا سلطة.
ميزانية continuation · افتراضيًا 2
loop/_lifecycle.pyتشغيل · حكم: إصلاح · محاولة +1_arun_once · متابعة الإصلاحloop/agent_loop.pyمع وجود تعليمة إصلاح، وما دام رقم المحاولة دون الميزانية (اثنتان افتراضيًا) فقط، يستمر الطلب نفسه. وعند بلوغ الميزانية يصبح escalate_budget_exhausted وينتظر المراجعة.
بانتظار المراجعة
الحكم غير الصالح للاستخدام، أو محاولة تحويل الإخفاق إلى نجاح، أو نفاد الميزانية، يحجب المرشح ويوقف الجلسة مؤقتًا.
verification_error · يُغلق عند الإخفاق
core/agent/verify.pyإخفاق · بلا حكم: verification_errorpolicy_action · قراءة الحكمloop/_lifecycle.pyغياب الحَكَم أو انقضاء المهلة أو الاستجابة غير الصالحة يصبح verification_error: لا نجاحًا ولا إشارة إصلاح. والحكم غير الصالح للاستخدام لا يحل محل النجاح أبدًا.
policy_action · قراءة الحكم
loop/_lifecycle.pyتشغيل · حكم: قرار PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyيقرر PostVerify hook أحد ACCEPT أو REVISE أو ESCALATE. ويتحول ACCEPT لمرشح أخفق في التحقق إلى escalate. وعند غياب القرار تنطبق القيمة الافتراضية لبيئة التشغيل (نجاح → accept، قابل لإعادة المحاولة → revise، وإلا escalate).
policy_action · قراءة الحكم
loop/_lifecycle.pyتشغيل · حكم: ESCALATE · pendingمُراجِع خارجييُحتفظ بالمرشح بوصفه pending_text ويُحجب عن الاستجابات العادية، ويُحفظ checkpoint وتُوقف الجلسة مؤقتًا. ولا يُتواصل مع أي مُراجِع خارجي تلقائيًا.
policy_action · قراءة الحكم
loop/_lifecycle.pyتسجيل · ملاحظة: الحكم · صفوف الأدلةtimeline · صفوف قرارات ledgermemory · observabilityيتلقى timeline صفوف القرار والأدلة وpending، ويتلقى evidence ledger صف verification_policy. وهذه سجلات best-effort، لا دليل على أثر خارجي.
توقفات بلا تحقق
تُحفظ توقفات الإلغاء والحدود والبنية التحتية وتشغيلات control workflow دون تحقق عام.
arun · دور النموذج
loop/agent_loop.pyتشغيل · حكم: الحراسات · الحدودتوقف بسبب إخفاق · حد · إلغاءloop/_guards.py · models.pyتُنهي حراساتٌ مثل حدود الجولات والوقت والتكلفة والسياق، والإلغاء، وكشف الإخفاق المتكرر، الدورَ بعنصر واحد من مجموعة TerminationReason المغلقة. والحدّ المعطَّل في الإعدادات لا يُفرض دائمًا.
توقف بسبب إخفاق · حد · إلغاء
loop/_guards.py · models.pyإخفاق · بلا حكم: توقف بسبب إخفاق · إلغاءfinalize_and_return_asyncloop/_lifecycle.pyلا مرشح للتحقق في توقفات الإلغاء والبنية التحتية والحدود، لذا تُحفظ دون تحقق عام.
control workflow · تخطّي التحقق العام
ipc_server/poller.pyتشغيل · حكم: تخطّي التحقق العامfinalize_and_return_asyncloop/_lifecycle.pyحين يطلب استدعاء IPC تخطّي التحقق العام أو يكون control workflow نشطًا، يُعطَّل التحقق العام لذلك التشغيل وحده، ثم تُستعاد القيمة السابقة بعده.
finalize_and_return_async
loop/_lifecycle.pyبيانات: حفظ فقط · بلا تحققcheckpoint · حالة الجلسةmemory · observabilityالتوقف بلا تحقق يحفظ مع ذلك نتيجته وcheckpoint ويُطلق أحداث نهاية الجلسة.
finalize_and_return_async
loop/_lifecycle.pyبيانات: الاستجابةIPC · مستدعٍ عبر CLIيعيد الإجابة النهائية عند الاكتمال، وإجابةً فارغة مع EXTERNAL_VERIFICATION_REQUIRED عند انتظار المراجعة، وسببَ التوقف في التوقف بلا تحقق.
كل الروابط بالسماكة نفسها. اختر مسارًا لإبراز طريقه وحده، مع خطوات مرقّمة.
- خط متصل · اتجاه تدفق الطلبات والمرشحين والنتائج
- خط متقطع · تشغيل، حكم، تفويض، تهيئة
- شرطة طويلة ونقطة · السجلات والملاحظة، بمعزل عن الحكم
- شرطة قصيرة · إخفاق أو حكم غير صالح للاستخدام
- خط أسود سميك · المسار المختار، والأرقام تبيّن الترتيب
- مربع · حدّ شيفرة أو سجل، ومساره في الترويسة
- شريحة داخلية · مكوّن ضمن ذلك الحد
- مربع متقطع · خارج ذلك الحد
- الحلقة · finalization
- التوقفات · hooks · الحكم
- الحفظ · السجلات
- دخول IPC
لا تُرسم إلا مسارات الاستدعاء في الإيداع المثبّت 9e2c041. ونجاح الحَكَم منفصل عن نجاح مُتحقِّق معيار قياس خارجي، والاكتمال هنا قرار داخل بيئة التشغيل.
- محرّك الحكم
- الافتراضي هو LLM judge، ولا يحكم Jev Choice إلا حين يُضبط judgment_engine على jev. وفي الحالتين، يعطي الحَكَم غير الصالح للاستخدام verification_error، لا نجاحًا أبدًا.
- ما يحق لـ hooks فعله
- لا يستطيع PreVerify إلا تشديد الحكم، ولا يستطيع PostVerify تمرير مرشح أخفق، ولا يطلب Stop المتابعة إلا في غير حالة escalate.
- بانتظار المراجعة
- يسجّل انتظار المراجعة أن قرارًا خارجيًا مطلوب. ولا يُبلغ أحدًا، ولا يعني أن النتيجة أُقرّت.