ComfyUI Node

AZAll Tool Parser

Let the LLM call Remember, Send, and Doing on its own

By cronos3k·Created 5 months ago·Updated 5 months ago· 0
AZAll Tool Parser
  • config
  • tool_results
  • clean_text
llm_output

The difference between an LLM that talks about remembering and one that actually does it. AgentAZAll_ToolParser scans the LLM's raw output for [TOOL:...]...[/TOOL] blocks, executes the recognized tools against the agent's storage, and hands back both the tool results and the cleaned-up text with tool blocks stripped out. Wire the LLM's response through this node and the model can literally save memories, write notes, send messages, and update its task status - mid-conversation, without a human in the loop.

This is the node that closes the agent loop: System Prompt teaches the model the tool syntax, LLM emits a tool call, Tool Parser runs it. The pack's System Prompt node bakes the syntax into every prompt it assembles, so you rarely write it yourself.

How it works

It matches [TOOL:<name> ...]...[/TOOL] blocks and handles four tools:

  • [TOOL:remember title="slug"]text[/TOOL] - stores a memory (appending if the title exists).
  • [TOOL:note name="context"]text[/TOOL] - writes a note.
  • [TOOL:send to="agent@host" subject="subj"]body[/TOOL] - queues a message to the outbox.
  • [TOOL:doing]status[/TOOL] - updates the current task.

Unknown tools or errors are reported in the results rather than crashing. The node then strips every tool block out of the original text and collapses the blank lines, so the output the human or next node sees is clean prose.

The inputs that matter

  • config (required) - from AZAll Setup; the tools act on this agent's storage.
  • llm_output (required) - wire this from the LLM node's response. It's marked forceInput, so you can't just type into it; the LLM has to supply it.

Two outputs: tool_results - one line per tool call, e.g. [remember:character-elara] Stored, or No tool calls found. - and clean_text - the model's text with all tool blocks removed, ready for a Text Display or further processing.

Installing it

Part of cronos3k/comfyui-agentazall. Manager search "AgentAZAll", or:

cd ComfyUI/custom_nodes
git clone https://github.com/cronos3k/comfyui-agentazall.git
pip install "agentazall>=1.0.13"
# restart ComfyUI

No models, no keys.

Common issues

Tool-calling quality depends entirely on your model. Small local models often mangle the syntax - wrong attribute quotes, missing closing tags - and anything not matching the strict regex gets silently skipped (reported in tool_results as "Unknown tool" or just not matched, leaving stray text in clean_text). If you see [TOOL:remember title="character-elara"] chunks leaking into your displayed output, your model isn't following the format; a better model or a more explicit instruction in the system prompt usually fixes it. Also note the parser executes tools as it finds them, in one pass - there's no confirmation step, so if you're nervous, sandbox the mailbox first. It's plain text files, after all; nothing here is unrecoverable.

CategoryAgentAZAll/Integration

Inputs (2)

NameTypeDefaultDescription
configAZALL_CONFIG
llm_outputSTRING

Outputs (2)

NameTypeDescription
tool_resultsSTRING
clean_textSTRING