Metadata-Version: 2.4
Name: agentic-loop
Version: 0.3.0
Summary: Lightweight Loop Engineering orchestrator for self-hosted agent loops
Author: Agentic-Loop contributors
License: MIT
Project-URL: Homepage, https://github.com/WenSongWang/Agentic-Loop
Project-URL: Repository, https://github.com/WenSongWang/Agentic-Loop
Project-URL: Documentation, https://github.com/WenSongWang/Agentic-Loop#readme
Project-URL: Issues, https://github.com/WenSongWang/Agentic-Loop/issues
Keywords: agent,llm,loop-engineering,orchestrator,mcp
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai>=1.40.0
Requires-Dist: pydantic>=2.7.0
Requires-Dist: python-dotenv>=1.0.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
Requires-Dist: build>=1.0; extra == "dev"
Requires-Dist: twine>=5.0; extra == "dev"
Provides-Extra: webhook
Requires-Dist: fastapi>=0.115.0; extra == "webhook"
Requires-Dist: uvicorn>=0.32.0; extra == "webhook"
Provides-Extra: mcp
Requires-Dist: mcp>=1.0.0; extra == "mcp"
Provides-Extra: all
Requires-Dist: pytest>=8.0; extra == "all"
Requires-Dist: pytest-asyncio>=0.24; extra == "all"
Requires-Dist: build>=1.0; extra == "all"
Requires-Dist: twine>=5.0; extra == "all"
Requires-Dist: fastapi>=0.115.0; extra == "all"
Requires-Dist: uvicorn>=0.32.0; extra == "all"
Requires-Dist: mcp>=1.0.0; extra == "all"
Dynamic: license-file

# Agentic Loop

Lightweight **Loop Engineering** orchestrator — self-hosted agent loops with tools, state memory, sub-agents, `/goal`, and scheduled automations.

Fork-friendly (MIT). See [docs/architecture.md](docs/architecture.md) and [docs/extending.md](docs/extending.md).

## Install from PyPI

```powershell
pip install agentic-loop
pip install "agentic-loop[webhook]"   # FastAPI server example
pip install "agentic-loop[mcp]"       # MCP connector
```

See [docs/publishing.md](docs/publishing.md) for maintainers.

## Quick Start (development)

```powershell
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
copy .env.example .env   # set OPENAI_API_KEY + DMXAPI base URL
```

```powershell
agentic-loop run "Summarize README" --dry-run
agentic-loop loop --every 5m "Triage issues" --once --dry-run
agentic-loop goal "tests pass" "Fix tests" --dry-run
agentic-loop state show
```

Example project: [examples/daily-triage](examples/daily-triage/)

## Commands

| Command | Purpose |
| :--- | :--- |
| `run` | Single agent loop with tools |
| `loop --every 5m` | Automation (Addy: Automations) |
| `goal "condition" "prompt"` | Run until evaluator confirms goal |
| `state show` | Persistent memory (state.json + triage) |

Common flags: `--cwd`, `--max-turns`, `--skill`, `--agent`, `--allow-bash`, `--dry-run`, `--no-stream`, `--json`

## Loop Engineering modules

| Module | CLI / path |
| :--- | :--- |
| Memory | `state show` → `.agentic-loop/state.json` |
| Skills | `--skill name` → `skills/*/SKILL.md` |
| Sub-agents | `--agent name` → `.agentic-loop/agents/*.toml` |
| Goal | `goal` + `EVALUATOR_MODEL` |
| Automations | `loop --every` |

Run logs: `.agentic-loop/runs/<run_id>.jsonl`

## Development

```powershell
pytest tests/ -q
```

## License

MIT — see [LICENSE](LICENSE).
