exoclaw-tools-batch
Map and reduce primitives for agent-controlled ETL pipelines. Run tools against multiple inputs concurrently, then merge results — all without per-item LLM calls.
Tools
BatchTool (map)
Fan out a registered tool across multiple inputs concurrently. Results written to disk to keep agent context clean.
from exoclaw_tools_batch import BatchTool, ReduceTool
batch = BatchTool(concurrency=10)
reduce = ReduceTool()
app = Exoclaw(tools=[batch, reduce, ...])
{
"tool": "batch",
"items": [
{"url": "https://example.com/1"},
{"url": "https://example.com/2"}
],
"concurrency": 5
}
Returns {output_path: "/tmp/batch_web_fetch_abc.json", count: 2}. Use read_file to inspect results.
ReduceTool (reduce)
Merge multiple batch output files into one.
{
"dir": "/tmp/batch_llm_call_abc/",
"key": "results",
"dedup": "url"
}
Returns {output_path: "/tmp/reduce_xyz.json", count: 150}.
Options:
files— explicit list of paths (alternative todir)key— JSON key to extract from each file (default:"results", empty string for root)dedup— deduplicate by field nameoutput— explicit output path
ETL pipeline example
1. batch(tool="web_fetch", items=[...93 feeds...])
→ /tmp/batch_web_fetch_abc.json
2. batch(tool="llm_call", items=[
{prompt: "{{ file(path) }}\nExtract interesting URLs", model: "haiku", output: "/tmp/triage/0.json"},
...93 items...
])
→ 93 parallel cheap LLM calls
3. reduce(dir="/tmp/triage/", dedup="url")
→ /tmp/reduce_xyz.json (merged + deduped)
4. Agent reads merged results, queues to digest
2 batch calls + 1 reduce + 93 cheap model calls. No full agent loops per item.
How it works
BatchToolreceives theToolRegistryvia duck-typedset_registry()at registration time- Runs
registry.execute(tool, params)for each item behind an asyncio semaphore - Results written to temp files (configurable
output_dir) ReduceToolmerges JSON files by extracting at a key and concatenating
Requirements
exoclaw >= 0.3.0(withset_registryhook in AgentLoop)
Metadata
Release files for exoclaw-tools-batch 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| exoclaw_tools_batch-0.2.2.tar.gz | 8.3 kB | Without provenance | Details for exoclaw_tools_batch-0.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| exoclaw_tools_batch-0.2.2-py3-none-any.whl | Python 3 | none | any | Details for exoclaw_tools_batch-0.2.2-py3-none-any.whl |
Total release size: 19.6 kB
Release files / exoclaw_tools_batch-0.2.2.tar.gz
| Download URL | exoclaw_tools_batch-0.2.2.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6eef6d39cf053819942ac288edc9fe1114ffecd72c97024bc79d41b78420a7ba
|
|
BLAKE2b-256 checksum How to use checksums |
2e8f3eb56da7dd1dc9c3254eb61b1ecdd08d27a082782d54ff39948f6a7c7ed1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / exoclaw_tools_batch-0.2.2-py3-none-any.whl
| Download URL | exoclaw_tools_batch-0.2.2-py3-none-any.whl |
|---|---|
| Size | 11.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
24c0c6600480f222392478ca469c2d90ab892c468677f5eff155726cda6e45c5
|
|
BLAKE2b-256 checksum How to use checksums |
0a3773ca0b3bdd19903d66104f0a5c194183efff9815f2514525edc7c238fe97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for exoclaw-tools-batch 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.