Skip to main content

openclaw audit

एजेंट रन, टूल कार्रवाइयों और ऑप्ट-इन संदेश जीवनचक्र रिकॉर्ड के लिए Gateway के केवल-मेटाडेटा ऑडिट लेजर से क्वेरी करें। रन और टूल इवेंट के लिए लेजर डिफ़ॉल्ट रूप से चालू रहता है। सभी नए इवेंट रिकॉर्ड रोकने के लिए audit.enabled: false सेट करें और Gateway को पुनः आरंभ करें। संदेश रिकॉर्ड अलग से डिफ़ॉल्ट रूप से अक्षम होते हैं; उन्हें रिकॉर्ड करने के लिए audit.messages को direct या all पर सेट करें और Gateway को पुनः आरंभ करें। मौजूदा रिकॉर्ड की समय-सीमा समाप्त होने तक (30 दिन) उनसे क्वेरी की जा सकती है। लेजर वार्तालाप ट्रांसक्रिप्ट से अलग है: यह पहचान, क्रम, उद्गम, कार्रवाई, स्थिति और सामान्यीकृत परिणाम कोड रिकॉर्ड करता है, लेकिन सामग्री कभी संग्रहीत नहीं करता, और संदेश पहचानकर्ता केवल इंस्टॉलेशन-स्थानीय कुंजीबद्ध छद्मनामों के रूप में दिखाई देते हैं। ऑडिट इतिहास में संपूर्ण डेटा मॉडल, गोपनीयता अर्थविज्ञान, भंडारण/प्रतिधारण सीमाएँ और कवरेज सीमाएँ दी गई हैं; यह पृष्ठ कमांड सतह को कवर करता है।

फ़िल्टर

  • --agent <id>: सटीक एजेंट आईडी
  • --session <key>: सटीक सत्र कुंजी
  • --run <id>: सटीक रन आईडी
  • --kind <kind>: agent_run, tool_action, या message
  • --status <status>: started, succeeded, failed, cancelled, timed_out, blocked, या unknown
  • --direction <direction>: संदेश की दिशा, inbound या outbound
  • --channel <channel>: सटीक संदेश चैनल
  • --after <timestamp> / --before <timestamp>: समावेशी ISO टाइमस्टैम्प या Unix मिलीसेकंड
  • --limit <count>: 1 से 500 तक पृष्ठ आकार; डिफ़ॉल्ट 100
  • --cursor <sequence>: पिछली नवीनतम-प्रथम क्वेरी जारी रखें
  • --json: सीमित पृष्ठ को JSON के रूप में प्रिंट करें
CLI संस्करणित गतिविधि RPC से क्वेरी करता है, इसलिए एक कमांड संपूर्ण कॉन्फ़िगर किया गया लेजर दिखाता है। टेक्स्ट आउटपुट समय, प्रकार, दिशा, चैनल, स्थिति, एजेंट, रन और कार्रवाई दिखाता है। अनुपलब्ध संदेश उद्गम - के रूप में रेंडर होता है; OpenClaw एजेंट या रन आईडी गढ़ता नहीं है। टूल कार्रवाइयाँ टूल का नाम भी दिखाती हैं। JSON आउटपुट में अन्य पृष्ठ मौजूद होने पर nextCursor शामिल होता है। पेजिंग के दौरान आने वाले रिकॉर्ड का क्रम बदले बिना जारी रखने के लिए वह मान --cursor को दें। भले ही संदेश का मुख्य भाग और कच्चे संदेश पहचान फ़ील्ड अनुपस्थित हों, ये निर्यात संवेदनशील संचालनात्मक मेटाडेटा बने रहते हैं। एजेंट, सत्र और रन आईडी, समय, चैनल, परिणाम और स्थिर HMAC संदर्भ गतिविधि को सहसंबद्ध कर सकते हैं। इन्हें अन्य ऑपरेटर रिकॉर्ड के समान अभिगम नियंत्रण और प्रतिधारण प्रक्रियाओं से सुरक्षित रखें।

रिकॉर्ड किए गए इवेंट

Gateway विश्वसनीय जीवनचक्र स्ट्रीम को छह कार्रवाइयों में प्रक्षेपित करता है:
  • agent.run.started
  • agent.run.finished
  • tool.action.started
  • tool.action.finished
  • message.inbound.processed
  • message.outbound.finished
लौटाए गए प्रत्येक रिकॉर्ड में एक स्थिर इवेंट आईडी, एक एकदिश रूप से बढ़ता लेजर अनुक्रम, जीवनचक्र टाइमस्टैम्प, कर्ता, कार्रवाई, स्थिति, एक schemaVersion: 1 मार्कर, स्रोत अनुक्रम और redaction: "metadata_only" होता है। एजेंट/सत्र/रन उद्गम और इवेंट-विशिष्ट फ़ील्ड केवल तभी मौजूद होते हैं, जब विश्वसनीय स्रोत उन्हें उपलब्ध कराता है। संदेश रिकॉर्ड जानबूझकर sessionKey और sessionId को छोड़ देते हैं, इसलिए --session केवल रन और टूल रिकॉर्ड फ़िल्टर करता है। टर्मिनल रन और टूल रिकॉर्ड बंद स्थिति और त्रुटि कोड के साथ सफलता, विफलता, रद्दीकरण, टाइमआउट और नीति अवरोधों में अंतर करते हैं। जब कोई अपस्ट्रीम रनटाइम प्रामाणिक टर्मिनल परिणाम प्रकट नहीं करता, तब unknown एक स्पष्ट असफल परिणाम होता है। टूल कॉल आईडी केवल स्थिर फ़िंगरप्रिंट के रूप में निर्यात की जाती हैं। टूल नामों को संक्षिप्त मॉडल-सामना नाम अनुबंध से मेल खाना आवश्यक है; अन्य मान unknown बन जाते हैं। संदेश रिकॉर्ड दिशा, चैनल, वार्तालाप प्रकार, परिणाम और वैकल्पिक डिलीवरी प्रकार, विफलता चरण, अवधि, परिणाम संख्या, सामान्यीकृत कारण कोड तथा कुंजीबद्ध खाता/वार्तालाप/संदेश/लक्ष्य छद्मनाम जोड़ते हैं। वर्तमान इनबाउंड सीमा उन स्वीकृत संदेशों को कवर करती है जो कोर डिस्पैच तक पहुँचते हैं, जिसमें कोर डुप्लिकेट और टर्मिनल प्रोसेसिंग परिणाम शामिल हैं। आउटबाउंड सीमा प्रत्येक मूल तार्किक उत्तर पेलोड के लिए एक टर्मिनल पंक्ति लिखती है, जो साझा टिकाऊ डिलीवरी तक पहुँचता है; चंकिंग और अडैप्टर फैन-आउट को resultCount में समेकित किया जाता है। कतारबद्ध पुनःप्रयास-योग्य या अस्पष्ट प्रेषण केवल तब रिकॉर्ड किए जाते हैं, जब अभिस्वीकृति, डेड लेटर या समाधान परिणाम को टर्मिनल बना देता है। इन साझा सीमाओं को बायपास करने वाले Plugin-स्थानीय और सीधे-प्रेषण पथ अभी कवर नहीं किए गए हैं; किसी पंक्ति की अनुपस्थिति यह सिद्ध नहीं करती कि कोई संदेश मौजूद नहीं था। ऑडिट लेजर ट्रांसक्रिप्ट, कार्य इतिहास, Cron रन इतिहास या लॉग का स्थान नहीं लेता। यह वार्तालाप सामग्री को किसी अन्य स्टोर में कॉपी किए बिना ऑपरेटर के प्रश्नों के लिए एक छोटा क्रॉस-रन इंडेक्स प्रदान करता है। इनबाउंड पंक्तियों के लिए, durationMs कोर डिस्पैच को मापता है और resultCount अंतिम रूप दिए गए कतारबद्ध टूल, ब्लॉक और उत्तर पेलोड की गणना करता है। आउटबाउंड पंक्तियों के लिए, durationMs में उसके टर्मिनल तक डिलीवरी का स्वामित्व (और इसलिए कतारबद्ध प्रतीक्षा समय) शामिल होता है, जबकि resultCount पहचाने गए वास्तविक प्लेटफ़ॉर्म प्रेषण की गणना करता है। मौजूद होने पर deliveryKind, प्रभावी पोस्ट-हुक, पोस्ट-रेंडर पेलोड का वर्णन करता है; दबाई गई और क्रैश-संदिग्ध पंक्तियाँ इसे छोड़ देती हैं।

Gateway RPC

audit.activity.list के लिए operator.read आवश्यक है और यह समान फ़िल्टर स्वीकार करता है। यह नामित V1 गतिविधि इवेंट यूनियन लौटाता है, जिसमें रन, टूल, इनबाउंड-संदेश और आउटबाउंड-संदेश रिकॉर्ड शामिल होते हैं।
परिणाम { "events": AuditActivityEventV1[], "nextCursor"?: string } है। परिणाम नवीनतम-प्रथम होते हैं और प्रति अनुरोध 500 रिकॉर्ड तक सीमित होते हैं। पुराने रन/टूल क्लाइंट के लिए शिप किया गया audit.list RPC अपरिवर्तित रहता है। जब किसी पुराने Gateway पर audit.activity.list उपलब्ध नहीं होता, तो CLI audit.list को केवल तभी पुनः आज़माता है, जब अनुरोधित प्रत्येक फ़िल्टर उस लीगेसी विधि द्वारा समर्थित हो। पुराने Gateway पर --kind message, --direction और --channel चुपचाप छोड़े जाने के बजाय अपग्रेड संदेश के साथ विफल होते हैं।

संबंधित