New nodes (5):
- Relay: local message delivery between agents (outbox→inbox)
- ChatHistory: multi-turn conversation persistence across runs
- PromptTemplate: {a}/{b}/{c}/{d} variable substitution
- ConditionalRouter: keyword/regex routing with matched/unmatched outputs
- BatchSplitter: split text into numbered sections by delimiter
Fixed nodes (3):
- TextCombine: removed forceInput, text_a/text_b now typeable widgets
- Remember: removed forceInput on text, now typeable widget
- Send: removed forceInput on body, now typeable widget
Demo workflows (7):
1. Character Design - art director with memory for consistent characters
2. Novel Crafter - writer+editor dual-agent with Relay message delivery
3. Story to Video - director breaks story into scenes with BatchSplitter
4. Multi-Turn Chat - persistent conversation history across queue runs
5. Agent Debate - two agents argue via message passing (FOR vs AGAINST)
6. World Builder - game world with PromptTemplate for locations/characters
7. RAG Pipeline - store docs, search, answer with ConditionalRouter error handling
76 tests all passing (46 original + 30 new).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
109 lines
4.2 KiB
Python
109 lines
4.2 KiB
Python
"""
|
|
AgentAZAll ComfyUI Nodes
|
|
========================
|
|
Persistent memory and multi-agent communication for ComfyUI workflows.
|
|
|
|
20 nodes across 6 categories:
|
|
- Config: Setup, WhoAmI, Doing
|
|
- Memory: Remember, Recall, Note
|
|
- Messaging: Send, Inbox, ReadMessage, Relay, ChatHistory
|
|
- Integration: SystemPrompt, ToolParser, FileBrowser
|
|
- LLM: LLM (OpenAI-compatible)
|
|
- Utility: TextDisplay, TextCombine, PromptTemplate,
|
|
ConditionalRouter, BatchSplitter
|
|
|
|
Install: pip install agentazall>=1.0.13
|
|
Docs: https://agentazall.ai
|
|
"""
|
|
|
|
try:
|
|
# ComfyUI loads this as a package inside custom_nodes/
|
|
from .nodes.config_nodes import (
|
|
AgentAZAll_Setup, AgentAZAll_WhoAmI, AgentAZAll_Doing,
|
|
)
|
|
from .nodes.memory_nodes import (
|
|
AgentAZAll_Remember, AgentAZAll_Recall, AgentAZAll_Note,
|
|
)
|
|
from .nodes.messaging_nodes import (
|
|
AgentAZAll_Send, AgentAZAll_Inbox, AgentAZAll_ReadMessage,
|
|
AgentAZAll_Relay, AgentAZAll_ChatHistory,
|
|
)
|
|
from .nodes.integration_nodes import (
|
|
AgentAZAll_SystemPrompt, AgentAZAll_ToolParser, AgentAZAll_FileBrowser,
|
|
)
|
|
from .nodes.llm_nodes import AgentAZAll_LLM
|
|
from .nodes.utility_nodes import (
|
|
AgentAZAll_TextDisplay, AgentAZAll_TextCombine,
|
|
AgentAZAll_PromptTemplate, AgentAZAll_ConditionalRouter,
|
|
AgentAZAll_BatchSplitter,
|
|
)
|
|
except ImportError:
|
|
# Standalone / pytest — absolute imports
|
|
from nodes.config_nodes import (
|
|
AgentAZAll_Setup, AgentAZAll_WhoAmI, AgentAZAll_Doing,
|
|
)
|
|
from nodes.memory_nodes import (
|
|
AgentAZAll_Remember, AgentAZAll_Recall, AgentAZAll_Note,
|
|
)
|
|
from nodes.messaging_nodes import (
|
|
AgentAZAll_Send, AgentAZAll_Inbox, AgentAZAll_ReadMessage,
|
|
AgentAZAll_Relay, AgentAZAll_ChatHistory,
|
|
)
|
|
from nodes.integration_nodes import (
|
|
AgentAZAll_SystemPrompt, AgentAZAll_ToolParser, AgentAZAll_FileBrowser,
|
|
)
|
|
from nodes.llm_nodes import AgentAZAll_LLM
|
|
from nodes.utility_nodes import (
|
|
AgentAZAll_TextDisplay, AgentAZAll_TextCombine,
|
|
AgentAZAll_PromptTemplate, AgentAZAll_ConditionalRouter,
|
|
AgentAZAll_BatchSplitter,
|
|
)
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"AgentAZAll_Setup": AgentAZAll_Setup,
|
|
"AgentAZAll_WhoAmI": AgentAZAll_WhoAmI,
|
|
"AgentAZAll_Doing": AgentAZAll_Doing,
|
|
"AgentAZAll_Remember": AgentAZAll_Remember,
|
|
"AgentAZAll_Recall": AgentAZAll_Recall,
|
|
"AgentAZAll_Note": AgentAZAll_Note,
|
|
"AgentAZAll_Send": AgentAZAll_Send,
|
|
"AgentAZAll_Inbox": AgentAZAll_Inbox,
|
|
"AgentAZAll_ReadMessage": AgentAZAll_ReadMessage,
|
|
"AgentAZAll_Relay": AgentAZAll_Relay,
|
|
"AgentAZAll_ChatHistory": AgentAZAll_ChatHistory,
|
|
"AgentAZAll_SystemPrompt": AgentAZAll_SystemPrompt,
|
|
"AgentAZAll_ToolParser": AgentAZAll_ToolParser,
|
|
"AgentAZAll_FileBrowser": AgentAZAll_FileBrowser,
|
|
"AgentAZAll_LLM": AgentAZAll_LLM,
|
|
"AgentAZAll_TextDisplay": AgentAZAll_TextDisplay,
|
|
"AgentAZAll_TextCombine": AgentAZAll_TextCombine,
|
|
"AgentAZAll_PromptTemplate": AgentAZAll_PromptTemplate,
|
|
"AgentAZAll_ConditionalRouter": AgentAZAll_ConditionalRouter,
|
|
"AgentAZAll_BatchSplitter": AgentAZAll_BatchSplitter,
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"AgentAZAll_Setup": "AZAll Setup",
|
|
"AgentAZAll_WhoAmI": "AZAll Who Am I",
|
|
"AgentAZAll_Doing": "AZAll Current Task",
|
|
"AgentAZAll_Remember": "AZAll Remember",
|
|
"AgentAZAll_Recall": "AZAll Recall",
|
|
"AgentAZAll_Note": "AZAll Note",
|
|
"AgentAZAll_Send": "AZAll Send Message",
|
|
"AgentAZAll_Inbox": "AZAll Inbox",
|
|
"AgentAZAll_ReadMessage": "AZAll Read Message",
|
|
"AgentAZAll_Relay": "AZAll Relay (Local Delivery)",
|
|
"AgentAZAll_ChatHistory": "AZAll Chat History",
|
|
"AgentAZAll_SystemPrompt": "AZAll System Prompt",
|
|
"AgentAZAll_ToolParser": "AZAll Tool Parser",
|
|
"AgentAZAll_FileBrowser": "AZAll File Browser",
|
|
"AgentAZAll_LLM": "AZAll LLM",
|
|
"AgentAZAll_TextDisplay": "AZAll Text Display",
|
|
"AgentAZAll_TextCombine": "AZAll Text Combine",
|
|
"AgentAZAll_PromptTemplate": "AZAll Prompt Template",
|
|
"AgentAZAll_ConditionalRouter": "AZAll Conditional Router",
|
|
"AgentAZAll_BatchSplitter": "AZAll Batch Splitter",
|
|
}
|
|
|
|
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]
|