dea-agents (Python)
Debug Anything from Python. Observe a running process, container or pod —
syscalls, CPU profiles, thread stacks, sockets, packets, heap retainers — and
get findings that cite evidence. This package wraps the
DEA CLI (Node ≥ 22 required:
npx -y dea-agents is used automatically) and ships tool adapters for
LangChain, LlamaIndex and CrewAI.
pip install dea-agents # core (no deps)
pip install 'dea-agents[langchain]' # + LangChain StructuredTools
pip install 'dea-agents[llamaindex]' # + LlamaIndex FunctionTools
pip install 'dea-agents[crewai]' # + CrewAI BaseTools
Plain Python
from dea_agents import DEA
dea = DEA() # uses `dea` if installed, else `npx -y dea-agents@latest`
print(dea.readiness()["findings"])
s = dea.attach(12345) # pid, "my-container", "ns/pod", or a command
before = dea.snapshot_memory(s)
# ... exercise the target ...
after = dea.snapshot_memory(s)
diff = dea.diff_runs(s, before["run_id"], after["run_id"])
for line in DEA.findings(diff):
print(line) # [high] heap_retainer: name=Array grew 2.0 KB → 50.1 MB (observed; e4,e1)
dea.report(s, out="report.md")
dea.detach(s)
Every call returns the DEA ToolResult dict (ok, findings, evidence,
limitations, suggested_next, artifacts). capture_traffic needs
consent=True — ask your user first.
LangChain
from dea_agents.langchain import dea_tools
from langgraph.prebuilt import create_react_agent
agent = create_react_agent(llm, dea_tools())
agent.invoke({"messages": [("user", "pid 12345 is slow — attach and tell me why, with evidence")]})
LlamaIndex
from dea_agents.llamaindex import dea_tools
from llama_index.core.agent import ReActAgent
agent = ReActAgent.from_tools(dea_tools(), llm=llm, verbose=True)
CrewAI
from dea_agents.crewai import dea_tools
from crewai import Agent
sre = Agent(role="SRE", goal="Diagnose the hung worker with evidence, never guess", tools=dea_tools(), llm=llm)
Or just use MCP
Any framework with MCP support (LangChain langchain-mcp-adapters, LlamaIndex
McpToolSpec, CrewAI MCPServerAdapter, Claude Code, Codex, Cursor…) can run
DEA directly: {"command": "npx", "args": ["-y", "dea-agents@latest", "serve"]}.
Same 14 tools, same ToolResult, plus the guided prompts.
Safety
DEA is read-only, never runs sudo, caps every tool at 60 s, redacts secrets in
what it returns, and keeps raw artifacts under ~/.dea/sessions/. See
docs/safety.md.
MIT.
Metadata
Release files for dea-agents 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dea_agents-0.1.0.tar.gz | 8.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dea_agents-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.4 kB
Release files / dea_agents-0.1.0.tar.gz
| Download URL | dea_agents-0.1.0.tar.gz |
|---|---|
| Size | 8.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
51ceea4fc1a785d5da7417911000e01b009a31ae879a89b1d5e46ec70c97addf
|
|
BLAKE2b-256 checksum How to use checksums |
bd0680dfa09d39ec4102e7cf3e80dbc54dfffda57204616bb0d536b026bb2f45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.9
|
Release files / dea_agents-0.1.0-py3-none-any.whl
| Download URL | dea_agents-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9da47c93157efe550b1054828727bfd9ac86682fcd37b17e1094ce59743d8c5
|
|
BLAKE2b-256 checksum How to use checksums |
53cccb2191643421d96b65774ce84854005b685c0fddb568192af32d52869ae7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.9
|