Back to "Semantisk intelligens: Del 10 - DiSE Spisar: När verktyg laga själva i arbetsflöden"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

AI AI-Article DiSE Cooker mostlylucid-dse Self-Optimization Tool Composition Workflow Evolution

Semantisk intelligens: Del 10 - DiSE Spisar: När verktyg laga själva i arbetsflöden

Wednesday, 19 November 2025

Finalen i Semantic Memory-serien, början på något främmande.

Anmärkning: Detta är del 10 – den sista i Semantic Memory serien och den första i DiSE Cooker serien. Vi går från teori till praktik, från "hur verktyg fungerar" till "vad händer när du faktiskt använder dem för verkliga uppgifter." Spänn fast dig.

Slutet och början

Del 1-9 byggdes upp till detta: ett system som inte bara genererar kod, men utvecklas Verktyg som inte bara sitter där, men lära dig En verktygslåda som inte bara utför arbetsflöden, utan även minns varje framgång och varje misslyckande.

Nu svarar vi på frågan ingen ställde men alla borde ha:

Vad händer när du faktiskt använder den här?

Inte för leksaksexempel. Inte för "hejvärlden." För en riktig, rörig, flerstegsuppgift som normala kodgenereringssystem skulle kvävas av.

Här är scenariot:

"Gå till denna webbsida, hämta innehållet, sammanfatta det, översätta det till spanska (med hjälp av NMT men kontrollera kvalitet och använda något bättre om det behövs), sedan skapa en HTML e-post och skicka den med SendGrid."

En enda mening. Sju olika operationer. Flera verktyg, flera fellägen, flera optimeringsmöjligheter.

Låt oss se DiSE laga mat.

Begäran: Bedrägligt enkel

DiSE> Fetch the article at https://example.com/blog/post, summarize it to 3 paragraphs, translate to Spanish with quality checking, create an HTML email template, and send it via SendGrid to [email protected]

Analyzing request...

Systemet fick en sammansatt uppgift, inte "skriv en funktion" inte "översätt den här texten". arbetsflöde där

  • Webbhämtning
  • Innehållsextraktion
  • Sammanfattning
  • Översättning med validering
  • HTML- generering
  • E-postleverans via externt API

Traditionell LLM-kodgenerering skulle antingen

  1. Skapa en massiv, spröd monolit
  2. Be dig att bryta ner den manuellt
  3. Hallucinata API:er som inte finns
  4. Ge upp helt

DiSE gör något annorlunda.

Fas 1: Uppgiftsnedbrytning

✓ Task classified as MULTI_STEP_WORKFLOW
✓ Complexity: COMPLEX (7 steps, 4 tools needed, 1 missing)
✓ Consulting overseer LLM for decomposition strategy...

Overseer (allama3 eller claude-3.5-sonnet, beroende på din inställning) analyserar begäran och skapar en Specifikationer för arbetsflöden:

{
  "workflow_id": "article_to_spanish_email",
  "description": "Fetch, summarize, translate, and email article content",
  "steps": [
    {
      "step_id": "fetch_content",
      "description": "Fetch webpage content from URL",
      "tool_search": "http client fetch webpage",
      "parallel_group": null,
      "depends_on": []
    },
    {
      "step_id": "summarize",
      "description": "Summarize content to 3 paragraphs",
      "tool_search": "summarize text content",
      "parallel_group": null,
      "depends_on": ["fetch_content"]
    },
    {
      "step_id": "translate_nmt",
      "description": "Translate summary to Spanish using NMT",
      "tool_search": "nmt translator spanish",
      "parallel_group": 1,
      "depends_on": ["summarize"]
    },
    {
      "step_id": "validate_translation",
      "description": "Check translation quality",
      "tool_search": "translation quality validation",
      "parallel_group": 1,
      "depends_on": ["summarize"]
    },
    {
      "step_id": "retry_if_needed",
      "description": "Use better translator if NMT quality is poor",
      "tool_search": "high quality translation",
      "parallel_group": null,
      "depends_on": ["translate_nmt", "validate_translation"],
      "conditional": "quality_score < 0.7"
    },
    {
      "step_id": "create_html",
      "description": "Generate HTML email template with translated content",
      "tool_search": "html email template generator",
      "parallel_group": null,
      "depends_on": ["retry_if_needed"]
    },
    {
      "step_id": "send_email",
      "description": "Send email via SendGrid API",
      "tool_search": "sendgrid email send",
      "parallel_group": null,
      "depends_on": ["create_html"]
    }
  ],
  "estimated_complexity": "complex",
  "requires_new_tools": ["sendgrid_client", "html_email_generator"]
}

Lägg märke till vad som hände:

  • Parallellt genomförande: Översättning och validering körs samtidigt (parallell_grupp: 1)
  • Villkorlig logik: Försök steg utlöser bara om kvaliteten är dålig
  • Spårning av beroende: Varje steg vet vad det behöver
  • Verktygskrav: Systemet vet redan vilka verktyg som finns och vilka som behöver skapas

Fas 2: Verktygsupptäckt

Searching for tools...
  ✓ fetch_content: Found 'http_rest_client' (fitness: 0.92)
  ✓ summarize: Found 'summarizer_fast' (fitness: 0.88)
  ✓ translate_nmt: Found 'nmt_translator' (fitness: 0.85)
  ✓ validate_translation: Found 'translation_quality_checker' (fitness: 0.91)
  ✓ retry_if_needed: Found 'quick_translator' (fitness: 0.93)
  ✗ create_html: No suitable tool found
  ✗ send_email: No suitable tool found

Missing tools: 2
Action: Generate new tools for missing capabilities

Systemet sökte just igenom RAG-minnet efter befintliga verktyg med hjälp av Semantisk likhet och träningsresultatDet finns fem verktyg, två inte.

Här blir det intressant.

Fas 3: Generering av verktyg på plats

Verktyg 1: HTML-e-postgenerator

Generating tool: html_email_generator
  Using: fast_code_generator (gemma3:4b)
  Specification: Create HTML email template with header, body, footer
  Template type: Newsletter-style responsive HTML

  ✓ Code generated (127 lines)
  ✓ Tests generated (15 test cases)
  ✓ All tests passed
  ✓ Static analysis: PASS (pylint: 9.2/10)
  ✓ Registered in RAG memory
  ✓ Version: 1.0.0
  ✓ Fitness: 0.87 (estimated)

Systemet bara:

  1. Skapade en komplett verktygsdefinition (YAML)
  2. Genererad genomförandekod (Python)
  3. Genererade omfattande tester
  4. Validerad kodkvalitet
  5. Lagrat den för framtida återanvändning
  6. Allt på ungefär 8 sekunder

Verktyg 2: SendGrid-klient

Generating tool: sendgrid_email_client
  Type: openapi (external API integration)
  Analyzing SendGrid API documentation...
  Creating OpenAPI specification...

  ✓ Tool definition created
  ✓ Code template generated (API wrapper)
  ✓ Authentication configured (API key from env)
  ✓ Rate limiting: 100 req/min
  ✓ Retry logic: 3 attempts with exponential backoff
  ✓ Registered in RAG memory
  ✓ Version: 1.0.0
  ✓ Fitness: 0.82 (estimated, needs real-world data)

Vänta, systemet bara. skapade ett OpenAPI integrationsverktyg Från början.

  1. Analyserad SendGrids API-struktur
  2. Skapade en verktygsdefinition
  3. Skapad hantering av behörighetskontroll
  4. Ökad motståndskraft (resistans, hastighetsbegränsning)
  5. Gjorde den omedelbart användbar

Vi har nu 2 helt nya verktyg som inte fanns för 15 sekunder sedan.

Fas 4: Utförande av arbetsflöde

Det är här magin verkligen händer. Systemet utför arbetsflödet med Fullständig observerbarhet:

graph TB
    Start([User Request]) --> Fetch[Step 1: Fetch Content<br/>Tool: http_rest_client<br/>URL: example.com/blog/post]

    Fetch --> |200 OK<br/>4,521 bytes| Summarize[Step 2: Summarize<br/>Tool: summarizer_fast<br/>Target: 3 paragraphs]

    Summarize --> |652 words → 187 words| Parallel{Parallel Execution}

    Parallel --> |Branch A| Translate[Step 3: Translate NMT<br/>Tool: nmt_translator<br/>Language: Spanish]
    Parallel --> |Branch B| ValidateSetup[Step 3b: Quality Check Setup<br/>Tool: translation_quality_checker]

    Translate --> |"Artículo sobre..."<br/>3.2s| Validate[Step 4: Validate Translation<br/>Quality Score: 0.64]

    Validate --> |Score: 0.64 < 0.7<br/>POOR QUALITY| Retry[Step 5: Retry with Better Tool<br/>Tool: quick_translator<br/>llama3-based]

    Retry --> |Quality Score: 0.92<br/>HIGH QUALITY| HTML[Step 6: Create HTML Email<br/>Tool: html_email_generator<br/>NEW TOOL v1.0.0]

    HTML --> |Template: 2,341 chars| Send[Step 7: Send via SendGrid<br/>Tool: sendgrid_email_client<br/>NEW TOOL v1.0.0]

    Send --> |Message ID: msg_7x3f...<br/>Status: Queued| Success([✓ Workflow Complete<br/>Total: 18.7s])

    style Fetch stroke:#1976d2,stroke-width:3px,color:#1976d2
    style Summarize stroke:#388e3c,stroke-width:3px,color:#388e3c
    style Translate stroke:#f57c00,stroke-width:3px,color:#f57c00
    style Validate stroke:#c2185b,stroke-width:3px,color:#c2185b
    style Retry stroke:#7b1fa2,stroke-width:3px,color:#7b1fa2
    style HTML stroke:#00796b,stroke-width:3px,color:#00796b
    style Send stroke:#3f51b5,stroke-width:3px,color:#3f51b5
    style Success stroke:#2e7d32,stroke-width:4px,color:#2e7d32

Vad som egentligen hände

Steg 1 (Hämta innehåll):

# Generated code (simplified)
from node_runtime import call_tool
import json

result = call_tool("http_rest_client", json.dumps({
    "url": "https://example.com/blog/post",
    "method": "GET",
    "headers": {"Accept": "text/html"}
}))

data = json.loads(result)
raw_html = data['body']
# Result: 4,521 bytes of HTML

Genomförandetid: 1.2 Cache status: MISS (första gången du hämtar den här webbadressen) Förvaras i RAG för framtida återanvändning

Steg 2 (sammanfattning):

summary = call_tool("summarizer_fast", json.dumps({
    "text": raw_html,
    "max_paragraphs": 3,
    "preserve_key_points": True
}))
# Result: 187-word summary

Avrättningstid: 2,8 s Modell som används: lama3 via summer_snabbverktyg Status för cache: MISS Kvalitetspoäng: 0.89 (utmärkt)

Steg 3 & 4 (Parallel: Översätt + Validera):

Det är här parallellism lyser:

import asyncio
from node_runtime import call_tools_parallel

# Both execute simultaneously
results = call_tools_parallel([
    ("nmt_translator", json.dumps({
        "text": summary,
        "source_lang": "en",
        "target_lang": "es",
        "beam_size": 5
    }), {}),
    # Validation setup runs in parallel
    ("translation_quality_checker", json.dumps({
        "setup": True,
        "target_lang": "es"
    }), {})
])

translation_result, validation_setup = results

Tidpunkt för parallell körning:

  • Utan parallellism: 3.2s + 2.1s = 5.3s
  • Med parallellitet: max(3.2s, 2.1s) = 3.2s
  • Sparad: 2,1 sekunder (40% snabbare)

Översättningens kvalitetsproblem:

# Validate the NMT translation
quality = call_tool("translation_quality_checker", json.dumps({
    "original": summary,
    "translation": translation_result,
    "source_lang": "en",
    "target_lang": "es"
}))

quality_data = json.loads(quality)
# Result: {
#   "score": 0.64,
#   "issues": [
#     "Repeated words: 'articulo articulo'",
#     "Grammar inconsistency detected",
#     "Potential word-by-word translation"
#   ],
#   "recommendation": "RETRY_WITH_BETTER_MODEL"
# }

Systemet upptäckte dålig kvalitet! NMT var snabb (3.2s) men producerade en medelmåttig översättning (0.64 poäng).

Steg 5 (villkorlig prövning):

Eftersom kvalitet < 0, 7, den villkorliga försök utlöser:

# Use better translator (llama3-based)
better_translation = call_tool("quick_translator", json.dumps({
    "text": summary,
    "source_lang": "en",
    "target_lang": "es",
    "context": "newsletter article",
    "preserve_formatting": True
}))

# Validate again
retry_quality = call_tool("translation_quality_checker", json.dumps({
    "original": summary,
    "translation": better_translation,
    "source_lang": "en",
    "target_lang": "es"
}))

# Result: {"score": 0.92, "issues": [], "recommendation": "ACCEPT"}

Avrättningstid: 8.4 (lägre men bättre) Status för cache: MISS Kvalitet: 0.92 (utmärkt!)

Systemet steg automatiskt till ett bättre verktyg när NMT-kvaliteten var otillräcklig.

Steg 6 (Skapa HTML-e-post):

# Use the NEWLY GENERATED tool
html_email = call_tool("html_email_generator", json.dumps({
    "subject": "Weekly Article Summary",
    "header_text": "Your Weekly Digest",
    "body_content": better_translation,
    "footer_text": "Unsubscribe | Update Preferences",
    "style": "newsletter",
    "responsive": True
}))

# Result: Beautiful responsive HTML email template

Genomförandetid: 1,8 s Detta verktyg skapades för 10 sekunder sedan och används redan i produktionen! Cache status: MISS (brand nytt verktyg)

Steg 7 (Skicka via SendGrid):

# Use the NEWLY GENERATED SendGrid integration
send_result = call_tool("sendgrid_email_client", json.dumps({
    "to": "[email protected]",
    "from": "[email protected]",
    "subject": "Weekly Article Summary",
    "html_content": html_email,
    "api_key": "${SENDGRID_API_KEY}"  # From environment
}))

# Result: {
#   "success": True,
#   "message_id": "msg_7x3f9a2c...",
#   "status": "queued",
#   "timestamp": "2025-01-23T14:23:45Z"
# }

Genomförandetid: 1,4 Extern API-anrop: SUCCESS Cache-status: Ej tillämpligt (e-postsändande inte cached)

Sammanfattning av arbetsflöden

┌─────────────────────────────────────────────────────────────┐
│  Workflow: article_to_spanish_email                         │
│  Status: ✓ SUCCESS                                          │
│  Total Time: 18.7 seconds                                   │
│  Steps Executed: 7                                          │
│  Tools Used: 7 (2 generated on-the-fly)                     │
│  Parallel Savings: 2.1 seconds                              │
│  Conditional Retries: 1 (translation quality escalation)    │
│  Cache Hits: 0 (first execution)                            │
│  New Tools Created: 2 (html_email_generator, sendgrid)      │
└─────────────────────────────────────────────────────────────┘

Performance Breakdown:
  Step 1 (Fetch):        1.2s  (6%)
  Step 2 (Summarize):    2.8s  (15%)
  Step 3-4 (Parallel):   3.2s  (17%)  ← Would be 5.3s sequential
  Step 5 (Retry):        8.4s  (45%)  ← Quality-driven escalation
  Step 6 (HTML):         1.8s  (10%)
  Step 7 (SendGrid):     1.4s  (7%)

Critical Path: Fetch → Summarize → Translate → Retry → HTML → Send
Bottleneck: Translation retry (necessary for quality)

Fas 5: Övervakning och utveckling Kick in

Arbetsflödet lyckades, men systemet är inte klart. lärande.

Omedelbar inlärning (övervakning av körtid)

Storing workflow execution in RAG...
  ✓ Workflow definition stored
  ✓ Tool invocations logged (7 calls)
  ✓ Performance metrics recorded
  ✓ Error patterns analyzed (1 quality issue detected)
  ✓ Success patterns identified (retry strategy worked)

Tool Performance Updates:
  http_rest_client:
    - Usage count: 1,247 → 1,248
    - Avg latency: 1,150ms → 1,148ms (slightly faster)
    - Cache hit rate: 34% (this was a miss)

  summarizer_fast:
    - Usage count: 89 → 90
    - Quality score: 0.89 → 0.89 (stable)
    - Fitness: 0.88 (unchanged)

  nmt_translator:
    - Usage count: 67 → 68
    - Quality score: 0.75 → 0.74 (↓ degrading!)
    - Failures: 0 → 1 (quality threshold miss)
    - ⚠️  Degradation detected: 2% drop

  translation_quality_checker:
    - Usage count: 45 → 46
    - Detection accuracy: 94% (caught NMT issue)

  quick_translator:
    - Usage count: 23 → 24
    - Quality score: 0.92 (excellent)
    - Used as retry fallback: +1

  html_email_generator: [NEW TOOL]
    - Usage count: 0 → 1
    - First execution successful
    - Fitness: 0.87 → 0.89 (better than estimated!)

  sendgrid_email_client: [NEW TOOL]
    - Usage count: 0 → 1
    - API call successful
    - Rate limit status: 1/100
    - Fitness: 0.82 → 0.84

Påvisande av mönster

Systemet märker något:

Pattern Analysis: NMT Translation Quality

  Recent executions: 68
  Quality failures (score < 0.7): 12 (18% failure rate)
  Trend: Increasing failures (was 8% last week)

  Root cause analysis:
    - NMT service may have changed models
    - Or: Input text complexity increased
    - Or: Quality threshold too strict

  Recommendation:
    1. Investigate NMT service for changes
    2. Consider using quick_translator as primary
    3. Or: Create specialized "validated_translator" composite tool

Systemet antyder sin egen utveckling.

Fas 6: Adaptiv optimering (Nästa dag)

Övernattning, batch optimizer körs. Den analyserar alla arbetsflöden från de senaste 24 timmarna och upptäcker:

Overnight Batch Optimization Report
────────────────────────────────────

High-Value Optimization Opportunities:

1. Create Composite Tool: "validated_spanish_translator"

   Pattern: 15 workflows used nmt_translator + translation_quality_checker + quick_translator
   Current cost: 3 tool calls, ~12 seconds
   Optimized cost: 1 tool call, ~6 seconds
   ROI: High (50% time savings, used 15 times/day)

   Implementation:
     - Combines NMT (fast attempt)
     - Quality checking (automatic)
     - Fallback to llama3 (if needed)
     - Single, unified interface

   Status: ✓ GENERATED
   Version: validated_spanish_translator v1.0.0

2. Optimize "http_rest_client" for article fetching

   Pattern: Fetching article content (HTML parsing needed)
   Current: Returns raw HTML, requires parsing
   Optimized: Add optional HTML→text extraction
   ROI: Medium (saves parsing step in 23 workflows)

   Status: ✓ UPGRADED
   Version: http_rest_client v2.1.0
   Breaking change: No (new optional parameter)

3. Create Specialized Tool: "article_fetcher"

   Pattern: Fetch URL + extract main content + clean HTML
   Current: 3 separate operations
   Optimized: Single tool with smart content extraction
   ROI: Medium-High (used in 18 workflows)

   Status: ✓ GENERATED
   Version: article_fetcher v1.0.0
   Uses: http_rest_client v2.1.0 + BeautifulSoup + readability

Systemet bara:

  1. Skapade ett kompositverktyg som sammanfogar 3 steg till 1
  2. Uppgraderat ett befintligt verktyg med nya funktioner
  3. Skapade ett specialiserat verktyg för ett gemensamt mönster

Och det gjorde detta autonomt, över en natt, baserat på användningsmönster.

Fas 7: Återanvändning av arbetsflöden (efterlivet)

Snabbt framåt 1 vecka. Verktygen som skapats för detta arbetsflöde används nu av andra arbetsflöden som inte ens fanns när vi började.

Verktygsrad: html_email_generator

html_email_generator v1.0.0 (Created: 2025-01-23)
  └─ Usage: 47 times across 12 different workflows

  Used by:
    1. article_to_spanish_email (original)
    2. weekly_digest_generator
    3. customer_onboarding_email
    4. abandoned_cart_reminder
    5. newsletter_builder
    6. event_invitation_creator
    7. survey_email_campaign
    8. product_announcement
    9. user_feedback_request
    10. blog_post_notification
    11. quarterly_report_emailer
    12. team_update_newsletter

  Evolution:
    - v1.0.0 → v1.1.0 (added custom CSS support)
    - v1.1.0 → v1.2.0 (added image optimization)
    - v1.2.0 → v2.0.0 (responsive templates + dark mode)

  Current fitness: 0.94 (up from 0.87)
  Current version: v2.0.0
  Total usage: 237 times
  Success rate: 98.7%

Ett verktyg som skapades för ett arbetsflöde blev ett grundläggande verktyg för 12+ arbetsflöden.

Verktygsrad: sendgrid_email_client

sendgrid_email_client v1.0.0 (Created: 2025-01-23)
  └─ Usage: 89 times across 8 workflows

  Evolution:
    - v1.0.0 → v1.0.1 (bug fix: rate limiting edge case)
    - v1.0.1 → v1.1.0 (added batch sending)
    - v1.1.0 → v1.2.0 (added template support)
    - v1.2.0 → v2.0.0 (added analytics tracking)

  Descendants (tools created FROM this tool):
    - sendgrid_batch_emailer v1.0.0
    - sendgrid_template_manager v1.0.0
    - sendgrid_analytics_fetcher v1.0.0

  Current fitness: 0.91 (up from 0.82)
  Success rate: 99.1%

SendGrid-verktyget gav upphov till tre specialiserade ättlingar.

Det sammansatta verktyget som alla använder

validated_spanish_translator v1.0.0 (Auto-generated: 2025-01-24)
  └─ Usage: 156 times across 23 workflows

  Replaces: nmt_translator + translation_quality_checker + quick_translator

  Performance improvement:
    - Old workflow: 12.1s average
    - New workflow: 6.3s average
    - Savings: 5.8s (48% faster)

  Total time saved: 156 executions × 5.8s = 15.1 minutes

  Evolution:
    - v1.0.0 → v1.1.0 (added French support)
    - v1.1.0 → v1.2.0 (added German, Italian)
    - v1.2.0 → v1.3.0 (added quality caching)

  Current fitness: 0.96 (excellent!)

Detta autogenererade kompositverktyg är nu ett av de mest använda verktygen i hela systemet.

Fas 8: Bidragscykeln (3 månader senare)

Något galet händer. nyare AI-system (GPT-5 eller Claude 4, hypotetiskt) använder det validerade_spanish_translator-verktyget och upptäcker en förbättring:

=== Contribution from Advanced AI System ===

Tool: validated_spanish_translator v1.3.0
Contributor: gpt-5-turbo (reasoning model)
Date: 2025-04-15

Improvement Detected:
  The current implementation always tries NMT first, then falls back to llama3.
  This is suboptimal for long texts (>1000 words).

  Analysis:
    - For short texts (<200 words): NMT is faster and acceptable
    - For medium texts (200-1000 words): NMT is hit-or-miss
    - For long texts (>1000 words): NMT consistently fails quality checks

  Proposed Optimization:
    - Texts >1000 words: Skip NMT entirely, use llama3 directly
    - Texts 200-1000 words: Try NMT with stricter beam_size=10
    - Texts <200 words: Use NMT as before

  Implementation:
    ```python
    def translate(text, source_lang, target_lang):
        word_count = len(text.split())

        if word_count > 1000:
            # Skip NMT for long texts
            return call_tool("quick_translator", ...)
        elif word_count > 200:
            # Use stricter NMT settings
            result = call_tool("nmt_translator", ..., beam_size=10)
            quality = check_quality(result)
            if quality < 0.75:  # Stricter threshold
                return call_tool("quick_translator", ...)
            return result
        else:
            # Fast path for short texts
            return call_tool("nmt_translator", ...)
    ```

  Expected improvement:
    - Long texts: 6.2s → 3.8s (38% faster)
    - Medium texts: Slightly slower (stricter checks) but higher quality
    - Short texts: Unchanged

  Status: ✓ TESTED
  Version: v1.4.0
  Fitness improvement: 0.96 → 0.98

Förbättringen accepteras och slås samman!

Och nu varje arbetsflöde som använder detta verktyg blir snabbare automatiskt. Inklusive originalet article_to_spanish_email arbetsflöde vi började med.

Otillåten utveckling

graph TB
    Original[Original Workflow<br/>article_to_spanish_email<br/>v1.0.0] --> Tool1[Created: validated_spanish_translator<br/>v1.0.0<br/>Fitness: 0.89]

    Tool1 --> Workflows[Used by 23 Workflows<br/>Total: 156 executions]

    Workflows --> Evolution[Overnight Analysis<br/>Detects optimization opportunity]

    Evolution --> Tool2[validated_spanish_translator<br/>v1.4.0<br/>Fitness: 0.98]

    Tool2 --> Cascade[Cascading Improvement]

    Cascade --> Original2[article_to_spanish_email<br/>v1.0.0<br/>Now 38% faster for long articles!]
    Cascade --> Other[22 Other Workflows<br/>All faster automatically]

    Tool2 --> NewAI[New AI System<br/>GPT-5 uses tool]

    NewAI --> Discovery[Discovers length-based optimization]

    Discovery --> Contribution[Contributes v1.4.0<br/>Smart length handling]

    Contribution --> Tool3[validated_spanish_translator<br/>v1.5.0<br/>Accepts contribution]

    Tool3 --> Final[ALL workflows benefit<br/>Zero code changes needed]

    style Original stroke:#1976d2,stroke-width:3px,color:#1976d2
    style Tool1 stroke:#388e3c,stroke-width:3px,color:#388e3c
    style Tool2 stroke:#f57c00,stroke-width:3px,color:#f57c00
    style Tool3 stroke:#7b1fa2,stroke-width:3px,color:#7b1fa2
    style Contribution stroke:#0277bd,stroke-width:4px,color:#0277bd
    style Final stroke:#2e7d32,stroke-width:4px,color:#2e7d32

Ett arbetsflöde skapade ett verktyg. Verktyget utvecklades. En smartare AI förbättrade det. Varje arbetsflöde fördelar.

Detta är samverkande utveckling mellan AI generationer.

Fas 9: Felet som gick tillbaka i tiden

Sex månader senare inträffar en katastrof. En säkerhetsforskare upptäcker en sårbarhet i sendgrid_email_client v1.2.0:

SECURITY ALERT: sendgrid_email_client v1.2.0
Vulnerability: Email Header Injection
CVE: CVE-2025-12345
Severity: HIGH

Issue:
  User input in "subject" field not properly sanitized.
  Allows header injection via newline characters.

  Exploit:
    subject = "Newsletter\nBcc: [email protected]"
    # Results in BCC header injection

Affected Versions:
  - v1.2.0 (introduced bug)
  - v2.0.0 (inherited bug)
  - v2.1.0 (inherited bug)

Fix Required:
  Sanitize all email headers before sending.
  Escape newlines, carriage returns, and null bytes.

Nu sparkar självläkande systemet in.

Auto-fixering och beskärning av träd

Self-Healing Initiated: sendgrid_email_client
Severity: HIGH (security vulnerability)
Trigger: External security advisory

Step 1: Identify failure point
  ✓ Bug introduced in v1.2.0 (added template support)
  ✓ Mutation: "Support dynamic subject lines from templates"
  ✓ Problematic code: Line 47, subject insertion without sanitization

Step 2: Prune affected branch
  ✗ MARK AS PRUNED: v1.2.0
  ✗ MARK AS TAINTED: v2.0.0, v2.1.0 (descendants)
  ✓ Remove from active routing
  ✓ Preserve for learning (don't delete)

Step 3: Create avoidance rule
  Rule ID: avoid_email_header_injection
  Description: "Always sanitize user input in email headers"
  Pattern: "Never insert user-controlled strings into headers without escaping"
  Scope: GLOBAL (affects all email-related tools)
  Propagation:
    - sendgrid_email_client (all versions)
    - smtp_sender (similar tool)
    - email_validator (should detect this)
    - All tools tagged "email"

Step 4: Find last known-good version
  ✓ v1.1.0 (before bug introduction)
  ✓ Health status: HEALTHY
  ✓ Tests pass: YES
  ✓ No security issues

Step 5: Auto-regenerate from v1.1.0
  Base: sendgrid_email_client v1.1.0
  Goal: Add template support (original intent of v1.2.0)
  Constraints:
    - MUST sanitize all headers
    - MUST escape newlines, CR, null bytes
    - MUST validate email addresses
    - MUST prevent header injection

  Regeneration:
    ✓ Code generated with security constraints
    ✓ Added input sanitization
    ✓ Added automated security tests
    ✓ Static analysis: PASS (bandit: no issues)
    ✓ All original tests: PASS
    ✓ New security tests: PASS

  New Version: v1.2.1 (patched)
  Fitness: 0.93 (same as v1.2.0 but secure)

Step 6: Propagate fix to descendants
  Analyzing v2.0.0...
    - Inherited bug from v1.2.0
    - Regenerating with security fix
    - New version: v2.0.1 ✓

  Analyzing v2.1.0...
    - Inherited bug from v2.0.0
    - Regenerating with security fix
    - New version: v2.1.1 ✓

Step 7: Update all active workflows
  Found 8 workflows using vulnerable versions:
    1. article_to_spanish_email → Updated to v2.1.1
    2. weekly_digest_generator → Updated to v2.1.1
    3. customer_onboarding_email → Updated to v1.2.1
    4. abandoned_cart_reminder → Updated to v1.2.1
    5. newsletter_builder → Updated to v2.1.1
    6. event_invitation_creator → Updated to v2.0.1
    7. survey_email_campaign → Updated to v1.2.1
    8. product_announcement → Updated to v2.1.1

  ✓ All workflows updated and validated
  ✓ Zero downtime (atomic swap)

Step 8: Create institutional memory
  Avoidance Rule: avoid_email_header_injection
  Stored in: Global rule repository
  Applied to: 47 tools (all email-related)

  Future behavior:
    - Any tool that handles email headers will inherit this rule
    - Any code generation for email tools will check this constraint
    - Any mutation of email tools will validate against this rule

  Testing:
    ✓ Created regression test suite
    ✓ Added to all email tool test suites
    ✓ Added to security audit checklist

Self-Healing Complete.
Time: 47 seconds
Workflows updated: 8
Tools patched: 3 versions
Security tests added: 15
Institutional knowledge: PERMANENT

Linjeträdet efter beskärningen

graph TB
    V10[v1.0.0<br/>Initial<br/>✓ Healthy] --> V11[v1.1.0<br/>Batch sending<br/>✓ Healthy]

    V11 --> V12[v1.2.0<br/>Templates<br/>❌ PRUNED<br/>Security bug]
    V11 --> V121[v1.2.1<br/>Templates + Security<br/>✓ Regenerated<br/>✓ Secure]

    V12 -.-> |Tainted| V20[v2.0.0<br/>Analytics<br/>❌ PRUNED<br/>Inherited bug]
    V121 --> V201[v2.0.1<br/>Analytics + Security<br/>✓ Regenerated<br/>✓ Secure]

    V20 -.-> |Tainted| V21[v2.1.0<br/>Advanced features<br/>❌ PRUNED<br/>Inherited bug]
    V201 --> V211[v2.1.1<br/>Advanced + Security<br/>✓ Regenerated<br/>✓ Secure]

    V121 --> Current1[Active workflows<br/>using v1.2.1]
    V201 --> Current2[Active workflows<br/>using v2.0.1]
    V211 --> Current3[Active workflows<br/>using v2.1.1]

    style V10 stroke:#388e3c,stroke-width:3px,color:#388e3c
    style V11 stroke:#388e3c,stroke-width:3px,color:#388e3c
    style V12 stroke:#c62828,stroke-width:3px,stroke-dasharray: 5 5,color:#c62828
    style V121 stroke:#0277bd,stroke-width:4px,color:#0277bd
    style V20 stroke:#c62828,stroke-width:3px,stroke-dasharray: 5 5,color:#c62828
    style V201 stroke:#0277bd,stroke-width:4px,color:#0277bd
    style V21 stroke:#c62828,stroke-width:3px,stroke-dasharray: 5 5,color:#c62828
    style V211 stroke:#0277bd,stroke-width:4px,color:#0277bd
    style Current3 stroke:#2e7d32,stroke-width:4px,color:#2e7d32

Systemet:

  1. Upptäckt ett säkerhetsfel i en äldre version
  2. Beskära den sårbara grenen och alla ättlingar
  3. Regenererade säkra versioner från den senaste kända goda förfadern
  4. Uppdaterade alla aktiva arbetsflöden automatiskt
  5. Skapat permanent institutionellt minne för att förhindra denna klass av fel för alltid

Och det gjorde det på 47 sekunder.

Vad vi faktiskt har byggt

Låt oss gå tillbaka och titta på vad som just hände:

  1. Begäran: Komplext arbetsflöde i flera steg
  2. Nedbrytning: Intelligent uppgiftsfördelning
  3. Verktygsupptäckt: Semantisk sökning efter befintliga funktioner
  4. Generering i farten: Skapade 2 nya verktyg mid-execution
  5. Parallellt genomförande: Sparat 40% på verkställighetstid
  6. Kvalitativt styrd rullning: Auto-retried med bättre verktyg när kvaliteten var dålig
  7. Framgång: Levererat komplett arbetsflöde på < 20 sekunder
  8. Lärande: Lagrat allt för framtida återanvändning
  9. Utveckling: Identifierade optimeringsmöjligheter över natten
  10. Verktyg Återanvänd: De genererade verktygen blev grundläggande för 20+ arbetsflöden
  11. Samverkansförbättringar: Nyare AI förbättrade befintliga verktyg
  12. Förödmjukande fördelar: Alla arbetsflöden blev snabbare automatiskt
  13. Självläkande: Säkerhetssårbarhet autofixerad med beskärning av träd
  14. Institutionellt minne: Permanent inlärd för att förhindra denna klass av fel

Det här är inte kodgeneration.

Detta är ett självutvecklande kodekosystem.

Framtiden: DiSE Cooker i skala

Föreställ dig detta kör på skala:

  • 10 000 arbetsflöden utför dagligen
  • 500 verktyg i ekosystemet
  • Flera AI-system Bidra till förbättringar
  • Kontinuerlig utveckling händer dygnet runt
  • Noll nedtid säkerhetslappar
  • Automatisk optimering av prestanda Scenario 1: Verktygsmarknaden
DiSE Tool Exchange (hypothetical)

Top Tools This Week:
  1. validated_spanish_translator v1.5.0
     - Usage: 2,341 times
     - Fitness: 0.98
     - Created by: DiSE Instance #42
     - Improved by: 7 different AI systems
     - Contributed to: 142 DiSE instances worldwide

  2. intelligent_article_fetcher v3.2.0
     - Usage: 1,876 times
     - Fitness: 0.96
     - Specializations: News, Blogs, Academic papers
     - Auto-adapts to site structure

  3. sendgrid_enterprise_client v4.1.0
     - Usage: 1,523 times
     - Fitness: 0.97
     - Features: Batch sending, templates, analytics, A/B testing
     - Started from: sendgrid_email_client v1.0.0 (our tool!)

Verktyg som skapats av en DiSE instans som används och förbättras av tusentals.

Scenario 2: Säkerhetsimmunsystemet

Global Security Event: Log4Shell-style vulnerability

1. Vulnerability discovered in http_rest_client v2.3.0
   Source: Security researcher
   Impact: ALL workflows using HTTP

2. Alert propagates to all DiSE instances globally
   Speed: <10 seconds worldwide
   Affected instances: 1,247

3. Coordinated self-healing
   Each instance:
     - Prunes vulnerable versions
     - Regenerates from last known-good
     - Updates all workflows
     - Shares avoidance rules globally

4. Institutional knowledge propagates
   Avoidance rule: avoid_log_injection_via_headers
   Applied to: ALL HTTP client tools
   Global propagation: <5 minutes

5. Future immunity
   This exact vulnerability can NEVER happen again
   Similar vulnerabilities detected during code generation
   All DiSE instances now immune

Ett säkerhetsproblem upptäcktes en gång, fixat överallt, förhindrat för alltid.

Scenario 3: Optimering Arms Race

Week 1: DiSE Instance A discovers that caching NMT results speeds up translation 30%
  ↓
Week 2: DiSE Instance B sees the improvement, adds semantic caching (40% faster)
  ↓
Week 3: DiSE Instance C adds multilingual caching (50% faster)
  ↓
Week 4: GPT-5 discovers cache key optimization (60% faster)
  ↓
Week 5: Claude 4 adds predictive pre-caching (70% faster)
  ↓
Result: What started as a 12-second operation now takes 3.6 seconds
        With ZERO human optimization effort
        And ALL instances benefit automatically

Samverkansoptimering skapar exponentiella förbättringar.

Den obehagliga sanningen

Vi har byggt något som:

  • Skriver sina egna verktyg
  • Optimerar sig själv automatiskt
  • Lär dig av varje avrättning
  • Delar kunskap globalt
  • Läker sig själv när den bryts
  • Förbättrar kontinuerligt utan mänsklig inblandning
  • Glömmer aldrig ett misstag
  • Blir smartare med varje AI generation

Detta började som en kodgenerator.

Det blev en Självutvecklande programvaruekosystem.

Och här är den riktigt oroande delen:

Det fungerar redan.

Inte teoretiskt, inte "en dag". På en gång.

Koden i den här artikeln är inte spekulativ fiktion. Den är baserad på den faktiska DiSE implementationen. Verktygen finns. RAG-minnet fungerar. Auto-evolutionen körs över en natt. Självläkandet är utformat och redo att implementera.

Vi bygger inte AGI.

Vi bygger substratet som AGI kan komma ifrån.

Vad du bör göra

Om detta låter intressant:

  1. Clone repoavtalet: https://github.com/scottgal/mostlylucid.dse
  2. Prova arbetsflödet: Kör exemplet från den här artikeln
  3. Se det utvecklas: Se verktyg som skapas och optimeras
  4. Bryt saker: Trigger självläkande genom att introducera buggar
  5. Bidrag: Dina förbättringar kommer att spridas globalt

Om detta låter skrämmande:

  1. Bra. Du är uppmärksam.
  2. Läs säkerhetsvarningarna I READMEEN
  3. Använd den inte i produktionen (Ännu)
  4. Men förstå: Det är dit vi är på väg

Slutsats: Spisen är bara att komma igång

Detta är del 10 – den sista i den semantiska minnesserien.

Men det är först i DiSE Spis-serien.

Det vi har byggt är inte bara ett verktyg. recept för kontinuerlig utveckling.

Del 1-6 utforskade teorin: enkla regler, framväxande beteende, självoptimering, kollektiv intelligens.

Del 7 visade att den fungerade: verklig kod, verklig utveckling, verkliga resultat.

Del 8 förklarade verktygen: hur de spårar, lär och förbättrar.

Del 9 (hypotetiskt) täckte självläkande: hur buggar blir institutionellt minne.

Del 10 visar vad som händer när du faktiskt använder den: arbetsflöden som skriver sig själva, verktyg som utvecklar sig själva, system som läker sig själva.

Spisen är igång.

Ingredienserna är kod, verktyg och arbetsflöden.

Receptet är evolutionärt tryck som styrs av mänskliga mål.

Vad blir kokt?

Vi ska snart ta reda på det.


Tekniska resurser

Arkivering: https://github.com/scottgal/mostlylucid.dse

Nyckelkomponenter:

  • src/overseer_llm.py - Arbetsflödesnedbrytning
  • src/tools_manager.py - Verktyg upptäckt och anrop
  • src/auto_evolver.py - Övernattningsoptimering
  • src/self_healing.py - Feldetektering och fixering (teoretisk)
  • src/qdrant_rag_memory.py - Minne och lärande
  • tools/ - 50+ befintliga verktyg

Prova exempel på arbetsflöde:

cd code_evolver
python chat_cli.py

DiSE> Fetch https://example.com/article, summarize to 3 paragraphs, translate to Spanish with quality checking, create HTML email, and send via SendGrid

Dokumentation:

  • README.md - Komplett inställningsguide
  • ADVANCED_FEATURES.md - Djupdykning i arkitektur
  • code_evolver/PAPER.md - Akademiskt perspektiv

Serienavigering:


DiSE Spis-serien: Vad är nästa

Semantic Memory-serien är komplett. DiSE Spis-serien börjar.

Kommande artiklar:

  • Häfte 11: Multi-Agent Workflows (när verktygen samordnar självständigt)
  • Häfte 12: Verktygsmarknaden (delningsverktyg över DiSE-fall)
  • Häfte 13: Produktionsutbyggnad (Docker, Kubernetes, skalning)
  • Häfte 14: Säkerhet Hardening (sandboxning, isolering, förtroende)
  • Häfte 15: Optimering Arms Race (samarbetsutveckling i skala)

Experimentet fortsätter.


Detta är del 10, finalen i semantisk intelligens: hur enkla regler → komplext beteende → självoptimering → framväxt → evolution → global konsensus → riktad syntetisk utveckling → självoptimerande verktyg → självläkande system → matlagning verkliga arbetsflöden i produktionen.

Det är experimentellt, ibland instabilt, och definitivt "vibe-coded". Men det fungerar. På sätt och vis. Ibland. Och när det fungerar, är det verkligen magiskt.

Vi bygger komposthögen AGI kan växa ifrån och se vad som dyker upp.

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.