Skip to main content

agent-log-ai

An LLM that reads your agent's error and decision logs and drafts the root-cause lessons your keyword heuristics can't.

The third member of the agent-memory family. Where agent-error-log records what BROKE (reactive memory) and agent-decision-log records what was CHOSEN (proactive memory), this repo adds the REASONING layer: it sends the distilled clusters and reversal chains to an LLM-compatible endpoint and drafts the why — the root-cause lesson that keyword frequency and reversal counting can only point at.

CI checks on master release license python dependencies-0 Visitors companion-error companion-decision

Why

The two sibling tools turn an agent's history into mechanical memory: --lessons groups failures by shared keywords, --review counts reversals by topic. Both are deliberately heuristic — deterministic, testable, free. But the reasoning is left to you: why did this cluster keep failing? why did you flip-flop between regex and AST every time the file grew past 200 lines?

That gap is exactly what an LLM is good at. agent-log-ai keeps the heuristics (they select what matters) and hands the explanation to a model — so your memory stops being a list of symptoms and starts being a list of causes.

Quick start

# 1. Point it at a log and draft lessons for the biggest failure cluster
python check_logs_ai.py --lessons --log errors.txt --dry-run   # see the prompt first, costs nothing

# 2. Send it (local-first: no key needed for Ollama/vLLM)
python check_logs_ai.py --lessons --log errors.txt

# 3. Cloud option: any OpenAI-compatible endpoint
OPENAI_API_KEY=sk-... python check_logs_ai.py --lessons --log errors.txt --base-url https://api.openai.com/v1 --model gpt-4o

Commands

Command Reads Writes Notes
--lessons errors.txt root-cause lesson drafts (→ rules.txt §7 with --apply) Heuristics pick the top clusters; the LLM explains each cluster's real root cause and proposes the rule
--review decisions.txt reversal analysis (→ rules.txt §7 with --apply) Reversal chains with their REASONs; the LLM infers the deeper pattern
--notes logs + notes.txt a SESSION NOTE draft (append with --append) The loop drafts its own closing memory
--check API connectivity health check Tiny ping — no real prompt
--dry-run prints the exact prompt, sends nothing Free preview
--init [DIR] scaffolds errors.txt / decisions.txt / rules.txt / notes.txt One-command adoption — never overwrites existing files; runs the offline self-test

Design

  • Stdlib only, zero install. The LLM call is urllib.requestPOST {base}/chat/completions. No pip packages, same as the siblings.
  • Local-first, provider-agnostic. Default --base-url is http://localhost:11434/v1 (Ollama); vLLM and any OpenAI-compatible server work with --base-url. The cloud path (https://api.openai.com/v1) uses OPENAI_API_KEY from the environment — never committed.
  • Heuristics point, LLM reasons. The sibling clustering/reversal logic selects what matters; the model explains why. Deterministic pre-processing keeps the prompt small, cheap, and testable.
  • Graceful failure. No key and no local server → a clear message, a --dry-run suggestion, and a pointer to the sibling heuristics. Never crashes, never blocks work.
  • Cost guard. --max-entries N, line truncation, and a cheap token estimate (chars/4 — approximate by design) that warns before any send.
  • Retry manually. Local models load on the first request; if a call times out, run it again (later calls are warm). No automatic backoff in v0.2.0 — --timeout N controls how long a single call waits.

Companion tools

Repo What it remembers How it works
agent-error-log what BROKE text log + linter + git gate
agent-decision-log what was CHOSEN and why append-only decisions + currency chain
agent-log-ai (this) why it kept happening heuristics select → LLM reasons

FAQ

Do I need an API key? No — local-first. With Ollama running (ollama serve), the default base-url works with no key. A key is only needed for cloud endpoints.

Does this replace --lessons / --review? No — it uses them. This tool is the reasoning layer on top of the existing heuristics.

Is my log sent somewhere? Only to the endpoint you point at. Local by default; cloud only if you pass --base-url https://... and a key. I copied the tool to a scratch folder — will it read my real logs? No — the --errors / --decisions / --notes-file defaults resolve relative to the script location (HERE), so a scratch copy reads next to itself. Point at your real logs from anywhere with those flags. Does it handle unicode (café, em-dash) on Windows? Yes — stdin is reconfigured to UTF-8 like stdout, so piped unicode prompts are handled without double-encoding.

Development

See CONTRIBUTING.md. Run python _test_logs_ai.py — all tests are offline (the HTTP layer is mocked; the suite runs green with no network and no API key) — (103, 100% pass expected). python check_logs_ai.py must exit 0 on the repo's own log. README test counts are enforced by a drift-guard CI job, so keep them in sync.

Installing with pip (optional)

The single-file adoption story is unchanged - copy check_logs_ai.py into your project and you are done. The tool is also pip-installable with zero runtime dependencies:

pip install agent-log-ai1
log-ai --help
  • The package version is derived from the git tag (setuptools-scm), which the release workflow creates from CHANGELOG.md - there is no version to drift.
  • Run from the installed package, default paths (decisions.txt, errors.txt, rules.txt, notes.txt) resolve against your current directory; an in-place copy keeps resolving against the file's folder.
  • --init works identically from an installed copy (built-in templates).

Download files

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

Source Distribution

agent_log_ai1-0.4.0.tar.gz (41.8 kB view details)

Uploaded Source

Built Distribution

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

agent_log_ai1-0.4.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file agent_log_ai1-0.4.0.tar.gz.

File metadata

  • Download URL: agent_log_ai1-0.4.0.tar.gz
  • Upload date:
  • Size: 41.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for agent_log_ai1-0.4.0.tar.gz
Algorithm Hash digest
SHA256 0c7268090ddf3a39387fa22ca9970111e4a2885103486c3f93165c26382cf9df
MD5 093f5bcb045c13fd8236a9cd0d726647
BLAKE2b-256 0d623ecbbe7cb518b861a2b54f92655f1ef20016fddd84912139b20aa106da50

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_log_ai1-0.4.0.tar.gz:

Publisher: publish.yml on vartiainen1/agent-log-ai

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

File details

Details for the file agent_log_ai1-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: agent_log_ai1-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for agent_log_ai1-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a7c6df0df34853c67b44c007bc68dcf2cdd85782aa7a0fdf2f61246493c90d9
MD5 7699cdedd8cbcbfb18571ddd6bb28c3b
BLAKE2b-256 4093e75086239832c80143a4ccfb58418929adaffd1dfcb3ddadf0f382715afa

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_log_ai1-0.4.0-py3-none-any.whl:

Publisher: publish.yml on vartiainen1/agent-log-ai

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

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