Griptape Agent Config: Custom Structure
The config node that lets you mix drivers from any provider
- prompt_driver
- image_generation_driver
- embedding_driver
- vector_store_driver
- text_to_speech_driver
- audio_transcription_driver
- CONFIG
If the Griptape pack has a "glue" node, this is it. Griptape Agent Config: Custom Structure takes any combination of driver nodes you've already built - a prompt driver here, an embedding driver there, an image generation driver from another provider - and bundles them into a single CONFIG that an agent can run with. It's the node you reach for when your agent doesn't fit one vendor's all-in-one config: maybe your brain is OpenAI, your embeddings are Cohere, and your images come from somewhere else entirely.
The provider-specific configs (OpenAI, Anthropic, Bedrock, Cohere, etc.) are convenience packages that hardwire a whole vendor's stack. Custom Structure is the opposite: you pick the pieces. That flexibility is exactly what the pack's architecture wants - the README's "ultimate configuration" diagram is built around driving every aspect of agent behavior through individual driver nodes, and this is where they all converge.
How it works
The node wraps Griptape's DriversConfig. Every input is optional, and each accepts one driver type:
- prompt_driver -
PROMPT_DRIVER, the agent's brain (e.g. the OpenAI or Grok prompt driver). - image_generation_driver -
DRIVER, for image-producing tasks. - embedding_driver -
EMBEDDING_DRIVER, for RAG/vector memory. - vector_store_driver -
VECTOR_STORE_DRIVER, where embeddings get stored and searched. - text_to_speech_driver -
TEXT_TO_SPEECH_DRIVER, for speech output. - audio_transcription_driver -
AUDIO_TRANSCRIPTION_DRIVER, for turning audio into text.
Whatever you leave unwired gets filled with a dummy driver, so the config never breaks - you can build a text-only agent with nothing but a prompt driver and it just works. The node also runs any environment-variable nodes in your graph before building, so keys set via Griptape Agent Config: Environment Variables are live when the config is created.
Output is a single CONFIG, which feeds Griptape Create: Agent from Config (or the agent creation node) to produce a working agent.
Which inputs matter
For a first agent, only prompt_driver is really required - that's the whole brain. Add embedding_driver when you want memory/RAG, image_generation_driver when you want the agent to make images, and so on. Start minimal, add drivers as the workflow demands.
Install
Same pack, same drill - ComfyUI Manager (search "Griptape") or:
cd ComfyUI/custom_nodes
git clone https://github.com/griptape-ai/ComfyUI-Griptape
The pack installs griptape[all] and python-dotenv; on Nvidia, watch for the torch conflict (reinstall from the cu121 index per the README if ComfyUI breaks).
Common gotchas
The one trap is assuming "custom" means you can wire driver outputs into the wrong config. Driver outputs have strict types - PROMPT_DRIVER, EMBEDDING_DRIVER, etc. - and a prompt driver won't drop into the embedding slot. If a socket won't accept your wire, you've got the wrong driver type, not a broken node. Also, dummy drivers are silent: if your agent seems to "work" but never actually produces intelligent output, check that a real prompt driver is wired in - otherwise it's running on a dummy brain.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_driveropt | PROMPT_DRIVER | — | |
| image_generation_driveropt | DRIVER | — | |
| embedding_driveropt | EMBEDDING_DRIVER | — | |
| vector_store_driveropt | VECTOR_STORE_DRIVER | — | |
| text_to_speech_driveropt | TEXT_TO_SPEECH_DRIVER | — | |
| audio_transcription_driveropt | AUDIO_TRANSCRIPTION_DRIVER | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONFIG | CONFIG | — |