Skip to main content

Target, Evaluate, Improve: A self-improving loop for agentic systems

Project description

TEI Loop

Target, Evaluate, Improve — a self-improving loop for agentic systems.

Get Started (2 steps)

pip install tei-loop
tei your_agent.py

That's it. TEI auto-detects your agent function, generates a test query, evaluates across 4 dimensions, and applies targeted improvements.

If pip is not found, use pip3. If tei is not found, use python3 -m tei_loop.cli.

What Happens When You Run tei your_agent.py

  1. TEI loads your file and finds the agent function (any callable that takes input and returns output)
  2. Auto-generates a relevant test query based on your agent's purpose
  3. Runs your agent and evaluates the output across 4 dimensions
  4. If any dimension can be improved, applies a targeted fix and re-runs
  5. Prints before/after scores

Options

tei agent.py                          # Full loop with auto-generated query
tei agent.py --query "custom input"   # Use your own test query
tei agent.py --mode compare           # Side-by-side before/after
tei agent.py --mode evaluate          # Baseline only (no improvement)
tei agent.py --retries 5              # More improvement cycles
tei agent.py --verbose                # Detailed output

Python API

import asyncio
from tei_loop import TEILoop

def my_agent(query: str) -> str:
    # your agent logic
    return result

async def main():
    loop = TEILoop(agent=my_agent)
    result = await loop.run("your test query")
    print(result.summary())

asyncio.run(main())

4 Evaluation Dimensions

Dimension What it checks
Target Alignment Did the agent pursue the correct objective?
Reasoning Soundness Was the reasoning logical and non-contradictory?
Execution Accuracy Were the right tools called with correct parameters?
Output Integrity Is the output complete, accurate, and consistent?

Two Modes

Runtime mode (default): Per-query, 1-3 retries, fixes individual failures in seconds.

Development mode: Across many queries, proposes permanent prompt improvements.

dev_results = await loop.develop(
    queries=["query1", "query2", "query3", ...],
    max_iterations=50,
)

How It Works

TEI wraps any Python callable as a black box. No code changes to your agent needed.

When a dimension fails, TEI applies the right fix strategy:

Failure Fix Strategy
Target drift Re-anchor to original objective
Flawed reasoning Regenerate plan with failure context
Execution errors Correct tool calls and parameters
Output issues Repair factual errors and fill gaps

Configuration

TEI auto-detects your LLM provider from environment variables (OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY). No new accounts or API keys needed.

loop = TEILoop(
    agent=my_agent,
    eval_llm="gpt-5.2",       # Smartest for evaluation
    improve_llm="gpt-5-mini", # Cost-effective for fixes
)

Cost

Scenario Cost
Agent passes all dimensions ~$0.05
One improvement cycle ~$0.10
Full 3-retry loop ~$0.25

Works With Any Agent

TEI wraps any Python callable. No framework lock-in:

  • LangGraph agents
  • CrewAI crews
  • Custom Python functions
  • FastAPI endpoints
  • Any callable that takes input and returns output

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

tei_loop-0.1.3.tar.gz (37.9 kB view details)

Uploaded Source

Built Distribution

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

tei_loop-0.1.3-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

File details

Details for the file tei_loop-0.1.3.tar.gz.

File metadata

  • Download URL: tei_loop-0.1.3.tar.gz
  • Upload date:
  • Size: 37.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for tei_loop-0.1.3.tar.gz
Algorithm Hash digest
SHA256 cf5c4e5863fb98f3c49faac15adf2538360d29663474279dff1c47c096bfc4ac
MD5 70a617db1a65c618bec4b62b5553ec79
BLAKE2b-256 b06dea59e8150d1f0342b06c4e5393fef1da91f0ec0c88d652ab9ba7d8a959c2

See more details on using hashes here.

File details

Details for the file tei_loop-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: tei_loop-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 48.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for tei_loop-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bb75b8eebed541cdf6cae4d2fa65b680e912b639f1ead20d3cc99527057a3986
MD5 5d5bef9e4536a4152a261543ed1e7668
BLAKE2b-256 b5b8c0470473aa8350c20aa81051620c7566aea78d2712cd148f9463501e6995

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