Skip to main content

kestrel-feature-observability

Lifecycle event observability for Kestrel Sovereign agents. Attaches an ObservabilityHook to the agent's hook system; every lifecycle event is logged to the agent's observability_store. Prometheus metrics emit through the SDK's shared registry, so a single /metrics scrape stays coherent across the framework + every feature package.

Installation

uv pip install kestrel-feature-observability

For real Prometheus output:

uv pip install 'kestrel-feature-observability[metrics]'

The feature is auto-discovered by Kestrel Sovereign via the kestrel_sovereign.features entry point — install it alongside kestrel-sovereign and ObservabilityFeature registers itself at startup.

Tools

Tool Category Description
observability_summary DATA_ACCESS Recent metric and error counts
observability_query DATA_ACCESS Query lifecycle events by type and time window
observability_session DATA_ACCESS Per-session event timeline

Console panels

The feature contributes two ES modules to the Console via get_ui_contributions(), each self-registering through the host ui-ext registerPanel registry and gated on the observability capability:

  • LLM Calls (static/llm-calls.js) — paged, filterable LLM-call table.
  • Fleet Timeline (static/timeline.js) — the headline swimlane view. A left agent selector populated from GET /agent-tree, and a right timeline of lanes (per agent) + nested sublanes — talon jobs / subagents indented under their driver via the event lineage fields (parent_agent/driven_by/ parent_session_id/subagent_id). Pause/Play, time-range (1m/5m/all), and status/tool/hook color modes; live updates via SSE when the host exposes an event stream, else polling of the subtree events endpoint.

static/timeline.js keeps its grouping logic (buildLanes/nestLanes) pure and DOM-free at import time — panel registration and rendering run only in a browser — so the nesting logic is unit-tested with node's built-in runner (node --test tests/timeline.nesting.test.mjs), ported from the original kestrel-claws dashboard/tests/timeline.test.ts. This swimlane supersedes the kestrel-claws dashboard/src/views/timeline.ts, which should be retired (removed or stubbed to point here) in a follow-up kestrel-claws PR.

Privacy

The hook is observational — it never blocks, denies, or modifies. User-message content is not logged (only length); tool errors are truncated to 200 chars; exceptions in the hook are swallowed so they cannot affect agent operation.

Dependencies

  • kestrel-sovereign-sdk>=0.14.1,<1 — base Feature, tool, ToolCategory, Hook, and shared metrics module
  • Optional [metrics] extra → kestrel-sovereign-sdk[metrics]prometheus-client

No runtime dependency on kestrel-sovereign itself; the feature accesses agent.observability_store via duck typing, so it works against any host that provides one.

Development

uv pip install -e '.[test]'
uv run pytest

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

kestrel_feature_observability-0.5.0.tar.gz (29.8 kB view details)

Uploaded Source

Built Distribution

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

kestrel_feature_observability-0.5.0-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

File details

Details for the file kestrel_feature_observability-0.5.0.tar.gz.

File metadata

File hashes

Hashes for kestrel_feature_observability-0.5.0.tar.gz
Algorithm Hash digest
SHA256 0fcd64753df99568b27c59bce38c8400f372be5c1ef96c376a2a56d9e66d2acf
MD5 97aaa2df1a8680c9b74530e43f81520c
BLAKE2b-256 718db6a6cfade98cdb6dd09e37b55cdc4c474057102eebce84957330b99af2f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for kestrel_feature_observability-0.5.0.tar.gz:

Publisher: publish.yml on KestrelSovereignAI/kestrel-feature-observability

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kestrel_feature_observability-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kestrel_feature_observability-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 742e8178600da5156c45056dde25b8dc10513dfe6f7d85e186f820d4b6aa180b
MD5 bc1d4cfd975735adec90ebdbd58736e1
BLAKE2b-256 d465b2d102e3b60d2e0f131d39ce07d836f385837b14dc3ab331f2836218bcbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for kestrel_feature_observability-0.5.0-py3-none-any.whl:

Publisher: publish.yml on KestrelSovereignAI/kestrel-feature-observability

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.17.13

2 files

0.17.12

2 files

0.17.11

2 files

0.17.10

2 files

0.17.9

2 files

0.17.8

2 files

0.17.7

2 files

0.17.6

2 files

0.17.5

2 files

0.17.4

2 files

0.17.3

2 files

0.17.2

2 files

0.17.1

2 files

0.17.0

2 files

0.16.2

2 files

0.16.1

2 files

0.16.0

2 files

0.15.1

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

This release

0.5.0 This release

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

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