Rooms as pipeline nodes, exits as edges, objects as messages
"Rooms are nodes. Exits are edges. Thrown objects are messages."
MOOLLM's approach to building processing pipelines using rooms and objects. The filesystem IS the data flow network.
| Command | Effect |
|---|---|
THROW obj exit |
Send object through exit to destination |
INBOX |
List items waiting to be processed |
NEXT |
Get next item from inbox (FIFO) |
PEEK |
Look at next item without removing |
STAGE obj exit |
Add object to outbox for later throw |
FLUSH |
Throw all staged objects |
FLUSH exit |
Throw staged objects for specific exit |
stage/
āāā ROOM.yml # Config and processor definition
āāā inbox/ # Incoming queue (FIFO)
āāā outbox/ # Staged for batch throwing
āāā door-next/ # Exit to next stage
processor:
type: script
command: "python parse.py ${input}"
processor:
type: llm
prompt: |
Analyze this document:
- Extract key entities
- Summarize in 3 sentences
processor:
type: hybrid
pre_process: "extract.py ${input}"
llm_prompt: "Analyze extracted data"
post_process: "format.py ${output}"
Mix and match. LLM for reasoning, scripts for transformation.
uploads/ # Raw files land here
āāā inbox/
ā āāā doc-001.pdf
ā āāā doc-002.pdf
āāā door-parser/
parser/ # Extract text
āāā script: parse.py
āāā door-analyzer/
analyzer/ # LLM analyzes
āāā prompt: "Summarize..."
āāā door-output/
āāā door-errors/
output/ # Final results
āāā inbox/
āāā doc-001-summary.yml
āāā doc-002-summary.yml
> ENTER parser
Inbox: 2 items waiting.
> NEXT
Processing doc-001.pdf...
Text extracted.
> STAGE doc-001.txt door-analyzer
Staged.
> FLUSH
Throwing 2 items through door-analyzer...
routing_rules:
- if: "priority == 'high'"
throw_to: door-fast-track
- if: "type == 'archive'"
throw_to: door-archive
- default: door-standard
batch_size: 10
on_batch_complete: |
Combine all results
Generate summary report
THROW report.yml door-output
| MOOLLM | Kilroy |
|---|---|
| Room | Node |
| Exit | Edge |
| THROW | Message passing |
| inbox/ | Input queue |
| Script processor | Deterministic module |
| LLM processor | LLM node |