Metadata-Version: 2.4
Name: uc-llm-agent-tools
Version: 0.1.0
Summary: Lightweight LLM agent library — memory layers, skills, context engineering
Project-URL: Repository, https://github.com/cuber-it/uc-llm-agent-tools
Author-email: uc-it <sonstige@uc-it.de>
License: MIT
Keywords: agent,ai,context-engineering,llm,memory
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: pydantic>=2.0
Requires-Dist: python-frontmatter>=1.0.0
Requires-Dist: uc-llm-provider>=0.5.1
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Description-Content-Type: text/markdown

# uc-llm-agent-tools

Lightweight LLM agent library — memory layers, skills, context engineering.

Built on [uc-llm-provider](https://pypi.org/project/uc-llm-provider/).
Works with any LLM: Anthropic, OpenAI, Google, Ollama.

## Install

```bash
pip install uc-llm-agent-tools
```

## Quick Start

```python
from uc_llm_agent_tools import Agent, Identity, MemoryStore, MemoryLayer
from uc_llm_agent_tools.memory.backends.sqlite import SQLiteBackend
from uc_llm_agent_tools.skills import skill, SkillResult
from uc_llm_provider import get_provider

# Skills definieren
@skill(name="fetch_page", description="Fetch and analyze a web page", tags=["browser"])
async def fetch_page(url: str) -> SkillResult:
    return SkillResult(success=True, content=f"Page at {url} analyzed", data={})

# Agent aufsetzen
agent = Agent(
    identity=Identity.from_file("my-agent-identity.md"),
    memory=MemoryStore(
        backend=SQLiteBackend("agent.sqlite3"),
        layers=[
            MemoryLayer("project", level=2, persist=True),
            MemoryLayer("run",     level=3, persist=False),
        ]
    ),
    skills=[fetch_page],
    provider=get_provider({"name": "anthropic", "provider_type": "anthropic"}),
)

result = await agent.run("Analyze https://example.com for accessibility issues")
```

## Memory Hierarchy

```
Level 0: Directives    — always loaded, never overridden
Level 1: Personality   — always loaded, grows over time
Level N: custom named  — filtered by budget and relevance
```

High beats low. Low complements high.

## PyPI

[uc-llm-agent-tools](https://pypi.org/project/uc-llm-agent-tools/)
