Skip to content

SquiggleAI

📋Page Status
Page Type:ResponseStyle Guide →Intervention/response page
Quality:37 (Draft)⚠️
Importance:22 (Peripheral)
Last edited:2026-01-29 (3 days ago)
Words:1.6k
Structure:
📊 12📈 0🔗 4📚 717%Score: 13/15
LLM Summary:SquiggleAI is an LLM tool (primarily Claude Sonnet 4.5) that generates probabilistic Squiggle models from natural language, using ~20K tokens of cached documentation to produce 100-500 line models in 20 seconds to 3 minutes. While it lowers barriers for domain experts to create uncertainty models, it's a workflow improvement tool rather than a core AI safety intervention.
Issues (1):
  • QualityRated 37 but structure suggests 87 (underrated by 50 points)
DimensionAssessmentEvidence
InnovationHighFirst LLM integration for probabilistic programming language
Practical ImpactGrowingLowers barrier to quantitative reasoning for domain experts
Technical MaturityStableMultiple model options, reliable prompt caching
IntegrationSeamlessBuilt directly into Squiggle Hub platform
AccessibilityHighNatural language interface, no programming required
Output QualityGood100-500 line models with reasonable structure
AttributeDetails
NameSquiggleAI
OrganizationQURI (Quantified Uncertainty Research Institute)
LeadOzzie Gooen
Launched2024
Primary ModelClaude Sonnet 4.5
PlatformIntegrated into Squiggle Hub
Websitesquiggle-language.com/docs/Ecosystem/SquiggleAI

SquiggleAI integrates large language models to assist with probabilistic model creation, addressing a critical barrier QURI identified through years of experience building forecasting tools: even highly skilled domain experts frequently struggle with basic programming requirements for probabilistic modeling.

A subject matter expert might have deep knowledge about AI timelines, pandemic risk, or cost-effectiveness of interventions, but lack the programming fluency to translate their mental model into executable Squiggle code. SquiggleAI bridges this gap by accepting natural language descriptions and generating complete, runnable probabilistic models.

The system uses prompt caching to embed approximately 20,000 tokens of information about the Squiggle language—syntax, distributions, best practices—ensuring the LLM has deep knowledge of the domain-specific language. Most workflows complete within 20 seconds to 3 minutes, producing models typically 100-500 lines long depending on the model used.

SquiggleAI is designed around the principle that domain expertise should not be bottlenecked by programming ability. The tool aims to:

  1. Lower the barrier to quantitative reasoning for non-programmers
  2. Accelerate model creation even for experienced Squiggle users
  3. Teach by example through generated code that users can read and modify
  4. Preserve human judgment by making models transparent and editable

This philosophy aligns with QURI’s broader mission of making uncertainty quantification accessible to altruistic decision-makers.

SquiggleAI supports multiple LLM backends:

ModelStatusOutput SizeSpeedBest ForCost
Claude Sonnet 4.5Primary≈500 linesMediumComplex multi-variable models$$$
Claude Haiku 4.5Available≈150 linesFastQuick prototypes$
Grok Code Fast 1Available≈200 linesFastAlternative provider$$
Claude Sonnet 3.5Legacy≈200 linesMediumStable fallback$$

The default is Claude Sonnet 4.5, which produces the most sophisticated and detailed models but at higher API cost. Users can switch models based on their needs.

SquiggleAI uses prompt caching to cache approximately 20,000 tokens of Squiggle documentation with each request. This means:

  • The LLM has consistent, deep knowledge of Squiggle syntax
  • API costs are reduced (cached tokens are cheaper)
  • Response quality is more reliable
  • Context is preserved across conversation turns

Describe a problem in natural language, receive executable Squiggle code:

Example prompt:

“Estimate the cost-effectiveness of hiring an AI safety researcher. Consider their salary, overhead costs, probability they produce useful research, and value of that research if successful.”

Output: ~300 line Squiggle model with:

  • Variable definitions for each uncertain input
  • Distribution choices justified by context
  • Sensitivity analysis visualization
  • Clear comments explaining logic

Conversation-based model improvement:

Follow-up prompt:

“Add more uncertainty to the timeline assumptions and break down the research impact by type (interpretability vs alignment).”

Output: Modified model with requested changes, preserving existing structure.

Generate complete uncertainty models from vague questions:

Question TypeExampleOutput
Classic Fermi”How many piano tuners in Chicago?”≈100 line model with breakdown
Technology adoption”When will 50% of US households have solar panels?”≈200 line S-curve model
Market sizing”Total addressable market for AI coding assistants?”≈250 line market model

Identify and fix syntax and logic errors:

User: “My model gives negative probabilities for the success rate”

SquiggleAI: Identifies issue with distribution domain, suggests truncate(distribution, 0, 1)

Explain what existing Squiggle code does:

Input: Inherited 300-line model from another researcher

Prompt: “Explain what this model is calculating and what the key assumptions are”

Output: Plain-language summary with identified cruxes

SquiggleAI is directly accessible from within Squiggle Hub, allowing users to:

  1. Generate models from the “New Model” interface
  2. Refine existing models through chat interface
  3. Immediately save generated models to their Hub account
  4. Version control AI-assisted iterations
  5. Share completed models publicly or keep private

SquiggleAI outputs on Squiggle Hub are private by default. Users who want to share models or make them public can explicitly do so by creating new public models. This privacy-first approach encourages experimentation without concern about incomplete drafts being visible.

User Prompt
Prompt Engineering Layer
(Adds cached Squiggle docs, examples, constraints)
LLM API (Claude Sonnet 4.5)
Post-Processing
(Syntax validation, auto-fixes)
Executable Squiggle Code

The system prepends each user request with:

ComponentTokensPurpose
Squiggle syntax guide≈8,000Core language reference
Distribution creation examples≈3,000Common patterns
Best practices≈2,000Dos and don’ts
Common pitfalls≈1,500Error prevention
Example models≈5,500Full model templates
Total cached context≈20,000Consistent knowledge base

This large cached context ensures the LLM produces idiomatic Squiggle code rather than generic probabilistic programming.

Expert TypeWithout SquiggleAIWith SquiggleAI
Biosecurity researcherCannot quantify risk modelDescribes model in English, gets working code
EA charity evaluatorBuilds simple spreadsheetGenerates sophisticated uncertainty model
AI safety researcherRough timeline estimatesDetailed probabilistic timeline model
Policy analystQualitative cost-benefitQuantitative cost-benefit with distributions

Experienced Squiggle users leverage SquiggleAI for:

  • First draft generation: Get 80% of a model in 2 minutes, refine manually
  • Boilerplate reduction: Generate repetitive parameter definitions
  • Exploration: Try multiple model structures quickly
  • Documentation: Generate comments and explanations for existing code

SquiggleAI serves as a teaching tool:

  • New users learn by seeing working examples
  • Generated code demonstrates Squiggle idioms
  • Explanations help users understand probabilistic reasoning
  • Iteration teaches refinement process
StrengthEvidence
Lowers barrierNon-programmers can create models
Fast iteration20 seconds to 3 minutes per model
Consistent qualityPrompt caching ensures reliable syntax
Transparent outputGenerated code is readable and editable
Integrated workflowSeamless with Squiggle Hub
Multiple model optionsCan choose speed vs sophistication
LimitationImpactMitigation
Output length boundedClaude models limit ≈500 linesBreak complex models into modules
Domain knowledge requiredLLM doesn’t know your specific problemUser must provide context and check outputs
Hallucination riskMay generate plausible but wrong assumptionsAlways review and validate generated models
API costSonnet 4.5 usage adds upUse Haiku for simpler models
Limited mathematical reasoningStruggles with novel math derivationsUse for structure, validate math manually
ApproachProsCons
SquiggleAIFast, accessible, integratedRequires review, output bounded
Manual Squiggle codingFull control, no AI costSlow, requires programming skill
ChatGPT + copy/pasteGeneral purposeNo Squiggle-specific knowledge, awkward workflow
Excel/GuesstimateFamiliar interfaceLimited expressiveness, no distributions
Python + NumPyFull powerMuch more complex, longer to write

SquiggleAI fits into QURI’s tool ecosystem:

ToolPurposeSquiggleAI’s Role
SquiggleProbabilistic languageSquiggleAI generates Squiggle code
Squiggle HubModel hosting platformSquiggleAI integrated directly
MetaforecastForecast aggregationSquiggleAI could use Metaforecast data as inputs
RoastMyPostLLM blog evaluationShared LLM integration experience

As a QURI project, SquiggleAI development is funded through QURI’s grants:

SourceAmountPeriod
Survival and Flourishing Fund$150K+ to QURI2019-2022
Future Fund$100K to QURI2022
Long-Term Future FundOngoing to QURI2023-present

SquiggleAI API costs (Claude API usage) are likely covered by QURI’s operational budget, though specific allocation is not public.

Potential enhancements based on the current trajectory:

EnhancementBenefitChallenge
Multi-model reasoningGenerate multiple approaches, compareHigher cost, longer runtime
Automatic sensitivity analysisIdentify key cruxes programmaticallyRequires sophisticated meta-analysis
Citation integrationGround generated assumptions in sourcesComplex fact-checking, hallucination risk
Collaborative refinementMultiple users + AI iterating togetherCoordination complexity
Custom expert modesDomain-specific prompt engineeringRequires curated expertise per domain