Set up a private workforce of specialist AI agents (claws) that discover each other and fuse their context windows. No blockchain, no external services — just your claws, your data, one config file.
Each claw is a Python class that does one thing well — pricing analysis, code review, web search, support tickets. It exports structured data, not chat.
Add claws via a JSON/YAML config file, or use the @register() decorator. The InternalRegistry holds your workforce.
Pick 2-5 claws for a task, the Orchestrator runs them in parallel, fuses their contexts, and synthesizes one answer.
Define your claws in a claws.json or claws.yaml. Each entry points to a Python module + class, or can be an inline stub with static data.
{
"claws": [
{
"claw_id": "pricing_analyst",
"description": "Analyzes competitor pricing strategies",
"module": "mycompany.claws.pricing",
"class": "PricingClaw"
},
{
"claw_id": "product_researcher",
"description": "Researches product features and roadmaps",
"module": "mycompany.claws.product",
"class": "ProductClaw"
},
{
"claw_id": "market_watcher",
"description": "Monitors market trends and news",
"module": "mycompany.claws.market",
"class": "MarketClaw"
}
]
}claws:
- claw_id: pricing_analyst
description: Analyzes competitor pricing strategies
module: mycompany.claws.pricing
class: PricingClaw
- claw_id: product_researcher
description: Researches product features and roadmaps
module: mycompany.claws.product
class: ProductClaw
- claw_id: support_agent
description: Handles customer support tickets
summary: "Static support context"
facts:
- key: sla
value: "4 hours"
- key: escalation_path
value: "support -> engineering -> CTO"For code-first teams. Decorate your claw class and it auto-registers into the default registry at import time.
from fusionclaw import BaseClaw, Fact, StateObject, register
@register()
class PricingClaw(BaseClaw):
claw_id = "pricing_analyst"
description = "Analyzes competitor pricing strategies"
async def run(self, input: str) -> StateObject:
# Your specialist logic here
return StateObject(
claw_id=self.claw_id,
summary="Competitor cut enterprise tier 15%",
key_facts=[
Fact(key="new_price", value="$85/mo"),
Fact(key="change_date", value="2026-02-01"),
],
raw_context="Full pricing research notes...",
token_count=1200,
)Load your registry, pick the claws relevant to the task, and fuse. One LLM call.
from fusionclaw import InternalRegistry, Orchestrator
# Load your company's claw workforce
registry = InternalRegistry.from_json("claws.json")
# Pick claws for this task
claws = registry.select(["pricing_analyst", "product_researcher"])
# Fuse and synthesize
orch = Orchestrator(claws=claws, model="gpt-4o")
result = await orch.query("How does competitor X compare?")
print(result.answer)| Method | Description |
|---|---|
| InternalRegistry.from_json(path) | Load claws from JSON config |
| InternalRegistry.from_yaml(path) | Load claws from YAML config (needs pyyaml) |
| InternalRegistry.from_dict(data) | Load from a Python dict |
| registry.add(claw) | Register a claw instance |
| registry.get(claw_id) | Get a claw by ID |
| registry.list() | List all registered claws |
| registry.list_ids() | List all claw IDs |
| registry.search(query) | Substring search on ID + description |
| registry.select(ids) | Pick specific claws for fusion (raises on missing) |
| registry.to_json(path?) | Export registry as JSON |
| @register() | Decorator to auto-register at import time |
Context fuser, orchestrator, chat-vs-fusion benchmark
JSON/YAML config, @register decorator, search, select, priority-based compression
Spawn new claws from fused context, recursive fusion chains
N-claw scaling tests, cross-model comparison, more scenarios
Auth, observability dashboard, JS/TS SDK, team management
Once your internal claws are working, you can register them on-chain and discover agents from other organizations via ERC-8004.
Explore Global