Configs
Overview
Gen AI Builder exposes a global singleton, Defaults, which can be used to access and modify the default configurations of the framework.
To update the default configurations, simply update the fields on the Defaults
object.
Framework objects will be created with the currently set default configurations, but you can always override at the individual class level.
from griptape.configs import Defaults from griptape.configs.drivers import AnthropicDriversConfig, OpenAiDriversConfig from griptape.drivers.prompt.anthropic_prompt_driver import AnthropicPromptDriver from griptape.structures import Agent Defaults.drivers_config = OpenAiDriversConfig() # Default openai_agent = Agent() Defaults.drivers_config = AnthropicDriversConfig() anthropic_agent = Agent( prompt_driver=AnthropicPromptDriver(model="claude-3-7-sonnet-latest"), # Override the default prompt driver )
Drivers Configs
The DriversConfig class allows for the customization of Structures within Gen AI Builder, enabling specific settings such as Drivers to be defined for Tasks.
Gen AI Builder provides predefined DriversConfig's for widely used services that provide APIs for most Driver types Gen AI Builder offers.
DriversConfig
s can be used as a Python Context Manager using the with
statement to temporarily change the default configurations for a block of code.
import schema from griptape.configs.drivers import AnthropicDriversConfig, OpenAiDriversConfig from griptape.drivers.prompt.anthropic import AnthropicPromptDriver from griptape.drivers.prompt.openai import OpenAiChatPromptDriver from griptape.engines import JsonExtractionEngine from griptape.structures import Agent from griptape.tasks import ToolTask from griptape.tools import ExtractionTool with OpenAiDriversConfig(): # Agent will be created with OpenAi Drivers openai_agent = Agent() with AnthropicDriversConfig(): # Agent will be created with Anthropic Drivers anthropic_agent = Agent( tasks=[ ToolTask( "Extract sentiment from this text: {{ args[0] }}", prompt_driver=OpenAiChatPromptDriver(model="gpt-4.1"), # Override this particular Task's prompt driver tool=ExtractionTool( extraction_engine=JsonExtractionEngine( prompt_driver=AnthropicPromptDriver( # Override this particular Engine's prompt driver model="claude-3-opus-20240229" ), template_schema=schema.Schema({"sentiment": str}).json_schema("Output"), ), ), ) ] ) anthropic_agent.run("Hello, I am happy!")
[03/06/25 18:19:54] INFO ToolTask 842c61be58934a24920df468fba58300 Input: Extract sentiment from this text: Hello, I am happy! [03/06/25 18:19:56] INFO Subtask da8a35ed12b84357aa3d8d30e49c3ec6 Actions: [ { "tag": "call_OjBdTDMgGqiskuueP8PD6T4d", "name": "ExtractionTool", "path": "extract", "input": { "values": { "data": "Hello, I am happy!" } } } ] [03/06/25 18:19:57] INFO Subtask da8a35ed12b84357aa3d8d30e49c3ec6 Response: {"sentiment": "positive"} INFO ToolTask 842c61be58934a24920df468fba58300 Output: {"sentiment": "positive"}
OpenAI
The OpenAI Driver config provides default Drivers for OpenAI's APIs. This is the default config for all Structures.
from griptape.configs import Defaults from griptape.configs.drivers import OpenAiDriversConfig from griptape.structures import Agent Defaults.drivers_config = OpenAiDriversConfig() agent = Agent()
Azure OpenAI
The Azure OpenAI Driver config provides default Drivers for Azure's OpenAI APIs.
import os from griptape.configs import Defaults from griptape.configs.drivers import AzureOpenAiDriversConfig from griptape.structures import Agent Defaults.drivers_config = AzureOpenAiDriversConfig( azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT_1"], api_key=os.environ["AZURE_OPENAI_API_KEY_1"] ) agent = Agent()
Amazon Bedrock
The Amazon Bedrock Driver config provides default Drivers for Amazon Bedrock's APIs.
import os import boto3 from griptape.configs import Defaults from griptape.configs.drivers import AmazonBedrockDriversConfig from griptape.structures import Agent Defaults.drivers_config = AmazonBedrockDriversConfig( session=boto3.Session( region_name=os.environ["AWS_DEFAULT_REGION"], aws_access_key_id=os.environ["AWS_ACCESS_KEY_ID"], aws_secret_access_key=os.environ["AWS_SECRET_ACCESS_KEY"], ) ) agent = Agent()
The Google Driver config provides default Drivers for Google's Gemini APIs.
from griptape.configs import Defaults from griptape.configs.drivers import GoogleDriversConfig from griptape.structures import Agent Defaults.drivers_config = GoogleDriversConfig() agent = Agent()
Anthropic
The Anthropic Driver config provides default Drivers for Anthropic's APIs.
Info
Anthropic does not provide an embeddings API which means you will need to use another service for embeddings. To override the default embedding driver, see: Override Default Structure Embedding Driver.
from griptape.configs import Defaults from griptape.configs.drivers import AnthropicDriversConfig from griptape.structures import Agent Defaults.drivers_config = AnthropicDriversConfig() agent = Agent()
Cohere
The Cohere Driver config provides default Drivers for Cohere's APIs.
import os from griptape.configs import Defaults from griptape.configs.drivers import CohereDriversConfig from griptape.structures import Agent Defaults.drivers_config = CohereDriversConfig(api_key=os.environ["COHERE_API_KEY"]) agent = Agent()
Custom
You can create your own DriversConfig by overriding relevant Drivers. The DriversConfig class includes "Dummy" Drivers for all types, which throw a DummyError if invoked without being overridden. This approach ensures that you are informed through clear error messages if you attempt to use Structures without proper Driver configurations.
import os from griptape.configs import Defaults from griptape.configs.drivers import DriversConfig from griptape.drivers.embedding.openai import OpenAiEmbeddingDriver from griptape.drivers.prompt.anthropic import AnthropicPromptDriver from griptape.structures import Agent Defaults.drivers_config = DriversConfig( prompt_driver=AnthropicPromptDriver( model="claude-3-sonnet-20240229", api_key=os.environ["ANTHROPIC_API_KEY"], ), embedding_driver=OpenAiEmbeddingDriver(), ) agent = Agent()
Logging Config
Gen AI Builder provides a predefined LoggingConfig's for easily customizing the logging events that the framework emits. In order to customize the logger, the logger can be fetched by using the Defaults.logging.logger_name
.
import logging from griptape.configs import Defaults from griptape.configs.drivers import OpenAiDriversConfig from griptape.configs.logging import TruncateLoggingFilter from griptape.structures import Agent Defaults.drivers_config = OpenAiDriversConfig() logger = logging.getLogger(Defaults.logging_config.logger_name) logger.setLevel(logging.ERROR) logger.addFilter(TruncateLoggingFilter(max_log_length=100)) agent = Agent()
Debug Logs
You can enable debug logs to view more granular information such as request/response payloads.
import logging from griptape.configs import Defaults from griptape.configs.logging import JsonFormatter from griptape.structures import Agent logger = logging.getLogger(Defaults.logging_config.logger_name) logger.setLevel(logging.DEBUG) logger.handlers[0].setFormatter(JsonFormatter()) agent = Agent() agent.run("Hello world!")
[03/06/25 18:18:49] INFO PromptTask 6c37bfc8e0744ba9b715fe6d951ac4ce Input: Hello world! DEBUG { "model": "gpt-4o", "user": "", "seed": null, "temperature": 0.1, "stop": [ "<|Response|>" ], "messages": [ { "role": "user", "content": "Hello world!" } ] } [03/06/25 18:18:50] DEBUG { "id": "chatcmpl-B8A5yme2oHuLx4vMOO8f0Sajq06PM", "choices": [ { "finish_reason": "stop", "index": 0, "logprobs": null, "message": { "content": "Hello! How can I assist you today?", "refusal": null, "role": "assistant", "audio": null, "function_call": null, "tool_calls": null } } ], "created": 1741285130, "model": "gpt-4o-2024-08-06", "object": "chat.completion", "service_tier": "default", "system_fingerprint": "fp_fc9f1d7035", "usage": { "completion_tokens": 9, "prompt_tokens": 10, "total_tokens": 19, "completion_tokens_details": { "accepted_prediction_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0, "rejected_prediction_tokens": 0 }, "prompt_tokens_details": { "audio_tokens": 0, "cached_tokens": 0 } } } INFO PromptTask 6c37bfc8e0744ba9b715fe6d951ac4ce Output: Hello! How can I assist you today?
Loading/Saving Configs
You can serialize and deserialize Driver Configs using the to_json() and from_json() methods.
from pathlib import Path from griptape.configs import Defaults from griptape.configs.drivers import DriversConfig from griptape.structures import Agent config_file = "config.json" # Save config config_text = Defaults.drivers_config.to_json() Path(config_file).write_text(config_text) # Load config config_text = Path(config_file).read_text() Defaults.drivers_config = DriversConfig.from_json(config_text) agent = Agent()
- On this page
- Overview
Could this page be better? Report a problem or suggest an addition!