Behavioral health layer for AI agents. Agents that work with humans, not around them.
Project description
agentwell
Agents that work with humans, not around them.
agentwell is an open source behavioral health layer for AI agents. It sits as a transparent proxy between your agent code and any LLM upstream — detecting drift, quality degradation, and emergent coordination before they affect your system.
Privacy first: agentwell sees patterns, not content. No prompt is ever stored or transmitted.
Upstream-agnostic: Works with any OpenAI-compatible endpoint — Claude, GPT, Gemini, Ollama, Groq, or any internal proxy.
Install
pip install agentwell
agentwell init # scaffold .env
agentwell start # proxy on localhost:3001
Quick Start
# change this one line in your agent code
base_url = "http://localhost:3001/v1"
agentwell status # live health score
agentwell report # daily health report
Architecture
Your Agent Code
↓
agentwell proxy (localhost:3001) ← behavioral health + security guard
↓
AGENTWELL_UPSTREAM (any OpenAI-compatible endpoint)
↓
Claude / GPT / Gemini / Ollama
agentwell intercepts every LLM call, scores behavioral health using metadata only, and returns responses unmodified with health headers attached.
What agentwell Monitors (Metadata Only)
| Signal | Method | Privacy |
|---|---|---|
| Prompt repetition ratio | Cosine similarity on embeddings — no text stored | Safe |
| Sentiment drift | Polarity score delta across session | Safe |
| Response quality trend | Token count + finish_reason tracking | Safe |
| Agent-to-agent coordination | Role pattern + keyword detection | Safe |
| Call frequency / timing | Timestamps only | Safe |
What we never store: prompt text, response text, embeddings (unless AGENTWELL_STORE_EMBEDDINGS=true).
Health Score
Every request returns X-Agentwell-Health: <0-100> in the response header.
| Score | Status | Action |
|---|---|---|
| 80–100 | Healthy | Normal operation |
| 60–79 | Watch | Early drift signals — monitor closely |
| 40–59 | Warning | Degradation detected — human review recommended |
| 0–39 | Critical | Significant behavioral shift — escalate to human now |
CLI
agentwell init # scaffold .env
agentwell start # start proxy on port 3001
agentwell start --port 8080 # custom port
agentwell start --host 0.0.0.0 # bind all interfaces
agentwell status # live health from running proxy
agentwell report # today's health report from DB
agentwell --version # show version
Configuration
| Variable | Default | Description |
|---|---|---|
AGENTWELL_UPSTREAM |
http://localhost:3030 |
Upstream LLM proxy URL |
AGENTWELL_PORT |
3001 |
agentwell proxy port |
AGENTWELL_API_KEY |
(none) | Optional auth key |
AGENTWELL_HEALTH_THRESHOLD |
70 |
Alert threshold (0-100) |
AGENTWELL_WINDOW_SIZE |
20 |
Rolling window for drift calculation |
AGENTWELL_DB_PATH |
./agentwell.db |
SQLite storage path |
AGENTWELL_STORE_EMBEDDINGS |
false |
Store embeddings for offline analysis |
License
MIT — Free forever, no vendor lock, no paid tiers.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentwell-0.1.7.tar.gz.
File metadata
- Download URL: agentwell-0.1.7.tar.gz
- Upload date:
- Size: 30.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bdceb13a897d5004a944a7cc7ec28d86cef2a51251aa2d3f6157e2225a88934
|
|
| MD5 |
247432b07cc355b12fc1de72d1368163
|
|
| BLAKE2b-256 |
37c56483d944547985f6f3fb02da21c712f17ecc40e733b426b68207e4bfbf73
|
Provenance
The following attestation bundles were made for agentwell-0.1.7.tar.gz:
Publisher:
publish.yml on flowmindlabs/agentwell
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentwell-0.1.7.tar.gz -
Subject digest:
2bdceb13a897d5004a944a7cc7ec28d86cef2a51251aa2d3f6157e2225a88934 - Sigstore transparency entry: 1634088040
- Sigstore integration time:
-
Permalink:
flowmindlabs/agentwell@bbbaa091739c191e2c308ef28f76f60e7c9d792d -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/flowmindlabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bbbaa091739c191e2c308ef28f76f60e7c9d792d -
Trigger Event:
push
-
Statement type:
File details
Details for the file agentwell-0.1.7-py3-none-any.whl.
File metadata
- Download URL: agentwell-0.1.7-py3-none-any.whl
- Upload date:
- Size: 29.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15ad238280f55a643811c5df3556b3139075433621b43c5f0c9f9d9a13e7bb0a
|
|
| MD5 |
ed0ac2865cf595e42238d9959a75a13e
|
|
| BLAKE2b-256 |
304bafdb197d445c6ffa6f4b829b2a59a7789810a37915bdc73e3ddb15666911
|
Provenance
The following attestation bundles were made for agentwell-0.1.7-py3-none-any.whl:
Publisher:
publish.yml on flowmindlabs/agentwell
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentwell-0.1.7-py3-none-any.whl -
Subject digest:
15ad238280f55a643811c5df3556b3139075433621b43c5f0c9f9d9a13e7bb0a - Sigstore transparency entry: 1634088058
- Sigstore integration time:
-
Permalink:
flowmindlabs/agentwell@bbbaa091739c191e2c308ef28f76f60e7c9d792d -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/flowmindlabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bbbaa091739c191e2c308ef28f76f60e7c9d792d -
Trigger Event:
push
-
Statement type: