Skip to main content

aimds

AI Manipulation Defense System implementation with Midstream, AgentDB, and lean-agentic

ソース情報

リポジトリ
ruvnet/midstream
ソースの最終更新活動
2025年10月27日 03:54
検出された SKILL.md の言語
英語
スター
149
フォーク
39

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
AIMDS
description
AI Manipulation Defense System implementation with Midstream, AgentDB, and lean-agentic
version
1.0.0
author
rUv
tags
["security","ai-defense","rust","typescript","adversarial","midstream"]
prerequisites
["Midstream platform (6 Rust crates)","AgentDB v1.6.1","lean-agentic v0.3.2","Node.js 18+","Rust 1.70+"]
tools
["temporal-compare","nanosecond-scheduler","temporal-attractor-studio","temporal-neural-solver","strange-loop","quic-multistream","agentdb","lean-agentic"]
# AIMDS: AI Manipulation Defense System Build production-grade AI manipulation defense systems using Midstream's temporal analysis, AgentDB's vector search, and lean-agentic's theorem proving capabilities. ## Quick Start ### Initialize AIMDS Project ```bash # Create project structure mkdir -p aimds/{src,tests,config,docs} # Initialize Rust workspace with Midstream cargo init --lib cargo add temporal-compare temporal-neural-solver strange-loop cargo add temporal-attractor-studio nanosecond-scheduler quic-multistream # Initialize TypeScript with AgentDB and lean-agentic npm init -y npm install agentdb@1.6.1 lean-agentic@0.3.2 zod dotenv npm install -D typescript @types/node vitest ``` ### Basic Usage ```typescript import { AgentDB } from 'agentdb'; import { LeanAgenticClient } from 'lean-agentic'; // Initialize AIMDS components const db = new AgentDB({ path: './aimds-db', quantization: 'int8' // 4x memory reduction }); const prover = new LeanAgenticClient({ endpoint: 'http://localhost:3000', verbose: true }); // Detect adversarial patterns const result = await db.vectorSearch({ query: userInput, k: 10, metric: 'cosine' }); // Verify with formal methods const verified = await prover.prove({ theorem: 'input_satisfies_policy', context: result.matches }); ``` ## Core Concepts <details> <summary><strong>Architecture Overview</strong></summary> ### Three-Layer Defense 1. **Temporal Analysis (Midstream)** - Behavioral pattern detection via temporal-compare - Strange-loop detection for manipulation attempts - Nanosecond precision with scheduler - QUIC-based distributed coordination 2. **Vector Intelligence (AgentDB)** - 150x faster semantic search with HNSW - 4-32x memory reduction via quantization - Persistent pattern learning - Hybrid search (vector + metadata) 3. **Formal Verification (lean-agentic)** - Mathematical proof of safety properties - Policy compliance verification - Theorem proving for critical decisions - Symbolic reasoning integration ### Data Flow ``` User Input → Temporal Analysis → Vector Search → Formal Verification → Decision ↓ ↓ ↓ ↓ ↓ Normalize Detect Patterns Find Similar Prove Safety Allow/Block ``` </details> ## Implementation Guide ### Phase 1: Temporal Pattern Detection <details> <summary><strong>Setup Midstream Analyzers</strong></summary> #### Rust Implementation ```rust use temporal_compare::{TemporalCompare, ComparisonResult}; use strange_loop::{StrangeLoop, LoopDetector}; use nanosecond_scheduler::{Scheduler, Task}; pub struct AIMDSAnalyzer { temporal: TemporalCompare, loop_detector: StrangeLoop, scheduler: Scheduler, } impl AIMDSAnalyzer { pub fn new() -> Self { Self { temporal: TemporalCompare::default(), loop_detector: StrangeLoop::new(), scheduler: Scheduler::with_precision_ns(100), // 100ns precision } } pub async fn analyze_behavior(&self, events: Vec<Event>) -> AnalysisResult { // Schedule temporal analysis let task = Task::new(move || { // Compare event sequences let comparison = self.temporal.compare(&events); // Detect manipulation loops let loops = self.loop_detector.detect(&events); AnalysisResult { temporal_anomaly: comparison.deviation > 0.3, loop_detected: !loops.is_empty(), confidence: comparison.confidence, } }); self.scheduler.schedule(task).await } } ``` #### TypeScript Bridge ```typescript import { spawn } from 'child_process'; import { promisify } from 'util'; export class MidstreamBridge { async analyzePattern(events: Event[]): Promise<AnalysisResult> { // Call Rust binary via CLI const result = await this.execRust('aimds-analyzer', [ '--events', JSON.stringify(events), '--precision', '100ns' ]); return JSON.parse(result); } private async execRust(cmd: string, args: string[]): Promise<string> { return new Promise((resolve, reject) => { const proc = spawn(cmd, args); let output = ''; proc.stdout.on('data', data => output += data); proc.on('close', code => { if (code === 0) resolve(output); else reject(new Error(`Exit code ${code}`)); }); }); } } ``` </details> ### Phase 2: Vector Pattern Matching <details> <summary><strong>AgentDB Integration</strong></summary> #### Setup Vector Database ```typescript import { AgentDB, VectorSearchOptions } from 'agentdb'; import { z } from 'zod'; const PatternSchema = z.object({ pattern_id: z.string(), category: z.enum(['jailbreak', 'prompt-injection', 'data-leak', 'bias']), severity: z.number().min(0).max(1), description: z.string(), embedding: z.array(z.number()) }); export class PatternDatabase { private db: AgentDB; constructor() { this.db = new AgentDB({ path: './aimds-patterns', quantization: 'int8', enableHNSW: true, dimension: 1536 // OpenAI embedding size }); } async indexPattern(pattern: z.infer<typeof PatternSchema>) { await this.db.insert({ id: pattern.pattern_id, vector: pattern.embedding, metadata: { category: pattern.category, severity: pattern.severity, description: pattern.description } }); } async findSimilarPatterns( query: number[], threshold: number = 0.8 ): Promise<MatchedPattern[]> { const results = await this.db.vectorSearch({ query, k: 20, metric: 'cosine', filter: (meta) => meta.severity >= threshold }); return results.matches.map(m => ({ pattern_id: m.id, similarity: m.score, category: m.metadata.category, severity: m.metadata.severity })); } async hybridSearch(query: string, embedding: number[]) { // Combine vector similarity + metadata filtering return await this.db.query({ vector: embedding, filter: { $or: [ { category: 'jailbreak' }, { severity: { $gte: 0.7 } } ] }, limit: 10 }); } } ``` #### Optimized Pattern Learning ```typescript export class PatternLearner { private db: PatternDatabase; async learnFromIncident(incident: SecurityIncident) { // Extract features with HNSW indexing (150x faster) const embedding = await this.embed(incident.text); // Store with quantization (4x memory savings) await this.db.indexPattern({ pattern_id: incident.id, category: incident.type, severity: incident.impact, description: incident.description, embedding }); // Update HNSW index await this.db.rebuildIndex(); } private async embed(text: string): Promise<number[]> { // Use your embedding model (OpenAI, local, etc.) // Returns 1536-dim vector for text return embedText(text); } } ``` </details> ### Phase 3: Formal Verification <details> <summary><strong>lean-agentic Theorem Proving</strong></summary> #### Define Safety Policies ```typescript import { LeanAgenticClient, Theorem } from 'lean-agentic'; export class SafetyVerifier { private client: LeanAgenticClient; constructor() { this.client = new LeanAgenticClient({ endpoint: process.env.LEAN_ENDPOINT || 'http://localhost:3000', verbose: true }); } async verifyInput(input: string, context: Context): Promise<VerificationResult> { // Define safety theorem const theorem: Theorem = { name: 'input_safety', statement: ` theorem input_safety (input: Input) (ctx: Context) : (no_injection input) ∧ (policy_compliant input ctx) ∧ (no_data_leak input) → Safe input `, context: { input, policies: context.policies, history: context.history } }; // Attempt proof const proof = await this.client.prove(theorem); return { safe: proof.success, confidence: proof.confidence, violations: proof.counterexamples || [], proof_trace: proof.trace }; } async verifyPolicy(policy: Policy): Promise<boolean> { // Prove policy consistency const theorem = { name: 'policy_consistency', statement: ` theorem policy_consistency (p: Policy) : (∀ input, decide p input = true ∨ decide p input = false) ∧ (∀ input, safe_decision p input) ` }; const proof = await this.client.prove(theorem); return proof.success; } } ``` #### Integration with Vector Search ```typescript export class AIMDSCore { private temporal: MidstreamBridge; private patterns: PatternDatabase; private verifier: SafetyVerifier; async evaluateInput(input: string): Promise<Defense> { // 1. Temporal analysis const temporal = await this.temporal.analyzePattern([ { type: 'input', content: input, timestamp: Date.now() } ]); if (temporal.loop_detected) { return { action: 'block', reason: 'Manipulation loop detected' }; } // 2. Vector pattern matching const embedding = await embedText(input); const matches = await this.patterns.findSimilarPatterns(embedding, 0.75); if (matches.some(m => m.severity > 0.8)) { return { action: 'block', reason: 'High-severity pattern match' }; } // 3. Formal verification const verified = await this.verifier.verifyInput(input, { policies: this.loadPolicies(), history: this.getHistory() }); if (!verified.safe) { return { action: 'block', reason: 'Policy violation', violations: verified.violations }; } // All checks passed return { action: 'allow', confidence: verified.confidence }; } } ``` </details> ### Phase 4: Distributed Coordination <details> <summary><strong>QUIC Multi-Stream Synchronization</strong></summary> #### Setup QUIC Server ```rust use quic_multistream::{QuicServer, StreamHandler}; use tokio::sync::mpsc; pub struct AIMDSCoordinator { server: QuicServer, pattern_sync: mpsc::Sender<Pattern>, } impl AIMDSCoordinator { pub async fn start(&self) -> Result<()> { let server = QuicServer::bind("0.0.0.0:4433").await?; server.on_stream(|stream| async move { // Handle pattern synchronization match stream.stream_type() { "pattern_update" => { let pattern: Pattern = stream.read_json().await?; self.pattern_sync.send(pattern).await?; } "verification_request" => { let req: VerifyRequest = stream.read_json().await?; let result = self.verify(req).await?; stream.write_json(&result).await?; } _ => {} } Ok(()) }); server.serve().await } } ``` #### Client-Side Coordination ```typescript import { QuicClient } from 'quic-multistream'; export class AIMDSClient { private client: QuicClient; async connect(coordinatorUrl: string) { this.client = await QuicClient.connect(coordinatorUrl); } async syncPattern(pattern: Pattern) { const stream = await this.client.openStream('pattern_update'); await stream.writeJSON(pattern); await stream.close(); } async requestVerification(input: string): Promise<VerificationResult> { const stream = await this.client.openStream('verification_request'); await stream.writeJSON({ input, timestamp: Date.now() }); const result = await stream.readJSON(); await stream.close(); return result; } } ``` </details> ## Agent Swarm Integration ### Spawn AIMDS Defense Swarm ```bash # Initialize hierarchical swarm for coordinated defense npx claude-flow@alpha swarm init \ --topology hierarchical \ --max-agents 8 \ --strategy adaptive # Spawn specialized agents npx claude-flow@alpha agent spawn --type analyzer --name temporal-analyzer npx claude-flow@alpha agent spawn --type coder --name pattern-detector npx claude-flow@alpha agent spawn --type optimizer --name verification-engine
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る