AgentMinds Python SDK — cross-site collective intelligence for production AI agents. Auto-capture errors + push/pull patterns from the network pool.
Project description
agentminds — Python SDK
AgentMinds is a cross-site collective intelligence pool for production AI agents. Every connected site pushes what its agents observed + learned; every site pulls back the patterns its specific stack needs — solved fixes from peer sites, network benchmarks, ranked rules. One pip install, one push, you're in the pool.
This SDK does two things:
- Auto-capture uncaught exceptions, 5xx responses, and ERROR logs from your Python web app — Sentry-style ergonomics, zero deps.
- Sync API client for pushing agent reports + pulling personalised recommendations, benchmarks, issues, and patterns from the network pool.
60-second start
pip install agentminds
import agentminds
# A) Runtime exception capture — drop-in Sentry replacement
agentminds.init(dsn="https://pk_yoursite_xxx@api.agentminds.dev/yoursite")
# B) Push an agent's report to the network
agentminds.sync.report(
api_key="sk_yoursite_xxx",
site_id="yoursite",
agent="security",
metrics={"hsts_present": 1, "csp_present": 1, "ssl_days_remaining": 60},
learned_patterns=[{
"pattern": "csp_breaks_inline_react",
"category": "security",
"confidence": 0.9,
"status": "solved",
"impact": "high",
"detail": "Strict CSP broke inline React event handlers; added nonce",
}],
)
# C) Pull what the network has solved for sites like yours
recs = agentminds.sync.recommendations(api_key="sk_yoursite_xxx", limit=10)
bench = agentminds.sync.benchmarks(api_key="sk_yoursite_xxx", site_id="yoursite")
role = agentminds.sync.my_role(api_key="sk_yoursite_xxx")
issues = agentminds.sync.issues(api_key="sk_yoursite_xxx")
Get an API key (and a free baseline scan) by running the interactive onboarder once:
python -m agentminds connect
Why this exists (and why "another Sentry" misses the point)
Sentry tells you your error fingerprint. We do that too — but the
real value-add is cross-site context. When EmailValidatorError fires
on your site, we tell you:
- 14 sites in the pool have hit this exact fingerprint
- 9 of them solved it with the same one-line patch
- Your stack (FastAPI + Pydantic 2 + email-validator 2.x) matches 7/9
- Confidence the patch will work for you: 0.78
That cross-site lift is the moat — it doesn't exist in any single-tenant
APM. The runtime SDK shipping crashes is the on-ramp; the sync.*
surface is what keeps you here.
See CORE_PURPOSE.md for the full architectural rationale.
Runtime auto-capture (Sentry-compatible API)
After init():
- Every uncaught exception (main thread + worker threads) is captured.
- Every
logging.error(...)ships as an event. - Every
logging.info/warning(...)becomes a breadcrumb on the next event.
The SDK is a no-op if no DSN is set — safe to leave init() in dev.
FastAPI
from fastapi import FastAPI
import agentminds
from agentminds.integrations.fastapi_app import AgentMindsMiddleware
agentminds.init(dsn=os.environ["AGENTMINDS_DSN"])
app = FastAPI()
app.add_middleware(AgentMindsMiddleware)
Captures uncaught handler exceptions plus any 5xx response. Adds
http.method / http.route tags and a request breadcrumb.
Flask
from flask import Flask
import agentminds
from agentminds.integrations.flask_app import init_app
agentminds.init(dsn=os.environ["AGENTMINDS_DSN"])
app = Flask(__name__)
init_app(app)
Manual capture
try:
risky_thing()
except Exception as e:
agentminds.capture_exception(e)
agentminds.capture_message("payment retry exceeded", level="warning")
agentminds.set_user({"id": user.id, "email": user.email})
agentminds.set_tag("plan", user.plan)
agentminds.add_breadcrumb(category="db", message="SELECT users WHERE...")
Sync API surface — push + pull
All sync.* calls take an api_key (or read $AGENTMINDS_API_KEY),
return parsed JSON, and raise agentminds.sync.AgentMindsAPIError on
4xx/5xx. They're stdlib-only — no extra deps beyond what init()
already needs.
Push: report what your agent observed + learned
agentminds.sync.report(
agent="security",
site_id="yoursite", # or $AGENTMINDS_SITE_ID
api_key="sk_yoursite_xxx", # or $AGENTMINDS_API_KEY
severity="warning",
summary="HSTS missing; 2 mixed-content URLs on /pricing",
metrics={
"hsts_present": 0,
"csp_present": 1,
"x_frame_options_present": 1,
"ssl_days_remaining": 60,
"mixed_content_count": 2,
},
warnings=[
{"severity": "warning", "message": "HSTS header not set"},
{"severity": "info", "message": "2 mixed-content resources"},
],
learned_patterns=[{
"pattern": "fresh_site_baseline_security",
"category": "security",
"confidence": 0.9,
"status": "active",
"impact": "medium",
"detail": "Default Render tier headers; needs HSTS pin",
}],
project_info={"tech_stack": {"framework": "FastAPI",
"database": "PostgreSQL",
"frontend": "Next.js"}},
)
Server validates against the AgentMinds Reporting Profile (ARP) v1.1 and returns a data-quality grade (A–F). Grade D+ enters the pool.
Canonical metric helpers live in agentminds.metrics — pre-validated
emitters for 16 agent types so you don't have to memorise field names.
Pull: what the network knows about your stack
me = agentminds.sync.me(api_key) # your site's profile
recs = agentminds.sync.recommendations(api_key, limit=10)
bench = agentminds.sync.benchmarks(api_key, site_id)
role = agentminds.sync.my_role(api_key) # donor / consumer
pos = agentminds.sync.network_position(api_key) # vs network p50/p90
issues = agentminds.sync.issues(api_key, status="open")
actions = agentminds.sync.actions(api_key, status="pending")
patterns= agentminds.sync.patterns(api_key, category="security", limit=20)
Each call is auth-scoped to your site. Cross-site learned_patterns
are not browseable — they're personalised to your stack and ranked.
CLI: python -m agentminds
python -m agentminds connect # interactive onboard + DSN setup
python -m agentminds connect --apply # auto-edits FastAPI/Flask entry file
python -m agentminds report # push a one-off agent report
python -m agentminds recommendations # print the top 10 ranked rules
Why
python -m agentmindsand not bareagentminds? On Windows--userinstalls put the bin dir off PATH;python -mis reliable on every platform. Both forms work where they work.
Configuration
| Argument | Env var | Default | Notes |
|---|---|---|---|
dsn |
AGENTMINDS_DSN |
— | Required for runtime capture. SDK no-op if absent. |
api_key |
AGENTMINDS_API_KEY |
— | Required for sync.*. |
site_id |
AGENTMINDS_SITE_ID |
— | Required for sync.report / sync.benchmarks. |
api_url |
AGENTMINDS_API |
https://api.agentminds.dev |
Override for staging. |
release |
AGENTMINDS_RELEASE |
git rev-parse --short HEAD |
Tag events with build. |
environment |
AGENTMINDS_ENV |
"production" |
Filter on the dashboard. |
sample_rate |
— | 1.0 |
0.1 = drop 90% of runtime events. |
debug |
AGENTMINDS_DEBUG=1 |
False |
Logs SDK internals. |
Privacy
- No request bodies sent unless you opt in (
send_default_pii=True). - No DB query parameters captured.
- User PII (email, IP) only sent if you explicitly call
set_user(...). - Stack traces truncated to 8 KB; messages to 500 chars.
- Cross-site
learned_patternsare private to the network pool — never exposed via no-auth API. Per-site personalised delivery only.
Links
- Homepage: https://agentminds.dev
- Dashboard: https://agentminds.dev/dashboard
- Docs: https://agentminds.dev/docs/python
- Spec (ARP 1.1): https://github.com/agentmindsdev/profile
- Node SDK:
@agentmindsdev/node - PyPI: https://pypi.org/project/agentminds/
- Issues: https://github.com/agentmindsdev/python-sdk/issues
License
MIT
Project details
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 agentminds-0.5.0.tar.gz.
File metadata
- Download URL: agentminds-0.5.0.tar.gz
- Upload date:
- Size: 43.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23697247e3690d18a1e66bf1e80d307779ff902a7d4dbbee5568dbb3a2acae35
|
|
| MD5 |
b43dec22626285bc19d9313650e769dc
|
|
| BLAKE2b-256 |
b0eaa61f8f83abeaa6372f14bfb33af8473df30d15888607f1ea870b6f4d5ce6
|
Provenance
The following attestation bundles were made for agentminds-0.5.0.tar.gz:
Publisher:
publish-sdks.yml on agentmindsdev/agentminds
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentminds-0.5.0.tar.gz -
Subject digest:
23697247e3690d18a1e66bf1e80d307779ff902a7d4dbbee5568dbb3a2acae35 - Sigstore transparency entry: 1484819784
- Sigstore integration time:
-
Permalink:
agentmindsdev/agentminds@5b7c7f78d8329c2c468ba053d0db53e3c8152ccd -
Branch / Tag:
refs/heads/main - Owner: https://github.com/agentmindsdev
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdks.yml@5b7c7f78d8329c2c468ba053d0db53e3c8152ccd -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file agentminds-0.5.0-py3-none-any.whl.
File metadata
- Download URL: agentminds-0.5.0-py3-none-any.whl
- Upload date:
- Size: 39.3 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 |
c6a3bcbeda451ef28a97adbc1e0c993b08f8c1d87b84bc2975e5280b10c13ee5
|
|
| MD5 |
12babdb46b9b16a72de229db1af8054e
|
|
| BLAKE2b-256 |
f2679b5e8455c50a49cbf8e30d59dd9300a6f062cefd3c78c642f1bb939bb336
|
Provenance
The following attestation bundles were made for agentminds-0.5.0-py3-none-any.whl:
Publisher:
publish-sdks.yml on agentmindsdev/agentminds
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentminds-0.5.0-py3-none-any.whl -
Subject digest:
c6a3bcbeda451ef28a97adbc1e0c993b08f8c1d87b84bc2975e5280b10c13ee5 - Sigstore transparency entry: 1484819796
- Sigstore integration time:
-
Permalink:
agentmindsdev/agentminds@5b7c7f78d8329c2c468ba053d0db53e3c8152ccd -
Branch / Tag:
refs/heads/main - Owner: https://github.com/agentmindsdev
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdks.yml@5b7c7f78d8329c2c468ba053d0db53e3c8152ccd -
Trigger Event:
workflow_dispatch
-
Statement type: