Metadata-Version: 2.5
Name: duduclaw
Version: 1.69.1
Summary: Open-source AI Agent platform unifying Claude / Codex / Gemini CLIs. Multi-LLM routing, 243 MCP tools, 11 messaging channels.
Project-URL: Homepage, https://github.com/zhixuli0406/DuDuClaw
Project-URL: Repository, https://github.com/zhixuli0406/DuDuClaw
Project-URL: Issues, https://github.com/zhixuli0406/DuDuClaw/issues
Project-URL: Documentation, https://github.com/zhixuli0406/DuDuClaw#readme
Project-URL: Changelog, https://github.com/zhixuli0406/DuDuClaw/blob/main/CHANGELOG.md
Author-email: Louis Li <zhixuli0406@gmail.com>
License: Apache-2.0
License-File: LICENSE
Keywords: agent,ai,claude,duduclaw,gemini,mcp,model-context-protocol,multi-llm,openai,rag,rust
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.9
Requires-Dist: anthropic>=0.40
Requires-Dist: httpx>=0.27
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest-cov>=5; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Requires-Dist: watchdog>=4.0; extra == 'dev'
Description-Content-Type: text/markdown

# DuDuClaw Python SDK

Python companion package for [DuDuClaw](https://github.com/zhixuli0406/DuDuClaw) — the Multi-Agent AI Assistant Platform.

This package carries the Python-side helpers that sit next to the DuDuClaw Rust binary:

- **`duduclaw.mcp`** — MCP server helpers: API-key auth with scope enforcement, memory tools (store / read / search / namespace / quota)
- **`duduclaw.agents`** — capability-based agent routing (manifest loader, matcher, router, memory resolver)
- **`duduclaw.evolution`** — evolution vetter (GVU self-play verification)
- **`duduclaw.tools`** — agent tool definitions

## Installation

```bash
pip install duduclaw
```

> **Note:** This package is a companion to the main DuDuClaw binary.
> Install the binary via npm (`npx duduclaw`) or the install script — see the repository README.

## Requirements

- Python 3.10+
- The `anthropic` and `httpx` packages (installed automatically)

## Memory evaluation harness (repository only)

`python/duduclaw/memory_eval/` is a benchmarking harness for memory retrieval quality. It is **not part of the published wheel** — no runtime path calls it, and shipping 7k lines of benchmark code to every `pip install` bought nobody anything. Run it from a checkout instead:

```bash
git clone https://github.com/zhixuli0406/DuDuClaw && cd DuDuClaw
# The harness needs four packages the published wheel does not depend on:
pip install aiohttp asyncpg datasets pytest pytest-asyncio aioresponses
PYTHONPATH=python python -m duduclaw.memory_eval.smoke_test         # ~5 min P0 smoke run
PYTHONPATH=python pytest python/duduclaw/memory_eval/tests -v       # the harness's own tests
```

Without `asyncpg`, `aiohttp`, and `datasets` the modules will not even import — one more reason they have no business in a wheel whose declared dependencies are `anthropic`, `httpx`, and `pyyaml`.

About its data: `data/golden_qa_set.jsonl` holds **200 hand-written question/answer pairs** (every row is tagged `source: "manual"`). It is a DuDuClaw-authored zh-TW set, **not** LOCOMO and not derived from it, despite what some older internal notes said. `fetch_benchmarks.py` can pull LongMemEval and PersonaMem separately; those downloads are not bundled either.

## License

Apache-2.0
