Skip to main content

VisibleAgent Python SDK

Plain-English observability for AI agents. VisibleAgent turns your agent's work into a story a human can read — every run, every step, every tool call, live-streamed to a dashboard with full replay — while capturing metadata only by default: never prompts, never customer content, unless you explicitly opt in.

Install

pip install visibleagent            # core SDK
pip install "visibleagent[langgraph]"  # + LangGraph auto-instrumentation

LangGraph: one line, zero node changes

from visibleagent import VisibleAgent
from visibleagent.integrations.langgraph import VisibleAgentTracer

va = VisibleAgent(api_key="...", base_url="https://your-visibleagent-host")

tracer = VisibleAgentTracer(
    client=va,
    source="MyApp",                       # "which app did this?" label
    display_names={                       # optional: human names per node
        "classify": "Classifying the message",
        "respond": "Drafting a reply",
    },
    descriptions={                        # optional: what each step does
        "classify": "Reads the message and works out what it's about",
    },
    narrate=my_narrator,                  # optional: plain-English outcomes
)

graph.invoke(state, config={"callbacks": [tracer]})

The tracer auto-derives the whole span tree from LangGraph's callbacks — nodes, model calls ("Thinking — …"), and tool calls — including model names, token usage, and latencies. It works with bare llm.invoke() calls inside your nodes (no config threading needed), never raises into your app, and is completely inert when unconfigured.

narrate(node_name, output_state) lets you turn structured state into human sentences — "Understood the message as a new order (94% confident)" — without ever exposing raw content.

Manual instrumentation

with va.start_run(name="Refund request #4521", attrs={"source": "MyApp"}) as run:
    with run.agent("support_agent", display="Support Agent") as agent:
        with agent.step("classify", display="Understanding the request"):
            ...
        with agent.tool("orders.lookup", display="Checking the order") as tool:
            order = lookup(order_id)
            tool.note(f"Found order {order_id}")
va.flush()

Spans emit .started / .completed / .failed automatically based on whether the block raises. Delivery is batched on a background thread and fail-open: a missing or unreachable VisibleAgent backend never affects your application.

Content safety

Metadata capture is the default and the contract: span attributes carry model ids, token counts, durations, statuses, and the labels you author — never prompt or completion text, never tool argument values. A separate explicit capture_content="full" mode exists for teams who want their own content in their own dashboard.

License

Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

visibleagent-0.1.0.tar.gz (35.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

visibleagent-0.1.0-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file visibleagent-0.1.0.tar.gz.

File metadata

  • Download URL: visibleagent-0.1.0.tar.gz
  • Upload date:
  • Size: 35.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.3

File hashes

Hashes for visibleagent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 18d0957ddb053e8c29adc614dd15a27dd7acecde2daa42f8a9aa3837340c2e75
MD5 88a13026557bf7c9df96c9eae608bb8b
BLAKE2b-256 815776997374cada5fbd927350fe593028af7ce7bc144feb24998f9f05073d22

See more details on using hashes here.

File details

Details for the file visibleagent-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: visibleagent-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.3

File hashes

Hashes for visibleagent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6747001b0e5ada378cdc4fe0e34bf4454966e320795c8ba0ed41e2ed672af4a
MD5 c025e25dbb7cac4d08aa6c0136e31f63
BLAKE2b-256 eb69272d48d0c071d7a911d682c6dd2b9bc1a9e6d3246e7f75422b96e2148695

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page