وثائق بوابة القرار

تقييم بوابة حتمي وقابل لإعادة التشغيل مع قرارات قابلة للتدقيق.

وثائق Asset Core

دليل LLM-Native

نظرة سريعة

ما: سير العمل المحسن بواسطة LLM للتكرار السريع (التحقق المسبق) والتشغيل القابل للتدقيق (مباشر) لماذا: يمكن للوكلاء التكرار نحو تحقيق البوابة بشكل حتمي من: مطورو وكلاء LLM، مهندسو الأتمتة المتطلبات المسبقة: evidence_flow_and_execution_model.md


نموذج ذهني: مساران

Path A: Precheck (fast, asserted)
  - client supplies payload
  - data shape validates payload
  - gates evaluated, no run state mutation

Path B: Live Run (audited, verified)
  - providers fetch evidence
  - run state mutated, runpack stored

بدء سريع: التحقق المسبق

نصيحة ويندوز: PowerShell/CMD لا تدعم curl متعددة الأسطر على نمط bash. استخدم أمرًا في سطر واحد أو سلاسل نصية في PowerShell هنا. نصيحة الإعدادات المسبقة: ابدأ بـ configs/presets/quickstart-dev.toml لتشغيلات محلية بدون احتكاك. إذا كنت تستخدم الإعداد المسبق المقوى، أضف Authorization: Bearer <token> إلى كل طلب واستخدم مساحة أسماء غير افتراضية (مثل 2).

الخطوة 1: تحديد سيناريو

curl -s http://127.0.0.1:4000/rpc \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "scenario_define",
      "arguments": {
        "spec": {
          "scenario_id": "llm-precheck",
          "namespace_id": 1,
          "spec_version": "v1",
          "stages": [
            {
              "stage_id": "main",
              "entry_packets": [],
              "gates": [
                {
                  "gate_id": "quality",
                  "requirement": { "Condition": "report_ok" }
                }
              ],
              "advance_to": { "kind": "terminal" },
              "timeout": null,
              "on_timeout": "fail"
            }
          ],
          "conditions": [
            {
              "condition_id": "report_ok",
              "query": {
                "provider_id": "json",
                "check_id": "path",
                "params": { "file": "report.json", "jsonpath": "$.summary.failed" }
              },
              "comparator": "equals",
              "expected": 0,
              "policy_tags": []
            }
          ],
          "policies": [],
          "schemas": [],
          "default_tenant_id": 1
        }
      }
    }
  }'

ملاحظة: لا يقوم الفحص المسبق بتنفيذ استعلامات المزود. يتم ربط الحمولة المصرح بها بمعرفات الشروط (مثل report_ok) وتقييمها مباشرة. يتم استخدام استعلام المزود فقط أثناء التشغيل المباشر.

الخطوة 2: تسجيل شكل البيانات (المخطط)

curl -s http://127.0.0.1:4000/rpc \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "schemas_register",
      "arguments": {
        "record": {
          "tenant_id": 1,
          "namespace_id": 1,
          "schema_id": "llm-precheck",
          "version": "v1",
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "report_ok": { "type": "number" }
            },
            "required": ["report_ok"]
          },
          "description": "LLM precheck payload schema",
          "created_at": { "kind": "logical", "value": 1 },
          "signing": null
        }
      }
    }
  }'

ملاحظة: يتم تنظيم تسجيل المخطط بواسطة ACL السجل. تجاوز الوصول المحلي فقط هو معطل بشكل افتراضي؛ قم بتكوين server.auth.principals (موصى به) أو اضبط schema_registry.acl.allow_local_only = true للتسجيل فقط في بيئة التطوير إذا رأيت unauthorized.

الخطوة 3: التحقق المسبق مع الحمولة المضمنة

curl -s http://127.0.0.1:4000/rpc \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "precheck",
      "arguments": {
        "tenant_id": 1,
        "namespace_id": 1,
        "scenario_id": "llm-precheck",
        "spec": null,
        "stage_id": "main",
        "data_shape": { "schema_id": "llm-precheck", "version": "v1" },
        "payload": { "report_ok": 0 }
      }
    }
  }'

استجابة التحقق المسبق (الشكل الدقيق):

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "json",
        "json": {
          "decision": {
            "kind": "complete",
            "stage_id": "main"
          },
          "gate_evaluations": [
            {
              "gate_id": "quality",
              "status": "true",
              "trace": [
                { "condition_id": "report_ok", "status": "true" }
              ]
            }
          ]
        }
      }
    ]
  }
}

مهم: precheck لا يُرجع قيم الأدلة أو أخطاء المزود.


تدفق التشغيل المباشر (مراجَع)

# scenario_start
curl -s http://127.0.0.1:4000/rpc \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "scenario_start",
      "arguments": {
        "scenario_id": "llm-precheck",
        "run_config": {
          "tenant_id": 1,
          "namespace_id": 1,
          "run_id": "run-1",
          "scenario_id": "llm-precheck",
          "dispatch_targets": [],
          "policy_tags": []
        },
        "started_at": { "kind": "unix_millis", "value": 1710000000000 },
        "issue_entry_packets": false
      }
    }
  }'

# scenario_next
curl -s http://127.0.0.1:4000/rpc \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 5,
    "method": "tools/call",
    "params": {
      "name": "scenario_next",
      "arguments": {
        "scenario_id": "llm-precheck",
        "request": {
          "run_id": "run-1",
          "tenant_id": 1,
          "namespace_id": 1,
          "trigger_id": "trigger-1",
          "agent_id": "agent-1",
          "time": { "kind": "unix_millis", "value": 1710000000000 },
          "correlation_id": null
        },
        "feedback": "trace"
      }
    }
  }'

النتيجة المباشرة: NextResult { decision, packets, status }. يمكن أن تعيد feedback: "trace" حالة البوابة/الشرط عندما يسمح بذلك سياسة تغذية راجعة الخادم؛ feedback: "evidence" يخضع لقواعد الكشف عن الأدلة.

للفحص الأدلة والأخطاء، اتصل بـ runpack_export أو evidence_query (إذا كانت سياسة الإفصاح تسمح بذلك).


استعادة الأخطاء

فشل التحقق المسبق إما:

  • أخطاء الأداة (لم يتم العثور على المخطط، الحمولة غير صالحة)، أو
  • احتفاظ البوابة (قرار hold)، مع تتبع يظهر أي الشروط غير معروفة/كاذبة.

نظرًا لأن precheck لا يُرجع أخطاء الأدلة:

  1. استخدم evidence_query لتصحيح أخطاء المزود (وفقًا لسياسة الإفصاح).
  2. قم بتشغيل تقييم مباشر وقم بتصدير حزمة التشغيل لفحص أخطاء الأدلة.

نصائح تصميم المخطط

  • استخدم حمولة كائن مفاتيحها معرفات الشروط.
  • قم بتعيين additionalProperties: false لالتقاط الأخطاء المطبعية.
  • إذا كان السيناريو الخاص بك يحتوي على شرط واحد فقط، يمكنك تمرير حمولة غير كائن.

معجم

التحقق المسبق: تقييم الأدلة المؤكدة؛ لا تغيير في الحالة. التشغيل المباشر: تقييم تم جلبه من قبل المزود؛ تم تخزين حزمة التشغيل. شكل البيانات: مخطط JSON المستخدم للتحقق من صحة حمولات التحقق المسبق.