Skip to content

RickCastle2018/oracle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decision Oracle Telegram Bot

#MyFirstVibeCodingProject...

This is a Telegram bot that helps you make difficult decisions in a principled way. It implements a minimax-optimal decision policy under multiple scientifically plausible models of how the world might behave:

  • Neutral (Expected Value): choices play out probabilistically, mixing may cost you time or energy.
  • Flat Exploitability: if you are predictable, you can be penalized by a fixed hit.
  • Convex Exploitability: the more predictable you are, the more you can be exploited.
  • Branch Fairness (Many-Worlds): all options happen in parallel branches; you may value fairness across your "copies".
  • Sign Uncertainty (Deterministic): in a deterministic world, you may simply have mis-ranked the options.

The auto mode chooses a policy that maximizes the worst-case payoff across all these models simultaneously, so you do not need to know which model is correct. When randomness is required, the bot uses the ANU Quantum Random Number Generator (QRNG) to avoid predictability.

Features

  • Telegram bot interface
  • Quick one-line decisions (/d A:9 B:8)
  • Wizard mode (/wizard) for step-by-step entry
  • /settings to configure parameters (L, C, lambda, B, mode, auto_worlds)
  • /history to list past decisions
  • /explain <id> to see the math and QRNG audit for any past decision
  • Persistent SQLite database (stored in ./data)

Why use this?

Decision-making is often plagued by hesitation and fear of regret. This bot provides a structured, transparent way to commit:

  • If your top choice is clearly superior, it commits deterministically.
  • If not, it introduces just enough quantum randomness to protect against being wrong or being exploited.
  • In auto mode, it balances across multiple world models, so you do not have to decide which philosophy of physics is true.

How to Use and When to Use

When This Bot Helps Most

This bot is designed for medium-stakes decisions between reasonably similar, well-researched options where you're stuck in analysis paralysis. It works best when you:

  • Have already done your research and gathered information
  • Are choosing between 2-4 options that are relatively close in value
  • Want protection against predictability and exploitation
  • Need a systematic way to break decision deadlock

Good use cases: Job offers, car purchases, housing choices, investment allocations, restaurant selections Poor use cases: Major life changes needing deep reflection, decisions where you lack information, choices with completely unknown consequences

Complete Example: Buying a Car

Let's say you're choosing between three cars after months of research:

Step 1: Score Your Options (1-10 scale)

Think about all factors important to you: price, reliability, features, fuel economy, resale value, insurance costs, etc.

  • Honda Civic: Great reliability, good price, boring but practical → 8.5
  • Toyota Camry: Excellent reliability, slightly more expensive, more space → 8.2
  • BMW 320i: Fun to drive, premium feel, higher maintenance costs → 7.8

Step 2: Choose Your Command

Quick decision:

/d Honda:8.5 Toyota:8.2 BMW:7.8

With specific parameters:

/d Honda:8.5 Toyota:8.2 BMW:7.8 mode=auto L=0.3 C=0.05 lambda=0.5 B=0.5

Step-by-step with wizard:

/wizard

Step 3: Understanding the Result

The bot might respond with:

🧭 Decision ID: 42
Mode: auto
Worlds: neutral,flat,convex,fair,sign  Steps: 5

Options:
• Honda: 8.5
• Toyota: 8.2
• BMW: 7.8

Δ=0.7000, q=0.6234, bias=0.1234

Chosen: Honda (QRNG=0.4523 < 0.6234 ?)
Source: https://qrng.anu.edu.au/API/jsonI.php?length=1&type=uint8

Why: auto picks q that maximizes the minimum value across the selected worlds

Step 4: How This Could Change Your Fate

Scenario A - Without the bot: You might spend weeks agonizing, miss good deals, or pick based on the last review you read.

Scenario B - With deterministic choice: If Honda clearly scored highest, you'd get Honda every time. Predictable.

Scenario C - With this bot:

  • If differences are large (Honda 9.0 vs Toyota 6.0), it picks Honda deterministically
  • If differences are modest (like our example), it uses calibrated quantum randomness
  • You get Honda ~62% of the time, Toyota ~25%, BMW ~13%
  • The randomness protects you: Dealers can't predict your choice, you're hedged against ranking errors, and you avoid regret from "what if I chose differently"

Theoretical fate impact: In a deterministic universe, this quantum randomness might be the only truly unpredictable element in your decision. In a many-worlds universe, it ensures fairness across branches. Either way, it breaks you out of predictable patterns that others can exploit.

Understanding the Parameters

These control how the decision algorithm works:

Core Parameters:

  • L (Loss threshold, default 0.3): How much worse an option needs to be before you definitely avoid it. Smaller L = more randomness between close options.
  • C (Cost of mixing, default 0.05): How much you dislike uncertainty itself. Higher C = more deterministic choices.

Mode-Specific Parameters:

  • lambda (λ, default 0.5): In fair mode, how much you weight fairness across parallel universe branches vs. expected value.
  • B (Belief uncertainty, default 0.5): In sign mode, how uncertain you are about your rankings. Higher B = more 50/50 splits.

Auto Mode Settings:

  • auto_worlds: Which world models to consider simultaneously (neutral, flat, convex, fair, sign)
  • The algorithm finds the strategy that maximizes your worst-case payoff across all selected worlds

Example parameter effects:

  • L=0.1 C=0.1: Very random, lots of mixing between close options
  • L=0.5 C=0.01: Only mix when options are very close, but when you do mix, embrace the randomness
  • mode=sign B=0.8: High uncertainty about your rankings, tends toward 50/50 splits

Quick Reference

# Basic decision
/d OptionA:8.5 OptionB:7.2

# With parameters
/d A:8.5 B:7.2 mode=auto L=0.3 C=0.05

# Step-by-step wizard
/wizard

# View settings
/settings

# Change settings
/settings L=0.4 C=0.02 mode=convex

# See past decisions
/history

# Understand a decision
/explain 42

Getting Started

Prerequisites

  • Docker and docker-compose installed
  • A Telegram bot token from BotFather

Setup

  1. Clone this repository.
  2. Add your bot token to the environment or a .env file:
    export BOT_TOKEN=123456:ABC-DEF...
  3. Build and run with Docker Compose:

docker compose up --build -d

Usage

Open Telegram, find your bot, and start a chat:

  • /start — introduction and usage
  • /d A:9 B:8 — quick decision with two options
  • /wizard — guided mode
  • /settings — show or set defaults, e.g.:
  • /settings mode=auto L=0.3 C=0.05 lambda=0.5 B=0.5 auto_worlds=neutral,convex,sign
  • /history — show your past decisions
  • /explain — see detailed rationale and QRNG audit trail

The bot logs every decision, including the QRNG value and threshold, for transparency.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published