دليل 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 لا يُرجع أخطاء الأدلة:
- استخدم
evidence_queryلتصحيح أخطاء المزود (وفقًا لسياسة الإفصاح). - قم بتشغيل تقييم مباشر وقم بتصدير حزمة التشغيل لفحص أخطاء الأدلة.
نصائح تصميم المخطط
- استخدم حمولة كائن مفاتيحها معرفات الشروط.
- قم بتعيين
additionalProperties: falseلالتقاط الأخطاء المطبعية. - إذا كان السيناريو الخاص بك يحتوي على شرط واحد فقط، يمكنك تمرير حمولة غير كائن.
معجم
التحقق المسبق: تقييم الأدلة المؤكدة؛ لا تغيير في الحالة. التشغيل المباشر: تقييم تم جلبه من قبل المزود؛ تم تخزين حزمة التشغيل. شكل البيانات: مخطط JSON المستخدم للتحقق من صحة حمولات التحقق المسبق.