# स्टिलियोबोट रिलीज श्रृंखला

*पहचान-based bot detection (IPs,user-agents,headers) collapses the moment automation starts rotating identities. StyloBot models clients as behavioral shapes in a dimensional vector space.Here'Why that'is the right level of abstraction for level-4andlevel-5Boots,and how the engine actually works.*

[<img src="/articleimages/stylobot-logo.svg" alt="StyloBot" width="120" />](https://www.stylobot.net)

> **स्टिलियोबोट रिलेस शृंखला**
> 
> 1. **व्यवहार, पहचान नहीं**: क्यों StyloBot ग्राहक व्यवहारिक रूप से मॉडल करता है
> 2. [**व्यवहार-Aware ASP.NET UI**](/blog/behaviour-aware-ux): सर्वर\-\ऐसे पता लगाने के परिणाम पर सतह दे दिया
> 3. [**लंबे समय तक चलाने वाले नेट सेवाओं में असीमित विकास का पता लगाना और स्थिर करना**](/blog/stylobot-release-reliability): विश्वसनीयता अनुशासन जो उत्पादन में इंजन को नीरस बनाए रखता है
> 4. [**व्यवहार-Aware TypeScript UI**](/blog/typescript-sdk): Express , Fastify, और ब्राउज़र घटक
> 5. [**साइडकार वास्तुकला**](/blog/sidecar-architecture): कैसे पता लगाने की इंजन गैर--.NET स्टाक से जुड़ता है
> 6. [**तेजी से सीखना**](/blog/stylobot-release-learning)अनुकूलन सीखने की प्रणाली
> 7. [**उस चीज़ का परीक्षण जो सफल नहीं हो रही है**](/blog/stylobot-release-nondeterministic-testing): सत्यापन अनुशासन
> 8. [**स्टिलियोएक्सट्रैक्ट - एक स्थानीय सीखने के HTML को मार्कडाउन रूपांतरक में**](/blog/stylobot-release-styloextract): एचटीएमएल\→\मार्कडाउन परत जो डिटेक्टर के साथ जोड़ता है\,\walker bug lucidVIEW पकड़ा\M SK3\ और कुत्तेfood लूप कि यह ईमानदार बना

# परिचय

> *ओह क्या जाल हम बुनते हैं जब हम पहली बार धोखा देने के लिए अभ्यास करते हैं*
> 
> वाल्टर स्कॉट

स्टेलोबोट धोखे की मरम्मत लागत का पता लगाता है

निर्दोष यातायात को कहानी बनाने की जरूरत नहीं है।

साल पहले मैं अपराधिक मनोविज्ञान में काम करता था।

अधिकांश बोट प्रणालियां अभी भी पहचान दावों के चारों ओर निर्मित हैं

वो ठीक से काम करता है जब तक वो बॉट्स अच्छे नहीं बनते

मौज़ूद स्वचालन परिक्रमित पहचान आरंभ करता है।

कि StyloBot के पीछे विचार है।

यह सैद्धांतिक नहीं है।

![इस पृष्ठ पर जीवंत पता लगाना (Human, | | 4% bot संभाव्यता |, | Top Bots फलक सूची के बगल में अनुमति दें | MJ | 12 |bot | , | SERankingBacklinksBot | , | Aranet |- | SearchBot \ , | Bingbot और अन्यों को अपने बोट के साथ विश्वास |, | threat | sksk12 | and recent hit count](stylobot-live-detection.png?width=1100&format=webp&quality=70)

<!--category-- Caddy, TypeScript, ASP.NET, Bot Detection, Security, Architecture -->
<datetime class="hidden">2026-06-01T10:30</datetime>

# त्वरित प्रारंभ

स्टेलोबोट रन करने के लिए पूरी तरह से निःशुल्क है. भविष्य में मैं realtime प्रबंधन और रिपोर्टिंग बेचता हूँ। *वास्तविक समय* कॉन्फ़िगरेशन (नहीं पुनः लोड करें

सभी स्रोत यहाँ हैं https://github.comMSC2scottgalM SK3stylobot

इसे स्थापित करने के लिए
**macOS (Homebrew)**

```bash
brew install scottgal/stylobot/stylobot
stylobot 5080 http://localhost:3000
```

**लिनक्स (apt**

```bash
curl -1sLf 'https://dl.cloudsmith.io/public/mostlylucid/stylobot/setup.deb.sh' | sudo bash
sudo apt update && sudo apt install stylobot
stylobot 5080 http://localhost:3000
```

**लिनक्स (मैनुअल**

```bash
# Download from GitHub Releases: stylobot-linux-x64.tar.gz or stylobot-linux-arm64.tar.gz
tar xzf stylobot-linux-x64.tar.gz && chmod +x stylobot && sudo mv stylobot /usr/local/bin/
stylobot 5080 http://localhost:3000
```

**डॉकर**

```bash
docker run --rm -p 8080:8080 -e DEFAULT_UPSTREAM=http://host.docker.internal:3000 \
  scottgal/stylobot-gateway:latest
```

**NuGet ( ASP के रूप में सम्मिलित**

```bash
dotnet add package mostlylucid.botdetection
dotnet add package mostlylucid.botdetection.ui
```

```csharp
builder.Services.AddStyloBot(dashboard => {
    dashboard.AllowUnauthenticatedAccess = true; // dev only
});

app.UseRouting();
app.UseStyloBot();   // broadcast, detection, dashboard: correct ordering guaranteed
app.MapControllers();
```

डैशबोर्ड पर `/_stylobot`. खोज पर `~150µs` प्रथम अनुरोध से प्रति अनुरोध.

![स्टेलोबोट डैशबलेट एक प्रत्यक्ष संस्थापना पर उतरता है: समय के साथ ट्रैफिक, हस्ताक्षर द्वारा प्रत्यक्ष क्रियाकलाप](stylobot-dashboard-landing.png?width=1100&format=webp&quality=70)

---


फिर इसे चलाएँ `stylobot 5080 http://localhost:3000` और voila आपके ऊपरstream साइट है *सुनना* मोड ब्लॉक को वास्तव में भी ब्लॉक करने के लिए प्रयोग करें

यह पोस्ट वर्तमान स्टिलियोबोट जारी श्रृंखला में पहला प्रविष्टि है। [व्यवहार-Aware ASP.NET UI](/blog/behaviour-aware-ux)दिखाता है कि कैसे कि मॉडल Razor दृश्यों और नियंत्रकों के भीतर अनुप्रयोग तर्क बन जाता है

[TOC]

# खतरे: एक सीढ़ी, एक जनसंख्या नहीं

इससे पहले कि हम देखते हैं कि क्या प्रतिरक्षकों के पास है-,-देखें कि वे क्या प्रतिरक्षण कर रहे हैं-'-न एक बात नहीं है, ;-यह एक सीढ़ी है,'-और प्रत्येक स्तंभ स्टैक की एक अलग परत को पराजित करता है

<!-- IMAGE PLACEHOLDER: Bot sophistication ladder visualisation, 5 rungs from "curl scripts" up to "LLM-directed adaptive". Source: AI-generated diagram (cleanest if you ask for "5 stylised silhouettes ascending steps, each more humanoid, sci-fi engineering blueprint style"). -->
![बोट जटिलता सीढ़ी](img-placeholder-bot-ladder.png?width=900&format=webp&quality=40)

---


### 1. मूर्ख / शोरयुक्त बोट

(curl

* **असफल** अच्छा काम करता है
* **WAF** अच्छा काम करता है
* **बोट प्रबंधन** तुच्छ
* **दर सीमा** अच्छा काम करता है

**असफलता बिन्दु** सब कुछ इन पकड़ता है

स्क्रिप्ट जो वेब के आरंभ से मौजूद हैं (perl FTW!); ' साइट पर जाएँ।

---


### 2. मूल स्क्रिप्ट किए गए बोट

(rotating UAM SK1 वैध अंतबिंदुएं

* **असफल** असफलता प्रारंभ करता है
* **WAF** अभी भी प्रभावी
* **बोट प्रबंधन** प्रभावी
* **दर सीमा** ट्युनिंग पर निर्भर करता है

**असफलता बिन्दु** स्पष्ट गलतियों पर निर्भर प्रणालियां

अब आपको ज्ञात पैटर्न पहचानने और ट्रैफिक को बाद में प्रक्रिया करने की जरूरत है

---


### 3. हेडレス ब्राउज़र bots

(PuppeteerM SK1Playwright, JS निष्पादन , वास्तविक प्रवाह

* **असफल** अक्षम
* **WAF** सीमित
* **बोट प्रबंधन** प्राथमिक परत
* **दर सीमा** कमजोरी

**असफलता बिन्दु** किसी भी अनुरोध सटीकता या हस्ताक्षरों पर आधारित

सिर्फ इसलिए आसान है क्योंकि वे कभी-कभी विधिवत रूप से उपयोग किया जाता है।

---


### 4. स्टीलथ बोट

(अनुकूल परिक्रमणM SK1 आवासीय IPs,fingerprint spoofingMSC3

* **असफल** अक्षम
* **WAF** बहुत कम प्रभावी
* **बोट प्रबंधन** संघर्ष करने लगता है
* **दर सीमा** अनुपयुक्त यदि वितरित

**असफलता बिन्दु**

* आईपी प्रतिष्ठा
* स्थिर औठाछाप
* थ्रेसहोल्ड-आधारित नियंत्रण

यह है जहाँ गलत सकारात्मक स्पीक है *आप एक धोखेबाज पहचान के माध्यम से एक ही ग्राहक को पहचानने की जरूरत है*.

---


### अनुकूलित बोट

(धीमीM SK1वितरित, साइट बर्ताव सीखने के लिए , गतिशील रूप से समायोजन करें

* **असफल** बेवकूफ
* **WAF** अक्षम
* **बोट प्रबंधन** असंगत
* **दर सीमा** अक्षम

**असफलता बिन्दु**

* कोई भी बात जो पुनरावृत्तिशीलता को मानती है
* कोई भी जो ज्ञात नमूने मानता हो
* कोई भी मानता है "bot-likeM SK2 व्यवहार

ये बोट व्यवहार करते हैं "correctly" और विकसित होते हैंM SK2 LLMs मानक अवरोधन प्रयासों को अनुकूलित करता है

यही है जहाँ स्टिलियोबोट का लक्ष्य है

---


हम समय के साथ साथ-साथ और सीढ़ी पर ऊपर चला गया है ; सरल पहचान से |( |ब्लाक आईपी | ) | ट्रैफिक और लॉग फ़ाइलों की विशाल मात्रा को समझने की जरूरत से **स्तर पर INTELLIGENT scrapers से प्रतिरक्षा करने के लिए 5 आप Intelligent पता लगाने और सुरक्षा की जरूरत है**

# वर्तमान बाजार

लैडर को ध्यान में रखते हुए

<!-- IMAGE PLACEHOLDER: Heatmap, rows = the 9 market categories below, columns = bot levels 1-5, cells coloured green→red as effectiveness drops. Source: hand-drawn in something like Excalidraw / Figma; this should be a YOU diagram, not AI, since the calls are subjective. -->
![प्रतिरक्षा प्रभावीता के विपरीत बोट स्तर](img-placeholder-defender-heatmap.png?width=900&format=webp&quality=40)

---


### 1. असफल

* **मोड** पोस्ट (reactive)
* **लाटेन्सी** सेकंड → मिनट
* **लागत** बहुत कम (मुफ़्त
* **जटिलता** कम

> किफायती , सरल , लेकिन हमेशा तथ्य के बाद

---


### 2. WAF (Cloudflare WAF, AWS WAF≥, Azure WAF>)

* **मोड** सक्रिय
* **लाटेन्सी** ~1–10 ms
* **लागत** कम → मध्यम ( नियमों | + | अनुरोध संख़्या
* **जटिलता** कम → मध्यम (रूल ट्युनिंग

> तेजी से और सस्ती, लेकिन सिर्फ ज्ञात नमूने के लिए

---


### बोट प्रबंधन

* **मोड** सक्रिय (इनलाइन
* **लाटेन्सी** ~5–50 ms
* **लागत** मध्यम → उच्च (अधिकतर यातायात
* **जटिलता** मध्यम → उच्च | ( | ट्युनिंग |, | मिथ्या सकारात्मक |

> powerful but expensive, and can affect user experience

---


### 4. दर सीमांकन / API गेटवे नियंत्रण

* **मोड** सक्रिय
* **लाटेन्सी** ~1–5 ms
* **लागत** कम → मध्यम (usually bundled but scales with usage
* **जटिलता** मध्यम (perM SK1endpoint tuning)

> किफायती नियंत्रण,, लेकिन धुंधली उपकरण

---


### DDoS सुरक्षा

* **मोड** सक्रिय
* **लाटेन्सी** ~1–5 ms
* **लागत** मध्यम → बहुत उच्च (विशेष रूप से बड़े पैमाने पर
* **जटिलता** मध्यम (अधिकतर प्रबंधित

> अनिवार्य इन्फ्रा परत, लेकिन व्यवहारिक नहीं

---


### 6. धोखाधड़ी / जोखिम स्कोरिंग

* **मोड** मिश्रित
* **लाटेन्सी** ~50–300 ms इनलाइन
* **लागत** प्रति लेन-देन में उच्च ( राजस्व के |/ | %\ SaaS मूल्य निर्धारण
* **जटिलता** उच्च (समेकन | + | ट्युनिंग

> गहरी अंतर्दृष्टि

---


### डिवाइस फ़िंगरप्रिंटिंग

* **मोड** सक्रिय ( क्लाइंट
* **लाटेन्सी** ~10–100 ms
* **लागत** मध्यम → उच्च (अनुप्रयोग के अनुसार
* **जटिलता** उच्च (

> पहचान-heavy, comes with compliance and cost baggage

---


### 8. SIEM

* **मोड** पोस्ट
* **लाटेन्सी** सेकंड → मिनट
* **लागत** बहुत उच्च (डेटा इंजेक्शन घातक है
* **जटिलता** बहुत उच्च (प्रशंसाएँ,अवसूचनाएं

> दृश्यता परत...सस्ती लेकिन आवश्यक

---


### मनपसंद चिपकाई / किनारे तर्क

* **मोड** मिश्रित
* **लाटेन्सी** भिन्नता
* **लागत** छुपा हुआ लेकिन वास्तविक (dev समय
* **जटिलता** समय के साथ उच्च

> "हम छिद्रों को ठीक करने के लिए था

---


# बड़ी समस्या

रैडर के खिलाफ उस सूची को देखें। <s> प्रत्येक श्रेणी को पहचान योग्य बने रहने के लिए यूए की आवश्यकता होती है।

बाज़ार में बॉट्स के आधारों का सबसे बड़ा हिस्सा स्तर पर शामिल है 1–3. यह नहीं है

# संभावित समाधान

पिछले लेखों में मैंने अपने बारे में लिखा है [व्यवहारिक अंतर](/blog/behavioural-inference-systems-blog) प्रणालियां. वे' एक CHEAT है जो एक विशेषता बन गया है

एकल 'सेंसर ' अब आसानी से पार किया जा सकता है *कैसे वे धोखा देते हैं*; घुमाने वाली शीर्षिकाएंM SK1 आईपी्स, यूएएस\, समय-सीमाएँMSC4 अंतबिंदुएं . किसी भी एक सेंसर को पार किया जा सकता है\. सेंचरों का संयोजन संवेदनशीलता बढ़ाता है |( अधिक बॉट्स पकड़ता है·) लेकिन स्थिर प्रणालियों में यह झूठे सकारात्मकता भी बढ़ाता हैं।

व्यवहारिक निष्कर्ष तीन बातें करता है *प्रोफ़ाइल* -> *वर्णित करना* -> *याद रखना*. कि' यह है, ; चाहे यह हो या नहीं, यह ' यह lucidRAG या StyloBot है। *सदिश*; कि' क्या एक क्लाइंट है *व्यवहार* हो जाता है. नोट बर्ताव

स्टिलियोबोट के लिए आप एक 130+ त्रि-आयामी भेक्टर अंतरिक्ष पर एक प्रक्षेपण हैं

# स्टिलियोबोटName

स्टेलोबोट वेब ट्रैफिक पर लागू व्यवहारिक inference इंजन है

यह एक नियम इंजन की तुलना में एक संवेदक संलयन प्रणाली से अधिक निकट है *संकेत*संकेत तंत्र हैं

## यह बाजार से कैसे भिन्न है

बाज़ार अग्रणी दो रूपों में से एक का हिस्सा रखते हैं-; या तो वे सरल स्थिर नियम पर निर्भर करते हैं | ( | लगातार अद्यतन किया जाता है |, | जैसे OWASP फीड्स |

स्टेलोबोट का लक्ष्य असफलता के वितरण मॉडल के लिए है।

hood के नीचे StyloBot चलाता है

```csharp
using Microsoft.AspNetCore.Http;
using Mostlylucid.BotDetection.Models;

namespace Mostlylucid.BotDetection.Detectors;

/// <summary>
///     Execution stage for detectors. Detectors in the same stage run in parallel.
///     Higher stages wait for lower stages to complete.
/// </summary>

public enum DetectorStage
{
    /// <summary>
    ///     Raw signal extraction (UA, headers, IP, client-side).
    ///     No dependencies on other detectors.
    /// </summary>

    RawSignals = 0,

    /// <summary>
    ///     Behavioral analysis that may depend on raw signals.
    ///     Runs after Stage 0 completes.
    /// </summary>

    Behavioral = 1,

    /// <summary>
    ///     Meta-analysis layers (inconsistency detection, risk assessment).
    ///     Reads signals from stages 0 and 1.
    /// </summary>

    MetaAnalysis = 2,

    /// <summary>
    ///     AI/ML-based detection that can use all prior signals.
    ///     Runs last, can learn from all other signals.
    /// </summary>

    Intelligence = 3
}

/// <summary>
///     Interface for bot detection strategies
/// </summary>

public interface IDetector
{
    /// <summary>
    ///     Name of the detector
    /// </summary>

    string Name { get; }

    /// <summary>
    ///     Execution stage for this detector.
    ///     Detectors in the same stage run in parallel.
    ///     Higher stages wait for lower stages to complete.
    /// </summary>

    DetectorStage Stage => DetectorStage.RawSignals;

    /// <summary>
    ///     Analyze an HTTP request for bot characteristics.
    ///     Legacy method - prefer DetectAsync with DetectionContext.
    /// </summary>

    /// <param name="context">HTTP context</param>
    /// <param name="cancellationToken">Cancellation token</param>
    /// <returns>Detection result with confidence score and reasons</returns>
    Task<DetectorResult> DetectAsync(HttpContext context, CancellationToken cancellationToken = default);

    /// <summary>
    ///     Analyze an HTTP request for bot characteristics using shared context.
    ///     Detectors should read signals from prior stages and write their own signals.
    /// </summary>

    /// <param name="detectionContext">Shared detection context with signal bus</param>
    /// <returns>Detection result with confidence score and reasons</returns>
    Task<DetectorResult> DetectAsync(DetectionContext detectionContext)
    {
        // Default implementation for backward compatibility
        return DetectAsync(detectionContext.HttpContext, detectionContext.CancellationToken);
    }
}

/// <summary>
///     Result from an individual detector
/// </summary>

public class DetectorResult
{
    /// <summary>
    ///     Confidence score from this detector (0.0 to 1.0)
    /// </summary>

    public double Confidence { get; set; }

    /// <summary>
    ///     Reasons found by this detector
    /// </summary>

    public List<DetectionReason> Reasons { get; set; } = new();

    /// <summary>
    ///     Bot type if identified
    /// </summary>

    public BotType? BotType { get; set; }

    /// <summary>
    ///     Bot name if known
    /// </summary>

    public string? BotName { get; set; }
}
```

प्रत्येक डिटेक्टर बताता है कि यह क्या है

> नोट: यह एक कोर संकल्पना है।

यह चरण क्रमबद्धता एक अनुशासन है।

मेरा उपयोग कर [mostlylucid.ephemeral framework](https://github.com/scottgal/mostlylucid.atoms) (इस पर और अधिक [पुनः उपयोगीय अल्पावधि निष्पादन लाइब्रेरी का निर्माण](/blog/ephemeral-execution-library) और [अल्पावधि संकेत - परमाणुओं को एक संवेदन नेटवर्क में परिवर्तित करना](/blog/ephemeral-signals)detectors emit what I call 'signals `ua.score=0.75` जो अनुरोध के लिए दोनों मेटाडेटा के रूप में कार्य करते हैं और लॉगिंग / निदान डेटा. कोड एलएलएम | ( | और स्वयं सिस्टम |) | इन संकेतों का उपयोग दक्षताओं को पहचानने के लिए करता है

> एक ओर: अल्पकालीन भी StyloBot LFU देता है / स्लाइडिंगM SK2 विंडो प्रसंस्करण ; यह एक विंडो को बनाए रखने के दौरान मानव अनुरोध छोड़ता है ताकि अगर एक *भविष्य* अनुरोध एक बोट थ्रेसहोल्ड पार करता है हम पीछे देख सकते हैं और संकेत के लिए पुराने को पुनः प्रसंस्करण कर सकते हैं

## पता लगाने वाले 49 निर्णय नहीं हैं

स्टीलोबोट के पास 49 डिटेक्टर हैं. यह शायद ही एक अनुरोध पर 5-7 से अधिक चलाता है।

49 क्षमता है।

**त्वरित पथ** 5-7 सुपर तेजी से | ( | sub \ - | millisecond | ) | आरंभिक पता लगाने वाले और अंगुल छाप देने वाले |. | उस अंगुल पर से यह तय कर सकता है कि आप किस प्रकार के हैं और आपके अगले अनुरोध क्या हो सकते हैं |

**धीमी पथ** महत्वपूर्ण **धीमी पथ अनुरोध पाइपलाइन के बाहर चलाता है**आपका उपयोगकर्ता

यह ट्रिगर करता है जब तेज पथ है *अस्पष्ट* संकेत एक-दूसरे के विपरीत होते हैं।

आप दो escalation विकल्प प्राप्त कर सकते हैं

* **इनलाइन एस्केलेशन** ( अभी भी अनुरोध थ्रेड से बाहर है *अगला* एक ही क्लाइंट से अनुरोध lands). अल्प प्रवाह के लिए अच्छा है जहां आप चाहते हैं अगले क्लिक पहले से ही वर्गीकृत
* **ऑफ़लाइन स्केलेशन** एक कामगार पर चलता है।

किसी भी तरीके से, escalation को ट्रिगर करने वाले अनुरोध ने पहले ही जवाब दिया है. वहाँ कोई ऐसी परिदृश्य नहीं है जहाँ धीमी पथ एक उपयोक्ता के लिए मिलीसेकेंड जोड़ता है

जब आप कर सकते हैं तो मील सेकंड का भुगतान करता है, जब आपको करना होता है तो मिलिसेकण्ड का भुगतान देता है, कभी भी दोनों का भुगतान नहीं करता और कभी भी उपयोगकर्ता पर उन्हें नहीं देता। *इजाज़त* किसी भी स्थिर पाइपलाइन को पार करने के लिए स्लिप करता है। [तेजी से सीखना](/blog/stylobot-release-learning).

परतों का पूरा सेट (you only see them all on a slow-path request that genuinely needs every angle

| परत | | | detectors || | क्या यह पकड़ता है
|-------|-----------|-----------------|
| **पहचान** Signature, HeaderCorrelation, Periodicity| UA rotation, identity factors, temporal patterns
| **प्रोटोकॉल** टीएलएस
| **व्यवहारिक** | वेवफार्म, सत्रवेक्टरM SK2 उन्नत व्यवहारMSC3 कैश व्यवहार , कुकी व्यवहार\, संसाधनWaterfall\, सामग्री अनुक्रम || समयानुमान पैटर्न | , मार्कोव शृंखलाएं | МSK9 | अनुपस्थित आस्तियां | MSC10 | पृष्ठ |MSC11 | लोड अनुक्रम विभेद
| **अंतर्वस्तु** उपयोगकर्ता अभिकर्ता1 हेडर2 ऐस्क्रेपर3 हाक्सर4 सुरक्षा उपकरण5 संस्करण आयु ज्ञात बॉट्स7 आक्रामक पैलोड्स8 असम्भव ब्राउज़र संस्करण
| **नेटवर्क** | IPM SK1 GeoChange, ResponseBehaviorMSC3 MultiLayerCorrelationMST4 CveProbe MST5 Datacenter IPsM ST6 impossible travelMst7 CVE scanningM st8 crossMSt9layer mismatches
| **बुद्धिमानता** | FastPathReputationM SK1 ReputationBias, TimescaleReputationsMSC3 ClusterMST4 SimilarityM ST5 Intent MST6 Historical reputationM st7 Leiden clusteringMst8 HNSW similaritySST9 threat scoring MSST10
| **विज्ञापन धोखाधड़ी** ClickFraud,PiiQueryStringIAB SIVT:datacenter/VPN/headless on paid traffic,referrer spoofing,immediate bounce
| **एआई** | ह्रासवादी, हृासवादीअंतिमM SK2 एलएलएम | | | \ 50- | सुविधा मॉडल | एमएसके5 | ms | mएसके6 | अस्पष्ट मामलों के लिए वैकल्पिक एलएलम
| **क्लाइंट** |ClientSideM SK1FingerprintApproval,ChallengeVerification | | JS Timing probes |, | headless detection

<!-- IMAGE PLACEHOLDER: Fast-path / slow-path flow. CRITICAL: must show fast path returning a response in ~150µs while slow path forks OFF the request thread (dotted arrow into a separate "background / worker" lane) and eventually writes back to the cluster store. Two slow-path lanes: "inline (background, before next request)" and "offline (batched worker)". Source: Excalidraw / Mermaid swimlane diagram. Hand-made beats AI here; the routing logic is exact and the OFF-THREAD nature is the whole point. -->
![त्वरित पथ विपरीत धीमी पथ (धीमा पथ अनुरोध थ्रेड से बाहर है](img-placeholder-fast-slow-path.png?width=900&format=webp&quality=40)

# क्या यदि क्लाइंट व्यवहार एक सदिश है

detectors और सैकड़ों संकेतों के साथ हम प्रत्येक क्लाइंट के बारे में मेटाडेटा की LOT है *अवस्थिति* 130+ आयामी अंतरिक्ष में

What the dashboard shows is a *प्रक्षेपण* ([विकिपीडिया](https://en.wikipedia.org/wiki/Projection_(linear_algebra))उस अवस्थित भेक्टर अंतरिक्ष का ) सात अक्षों पर ढक गया।

![स्टेलोबोट पर मानव हस्ताक्षर](stylobot-human-signature.png?width=1100&format=webp&quality=70)

## बोट आकार होते हैं

ये आकार मानव के आकारों से भिन्न हैं

मनुष्यों में शोर होता है लेकिन *संरचना में सुसंगत*. बोट सुसंगत हैं लेकिन *संरचना में गलत*.

इस साइट के खिलाफ रिकॉर्ड एक घोषित बोट के लिए यही प्रक्षेपण है

![MJ12स्टाइलोबोट पर bot हस्ताक्षर.netM SK2 MSC3bot संभाव्यता](stylobot-bot-signature.png?width=1100&format=webp&quality=70)

दो क्लाइंट्स, एक ही सात अक्षों, दो भिन्न रूपों को मिलाने के लिए . निर्णायक रंग हरा से लाल में बदलता है\. जोखिम प्रोफ़ाइल अपरिचित से बहुत उच्च में बदल जाता है।

एक बार जब आप आकार को देख सकते हैं, तो प्रति-- detector विश्वसनीयता प्राप्तियां व्यक्तिगत रूप से महत्वपूर्ण नहीं होतीं। ; क्या बात है यह कि क्या प्रक्षेपण मानव की तरह दिखता है या किसी एक होने का बहाना कर रहा है जैसे कुछ।

सभी सत्रों पर ट्रैकिंग के साथ जोड़ें (प्रणाली ZERO PII को एकत्र करता है *होना* एक के रिकॉर्डिंग

## बोट्स क्लस्टर (वेक्टरों पर लेडन

जब सब कुछ एक आकार हो जाता है, तो बॉट्स एक-दूसरे से छुपाने को बंद कर देते हैं.

स्टेलोबोट चलाता है [लीडन समुदाय पहचान](https://en.wikipedia.org/wiki/Leiden_algorithm) जीवित भेक्टर अंतरिक्ष के ऊपर. यह चाल मेरी GraphRAG काम से थोक से उधार ली है [GraphRAG: कॉर्पस स्तर पर सदिश खोज क्यों टूटती है](/blog/graphrag-knowledge-graphs-for-rag) और [अंश 2: न्यूनतम व्यवहार्य GraphRAG](/blog/graphrag-minimum-viable-implementation) तुम' पहले से ही इस सही पैटर्न को देखा है *अर्थ समुदाय* दस्तावेज़ टुकड़े के ऊपर इसलिए एक क्वेरी एक संपूर्ण जुड़ा हुआ विचार निकाल सकता है वितरित स्निपेट्स की बजाय . यहाँ यह संरचनात्मक रूप से समान कार्य करता है *व्यवहारिक* ग्राफ में एक बॉट परिवार सिर्फ एक समुदाय है

दो चिंताओं को आगे बढ़ने के लिए योग्य है अगर आप ग्राफ क्लस्टरिंग पहले कर चुके हैं **क्या लीडन में |VM SK2 और |E| वृद्धि के साथ धीमी गति होती है** क्यों इनपुट नहीं है "सभी अनुरोध कभी देखा गया है `SignatureCacheSize`डिफ़ॉल्ट `LowMemory` पूर्वनिर्धारित) और लंबा पूंछ के लिए एक संकुचित केंद्रक परत config है। `M` नोड प्रति पड़ोसियों. बंडिंग अनुशासन जो कि काम करता है में शामिल है [लंबे समय तक चलाने वाले नेट सेवाओं में असीमित विकास का पता लगाना और स्थिर करना](/blog/stylobot-release-reliability). **क्या 't कोसाइन स्तम्भ में 130 आयामों पर collapse** यह naive रूप में करता है . StyloBot दो तरीके से इसे किनारा लेता है | . | HNSW समानता डिजाइन के द्वारा अनुमानित है `M` और `ef_construct`), और इंजन के संदर्भ में काम करता है *एक सीखे गए आर्किटिप एंकर से प्रवाहित* सभी के बजाय शून्य अंतरिक्ष में दूरी जोड़ता है. 1 तो सवाल हमेशा है. 2 इस क्लाइंट ने अपने पहले से कितनी दूर ले गया है. 3 इसके स्थान पर. 4 यह कहाँ है. 5d. 6 रेडियो प्रक्षेपण. 7 सात अक्षों. 8 मानव के लिए है. 9 इंजन कभी भी रेडियो पर क्लस्टर नहीं है. 10

एक मूल का भाग लेने वाले बोट (सही औजार-शैली \,\, एक ही ऑपरेटर \ ,\, सही scraping अभियान \ )\, समान पड़ोस में रहते हैं जब भी वे\ '\, परिक्रमित IPs\ M SK5\, शीर्षिकाएं\ MSC6\, अंगुलियों के छाप और समयबद्धता\ MSP7\ वे\'\, समरूप दिखाई देने के लिए समन्वय नहीं करते थे\ MST9\, MST10\, वे समान दिखाई देते हैं क्योंकि वे समान होते हैं\ Mst11\, संरचनात्मक रूप से\ M st12\

जो StyloBot को दो सुपर पावर्स निःशुल्क देता है

* **एक नया अनुरोध अपने क्लस्टर का निर्णय प्राप्त करता है** पहले-ever-एक ज्ञात ऑपरेटर से देखे गए बॉट के रूप में-?अभी एक दुश्मनी समुदाय के अंदर पहुंचने पर–. कोई गर्म नहीं है। [तेजी से सीखना](/blog/stylobot-release-learning) इस बात के लिए कि कैसे एक घुमाया अंगुल छाप अपने परिवार को विरासत करता है
* **नवीन आक्रमण अपनी क्लस्टर बनाते हैं** जब कुछ सचमुच नया दिखाता है तो यह नहीं ठीक है कहीं-कहीं *स्वयं* संकेत है. धीमी पथ चलाता है

यह भी है जहां समानता खोज (HNSW एक ही सदिशों के ऊपर \) अपने रखता है अर्जित करता है

(आवर्ती UI विचार दिखाया गया है

![व्यवहारिक सदिशों पर लीडन समुदाय](leiden_communities.png?width=900&format=webp&quality=40)

## विपरीत परिणाम

ध्यान दें कि मैंने क्या कहा था 'T कहता है . मैने नहीं कहा था\'न कहता था |' |एक बार सेटअप किया गया\' | या | ' |जब सही रूप से कॉन्फ़िगर किया जाता है\M SK6 |क्योंकि यह एक अच्छा डिफ़ॉल्ट सेट है लेकिन *यह सीखता है*.

जब यह प्रोफाइल चलाता है *आप का यातायात* और समझता है *अपने उपयोक्ता*. creepily नहीं है

आप तब निर्णय कर सकते हैं, या सिस्टम को इसकी देखभाल करने दें (सेटिंग एक बोट थ्रेसहोल्ड का कहना है कि 0.8 अधिकतर के लिए और \0.6 सुरक्षित अंतबिंदुओं के लिए \). इस जहाज की डिफ़ॉल्ट अच्छी हैं \ ; आपके ट्रैफिक पर कुछ घंटे के बाद प्रकट होने वाले डिफ़ोल्ट बेहतर हैं

# निष्कर्ष

स्टेलोबोट अब जीवित है। [github.comM SK1scottgal/stylobot](https://github.com/scottgal/stylobot) या `brew install scottgal/stylobot/stylobot` और यह अपने ऊपरstream इंगित करें

वाणिज्यिक नियंत्रण शीर्ष पर बैठते हैं: बिना पुनः लोड किए प्रत्यक्ष कॉन्फ़िगरेशन [संपर्क करें](https://www.stylobot.net/contact)कोर इंजन आपके इंफ्रारेक्टर पर मुक्त रहता है

जारी श्रृंखला में अगला: [व्यवहार-Aware ASP.NET UI](/blog/behaviour-aware-ux), जो यहाँ वर्णित व्यवहारिक वर्गीकरण लेता है और इसे रजोर के सामने प्रस्तुत करता है [लंबे समय तक चलाने वाले नेट सेवाओं में असीमित विकास का पता लगाना और स्थिर करना](/blog/stylobot-release-reliability) कार्य उदाहरण के रूप में स्टिलोबोट भेक्टर परत के साथ यंत्रक हस्तक्षेप के बिना हमेशा Pi पर बैठने देता है विश्वसनीयता पुनः कार्य शामिल करता है

अगर आप पुराने तकनीकी नेतृत्व चाहते हैं [भाग 1](/blog/botdetection-introduction), [भाग 2](/blog/botdetection-part2-signature-pipeline-and-stylobot-architecture), और [भाग 3](/blog/botdetection-part3-as-simple-as-possible) क्यों ढूंढने के लिए , वास्तुकला , & #44; और दो & #39; - लाइन ड्रॉप [व्यवहारिक अंतर](/blog/behavioural-inference-systems-blog), में सिग्नल पाईपिंग [अल्पावधि संकेत](/blog/ephemeral-signals), और लीडन / क्लस्टरिंग वंश में [ग्राफ आर ए जी](/blog/graphrag-knowledge-graphs-for-rag) और [GraphRAG भाग 2](/blog/graphrag-minimum-viable-implementation).