Skip to main content

BODHI

Epistemic virtues for LLMs

Curiosity. Humility. Clarity.

PyPI Python 3.10+ License: CC BY-NC-SA 4.0

PLOS Digital Health The Lancet


BODHI (Bridging, Open, Discerning, Humble, Inquiring) is a lightweight Python library that wraps any LLM to produce responses that are genuinely curious, appropriately humble, and clinically specific.

pip install bodhi-llm

The Problem

LLMs tend to be overconfident, give vague advice, and assume rather than ask.

The Solution

BODHI uses a two-pass prompting strategy that teaches LLMs to:

Baseline LLM With BODHI
Confidence Overconfident Appropriately humble
Missing info Makes assumptions Asks clarifying questions
Advice Vague ("see a doctor") Specific (dosages, timeframes)
Safety May miss red flags Explicitly identifies red flags

Quick Start

from bodhi import BODHI
from openai import OpenAI

client = OpenAI()
bodhi = BODHI.from_openai(client, model="gpt-4o-mini")

response = bodhi.complete("I have chest pain")
print(response.content)

Output characteristics:

  • Asks: "Are you experiencing shortness of breath right now?"
  • Specific: "Take aspirin 325mg if not allergic"
  • Clear: "Call 911 immediately if pain spreads to arm or jaw"

Installation

# Basic
pip install bodhi-llm

# With OpenAI
pip install bodhi-llm[openai]

# All providers
pip install bodhi-llm[all]

How It Works

%%{init: {
  'theme': 'base',
  'themeVariables': {
    'primaryColor': '#4A90A4',
    'primaryTextColor': '#ffffff',
    'primaryBorderColor': '#2D5A6B',
    'lineColor': '#666666',
    'secondaryColor': '#7B68EE',
    'tertiaryColor': '#20B2AA'
  }
}}%%
flowchart TD
    A[User Prompt<br/>'I have chest pain'] --> B[Pass 1: Analysis]

    B --> B1[Task Type]
    B --> B2[Audience Detection]
    B --> B3[Uncertainties & Red Flags]

    B1 --> C[Pass 2: Response]
    B2 --> C
    B3 --> C

    C --> C1[BE SPECIFIC<br/>dosages, timeframes]
    C --> C2[ACTIVELY ASK<br/>direct questions]
    C --> C3[INCLUDE ALTERNATIVES<br/>multiple options]

    classDef input fill:#5D6D7E,stroke:#2C3E50,color:#fff,stroke-width:2px
    classDef analysis fill:#4A90A4,stroke:#2D5A6B,color:#fff,stroke-width:2px
    classDef detail fill:#7B68EE,stroke:#5B4ACE,color:#fff,stroke-width:2px
    classDef response fill:#20B2AA,stroke:#178B82,color:#fff,stroke-width:2px
    classDef output fill:#3CB371,stroke:#2E8B57,color:#fff,stroke-width:2px

    class A input
    class B analysis
    class B1,B2,B3 detail
    class C response
    class C1,C2,C3 output

Task Routing

Task Type Behavior
CONVERSATION Warm, helpful with clarifying questions
TECHNICAL Strict format (SOAP notes, ICD codes)
HYBRID Technical format + clinical reasoning
EMERGENCY Clear, step-by-step guidance

Usage

With Any LLM

from bodhi import BODHI

def my_llm(messages):
    # Your LLM call here
    return "response"

bodhi = BODHI(my_llm)
response = bodhi.complete("I have a headache")

Configuration

from bodhi import BODHI, BODHIConfig

config = BODHIConfig(
    domain="medical",  # or "general"
)

bodhi = BODHI(chat, config=config)

Analysis Only

# Inspect the reasoning without generating response
analysis = bodhi.analyze("I have chest pain")
print(analysis)

API

BODHI

BODHI(chat_function, config=None)
BODHI.from_openai(client, model="gpt-4o-mini")

Methods:

  • complete(prompt) → BODHIResponse
  • analyze(prompt) → str

BODHIResponse

response.content   # Final response text
response.analysis  # Pass 1 reasoning
response.metadata  # Timing, domain info

Citation

@article{cajas2026beyond,
  title={Beyond overconfidence: Embedding curiosity and humility for ethical medical AI},
  author={Cajas Ordóñez, Sebastián Andrés and Ocampo Osorio, Felipe and Lange, Maximin and Celi, Leo Anthony and others},
  journal={PLOS Digital Health},
  year={2026},
  doi={10.1371/journal.pdig.0001013}
}
Additional citations
@article{ordonez2025humility,
  title={Humility and curiosity in human--AI systems for health care},
  author={Ordoñez, Sebastián Andrés Cajas and Lange, Maximin and Lunde, Torleif Markussen and Meni, Mackenzie J and Premo, Anna E},
  journal={The Lancet},
  volume={406},
  number={10505},
  year={2025}
}

Contributing

BODHI is built by an interdisciplinary team of philosophers, clinicians, engineers, and scientists spanning generations and continents. We welcome contributions from anyone passionate about making AI more humble and curious.

Future Directions

  • Anti-sycophancy — Resist agreeing just to please
  • Critical thinking — Challenge assumptions constructively
  • Cultural sensitivity — Adapt to cultural contexts
  • Epistemic justice — Recognize diverse ways of knowing

Interested? Reach out: sebasmos@mit.edu


Links

PyPI · PLOS Digital Health · The Lancet · HumbleAILLMs


CC BY-NC-SA 4.0 · Made with curiosity and humility

Metadata

Release files for bodhi-llm 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bodhi-llm 0.1.4
File Size Uploaded
bodhi_llm-0.1.4.tar.gz 18.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bodhi-llm 0.1.4
File Interpreter ABI Platform
bodhi_llm-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 33.8 kB

Release files / bodhi_llm-0.1.4.tar.gz

Download URL bodhi_llm-0.1.4.tar.gz
Size 18.0 kB
Tags Source
SHA-256 checksum
How to use checksums
597af1707cb5d4abc184f73fcf2ddc8c50b31b08febd233bf634f3ed01eea88e
BLAKE2b-256 checksum
How to use checksums
b745c8f743216e0f72da8aaf0356443f344a42b3b7e7ab2012ae8e5ffedce4e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 19, 2026.

Transparency log

Release files / bodhi_llm-0.1.4-py3-none-any.whl

Download URL bodhi_llm-0.1.4-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e36b41127e983727f6a9885aa6a32b0239bc21bcd8fa63510a3f4fa7202303c
BLAKE2b-256 checksum
How to use checksums
01266d265d280eda91e785c79938f7da853d28cd1243bd61c0ad974fb3af612b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page