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)→BODHIResponseanalyze(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)
| File | Size | Uploaded | |
|---|---|---|---|
| bodhi_llm-0.1.4.tar.gz | 18.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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