Simple LLM: Agent to Tool
Packaging one LLM agent so another can call it
- agent
- TOOL
The idea behind tool-calling agents is that a main agent doesn't have to know everything - it can hand subtasks off to specialist agents that present themselves as callable tools. Simple LLM: Agent to Tool is the node in this pack that does that wrapping: it takes an existing AGENT and re-describes it as a TOOL, with a name and a description an orchestrator would use to decide when to call it.
Here's the honest part, though. In the shipped code, nothing in the pack consumes a TOOL yet - there's no tool-calling orchestrator node wired up to receive it. Agent to Tool is forward-looking scaffolding. You build the tool now, and either the pack adds a consumer later or you hook it into your own graph. That doesn't make it useless; it makes it infrastructure waiting for a tenant.
How it works
The node takes your agent and packages it into a dict: name, description, type: "agent", the agent itself, and a parameter schema that describes a single query string input. In plain terms: "here is a thing called X that does Y, and to use it you send it a query." That name-and-description pair is exactly what an LLM tool registry keys on - the model reads descriptions to pick which tool fits the user's request, so the description is the part you should sweat over.
The inputs that matter
- agent - the AGENT object from Simple LLM Agent or Simple LLM: Agent with Rules. This is the payload being wrapped.
- tool_name - default
agent_tool. Keep it short, lowercase, snake_case-friendly. It's the identifier other code will reference. - tool_description - default "An AI agent that can answer questions." Multiline, and this is the one worth writing well: be specific about what the agent is good at, what it needs, and when to call it. "Use when you need to look up character details from the story bible" beats "can answer questions" a hundred times over.
The single output is the TOOL, ready to feed into whatever orchestrator eventually consumes it.
Installing the pack
# ComfyUI Manager → Install via Git URL:
https://github.com/NakamuraShippo/ComfyUI-NS-Util
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/NakamuraShippo/ComfyUI-NS-Util
pip install pyyaml watchdog
Restart ComfyUI. No model downloads - the whole pack's LLM side is HTTP-call plumbing, and this node is pure data transformation, no network involved at all. ComfyUI 0.3+ is recommended.
Common issues
The main confusion is expectation: people wire Agent to Tool, feed the TOOL somewhere, and find there's nowhere to feed it. That's not you doing it wrong - the pack's LLM section is explicitly still under development ("Implementing the tests now" in the README). If you're building a serious tool-calling agent today, you're likely better off with a dedicated agent framework; this node is the one you grab to get familiar with the shape of the problem inside ComfyUI.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| agent | AGENT | — | |
| tool_name | STRING | agent_tool | — |
| tool_description | STRING | An AI agent that can answer questions | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| TOOL | TOOL | — |