All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
PromptTask.conversation_memory
for setting the Conversation Memory on a Prompt Task.Structure.conversation_memory_strategy
for setting whether Conversation Memory Runs should be created on a per-Structure or per-Task basis. Default isper_structure
.Structure.conversation_memory_strategy
for setting whether Conversation Memory Runs should be created on a per-Structure or per-Task basis. Default isStructure.ConversationMemoryStrategy.PER_STRUCTURE
.BranchTask
for selecting which Tasks (if any) to run based on a condition.- Support for
BranchTask
inStructureVisualizer
. EvalEngine
for evaluating the performance of an LLM's output against a given input.BaseFileLoader.save()
method for saving an Artifact to a destination.
- Rulesets can now be serialized and deserialized.
ToolkitTask
now serializes itstools
field.PromptTask.prompt_driver
is now serialized.PromptTask
can now do everything aToolkitTask
can do.
- Exception when calling
Structure.to_json()
after it has run. Agent
unintentionally modifyingstream
for all Prompt Drivers.StructureVisualizer.base_url
for setting the base URL on the url generated byStructureVisualizer.to_url()
.StructureVisualizer.query_params
for setting query parameters on the url generated byStructureVisualizer.to_url()
.- Parsing
ActionCallDeltaMessageContent
s with empty stringpartial_input
s. Stream
util not properly propagating thread contextvars.ValueError
withDuckDuckGoWebSearchDriver
.
ToolkitTask
.PromptTask
is a drop-in replacement.
TrafilaturaWebScraperDriver.no_ssl
parameter to disable SSL verification. Defaults toFalse
.CsvExtractionEngine.format_header
parameter to format the header row.PromptStack.from_artifact
factory method for creating a Prompt Stack with a user message from an Artifact.OpenAiChatPromptDriver.parallel_tool_calls
parameter for toggling parallel tool calling. Defaults toTrue
.AssistantTask
for running Assistants in Structures.GriptapeCloudAssistantDriver
for interacting with Griptape Cloud's Assistant API.OpenAiAssistantDriver
for interacting with OpenAI's Assistant API.GriptapeCloudToolTool
for running Griptape Cloud hosted Tools.JsonLoader
for loading and parsing JSON files.StructureVisualizer.build_node_id
field for customizing the node ID.- Support for Python
3.13
.
- BREAKING: Removed
stringcase
anddocker
from core dependencies.ComputerTool
will now install these on the fly. - BREAKING: Renamed
BaseTask.State.EXECUTING
toBaseTask.State.RUNNING
. - BREAKING: Renamed
BaseTask.is_executing()
toBaseTask.is_running()
. - BREAKING: Renamed
Structure.is_executing()
toStructure.is_running()
. - BREAKING: Removed ability to pass bytes to
BaseFileLoader.fetch
. - BREAKING: Updated
CsvExtractionEngine.format_row
to format rows as comma-separated values instead of newline-separated key-value pairs. - BREAKING: Removed all
ImageQueryDriver
s, usePromptDriver
s instead. - BREAKING: Removed
ImageQueryTask
, usePromptTask
instead. - BREAKING: Updated
ImageQueryTool.image_query_driver
toImageQueryTool.prompt_driver
. - BREAKING: Updated
numpy
to~2.0.2
andpandas
to^2.2
. - BREAKING: Renamed
StructureRunTask.driver
toStructureRunTask.structure_run_driver
. - BREAKING: Renamed
StructureRunTool.driver
toStructureRunTool.structure_run_driver
. - BREAKING: Moved the following Google Tools to the Griptape Google Extension:
GoogleCalendarTool
GoogleDocsTool
GoogleDriveTool
GoogleGmailTool
- BREAKING: Moved the following AWS Tools to the Griptape AWS Extension:
AwsCliTool
AwsIamTool
AwsPricingTool
AwsS3Tool
- BREAKING: Moved the
OpenWeatherTool
to the Griptape Open Weather Extension - BREAKING: Removed
GriptapeCloudKnowledgeBaseTool
. Use a RAG Engine withGriptapeCloudVectorStoreDriver
instead. - BREAKING: Removed redundant Engines, use their respective Drivers instead.
- Removed
ImageQueryEngine
, useImageQueryDriver
s instead. - Removed
InpaintingImageGenerationEngine
, useImageGenerationDriver
s instead. - Removed
OutpaintingImageGenerationEngine
, useImageGenerationDriver
s instead. - Removed
VariationImageGenerationEngine
, useImageGenerationDriver
s instead. - Removed
PromptImageGenerationEngine
, useImageGenerationDriver
s instead. - Removed
ImageGenerationEngine
, useImageGenerationDriver
s instead. - Removed
AudioTranscriptionEngine
, useAudioTranscriptionDriver
s instead. - Removed
TextToSpeechEngine
, useTextToSpeechDriver
s instead.
- Removed
- BREAKING: Tools that previously took Engines now take their respective Drivers.
- Updated
AudioTranscriptionTool.engine
toAudioTranscriptionTool.audio_transcription_driver
. - Updated
TextToSpeechTool.engine
toTextToSpeechTool.text_to_speech_driver
. - Updated
ImageQueryTool.image_query_engine
toImageQueryTool.image_query_driver
. - Updated
InpaintingImageGenerationTool.engine
toInpaintingImageGenerationTool.image_generation_driver
. - Updated
OutpaintingImageGenerationTool.engine
toOutpaintingImageGenerationTool.image_generation_driver
. - Updated
VariationImageGenerationTool.engine
toVariationImageGenerationTool.image_generation_driver
. - Updated
PromptImageGenerationTool.engine
toPromptImageGenerationTool.image_generation_driver
.
- Updated
- BREAKING: Tasks that previously took Engines now take their respective Drivers.
- Updated
AudioTranscriptionTask.audio_transcription_engine
toAudioTranscriptionTask.audio_transcription_driver
. - Updated
TextToSpeechTask.text_to_speech_engine
toTextToSpeechTask.text_to_speech_driver
. - Updated
ImageQueryTask.image_query_engine
toImageQueryTask.image_query_driver
. - Updated
InpaintingImageGenerationTask.image_query_engine
toInpaintingImageGenerationTask.image_generation_driver
. - Updated
OutpaintingImageGenerationTask.image_query_engine
toOutpaintingImageGenerationTask.image_generation_driver
. - Updated
VariationImageGenerationTask.image_query_engine
toVariationImageGenerationTask.image_generation_driver
. - Updated
PromptImageGenerationTask.image_query_engine
toPromptImageGenerationTask.image_generation_driver
.
- Updated
- BREAKING: Renamed
BaseImageGenerationTask.all_negative_rulesets
toBaseImageGenerationTask.negative_rulesets
. - File Manager Driver path logic has been improved.
LocalFileManagerDriver.workdir
can now be a relative path or absolute path. Relative paths will be prefixed with the current working directory.AmazonS3FileManagerDriver.workdir
can now be a relative path or absolute path. Relative paths will be prefixed with/
.GriptapeCloudFileManagerDriver.workdir
can now be a relative path or absolute path. Relative paths will be prefixed with/
.- Paths passed to
LocalFileManagerDriver
can now be relative or absolute. Absolute paths will be used as-is.
BasePromptDriver.run
can now accept an Artifact in addition to a Prompt Stack.- Improved
CsvExtractionEngine
prompts. - Tweaked
PromptResponseRagModule
system prompt to yield answers more consistently. - Removed
azure-core
andazure-storage-blob
dependencies. GriptapeCloudFileManagerDriver
no longer requiresdrivers-file-manager-griptape-cloud
extra.TrafilaturaWebScraperDriver
no longer setsno_ssl
toTrue
by default.AmazonBedrockPromptDriver
not working without settingmax_tokens
.BaseImageGenerationTask
no longer prevents settingnegative_rulesets
andnegative_rules
at the same time.StructureVisualizer
now rendersStructureRunTask
s with aLocalStructureRunDriver
.StructureVisualizer
to titlecase the node IDs to avoid Mermaid.js reserved keywords.- Updated Tokenizer model-to-max tokens lookup logic for more flexible matching.
BaseTool
now logs Tool activity exceptions after catching them.BaseTool
now deep copies activity params.
- Use of deprecated
pkg_resources
inBaseTool
. - Error when serializing
JsonArtifact
s. GriptapeCloudVectorStoreDriver
not pullingapi_key
fromGT_CLOUD_API_KEY
environment variable.MarqoVectorStoreDriver.query
failing wheninclude_metadata
isTrue
.with_contextvars
not properly wrapping functions in some cases.- Crash when calling
ToolkitTask.run()
directly. @activity
decorator overwriting injected kwargs with default values asNone
.- Multiple calls to
RuleMixin.rulesets
resulting in duplicate Rulesets. BaseTool
incorrectly checking for empty values.
ActionsSubtask.before_run
andActionsSubtask.after_run
being called twice inToolkitTask
andTooltask
.
- Restore human-friendly default
ImageArtifact
andAudioArtifact
names with file type extension.
WebScraperTool.text_chunker
default value formax_tokens
.
WebScraperTool
not usingtext_chunker
override.- Breaking change in
Chat.handle_output
behavior.
griptape.configs.logging.JsonFormatter
for formatting logs as JSON.- Request/response debug logging to all Prompt Drivers.
griptape.schemas.UnionField
for serializing union fields.BaseEventListener.flush_events()
to flush events from an Event Listener.- Exponential backoff to
BaseEventListenerDriver
for retrying failed event publishing. BaseTask.task_outputs
to get a dictionary of all task outputs. This has been added toWorkflow.context
andPipeline.context
.Chat.input_fn
for customizing the input to the Chat utility.GriptapeCloudFileManagerDriver
for managing files on Griptape Cloud.BaseFileManagerDriver.load_artifact()
&BaseFileManagerDriver.save_artifact()
for loading & saving artifacts as files.- Events
BaseChunkEvent
,TextChunkEvent
,ActionChunkEvent
. wrapt
dependency for more robust decorators.BasePromptDriver.extra_params
for passing extra parameters not explicitly declared by the Driver.RunnableMixin
which addson_before_run
andon_after_run
hooks.griptape.utils.with_contextvars
utility for running functions with the currentcontextvars
context.
- BREAKING: Removed
BaseEventListenerDriver.publish_event
flush
argument. UseBaseEventListenerDriver.flush_events()
instead. - BREAKING: Renamed parameter
driver
onEventListener
toevent_listener_driver
. - BREAKING: Updated
EventListener.handler
return value behavior.- If
EventListener.handler
returnsNone
, the event will not be published to theevent_listener_driver
. - If
EventListener.handler
is None, the event will be published to theevent_listener_driver
as-is.
- If
- BREAKING: Removed
CompletionChunkEvent
. - BREAKING: Moved
griptape.common.observable.observable
togriptape.common.decorators.observable
. - BREAKING:
AnthropicDriversConfig
no longer bundlesVoyageAiEmbeddingDriver
. - BREAKING: Removed
HuggingFaceHubPromptDriver.params
, useHuggingFaceHubPromptDriver.extra_params
instead. - BREAKING: Removed
HuggingFacePipelinePromptDriver.params
, useHuggingFacePipelinePromptDriver.extra_params
instead. - BREAKING: Renamed
BaseTask.run
toBaseTask.try_run
. - BREAKING: Renamed
BaseTask.execute
toBaseTask.run
. - BREAKING: Renamed
BaseTask.can_execute
toBaseTool.can_run
. - BREAKING: Renamed
BaseTool.run
toBaseTool.try_run
. - BREAKING: Renamed
BaseTool.execute
toBaseTool.run
. - BREAKING: Renamed callables throughout the framework for consistency:
- Renamed
LocalStructureRunDriver.structure_factory_fn
toLocalStructureRunDriver.create_structure
. - Renamed
SnowflakeSqlDriver.connection_func
toSnowflakeSqlDriver.get_connection
. - Renamed
CsvLoader.formatter_fn
toCsvLoader.format_row
. - Renamed
SqlLoader.formatter_fn
toSqlLoader.format_row
. - Renamed
CsvExtractionEngine.system_template_generator
toCsvExtractionEngine.generate_system_template
. - Renamed
CsvExtractionEngine.user_template_generator
toCsvExtractionEngine.generate_user_template
. - Renamed
JsonExtractionEngine.system_template_generator
toJsonExtractionEngine.generate_system_template
. - Renamed
JsonExtractionEngine.user_template_generator
toJsonExtractionEngine.generate_user_template
. - Renamed
PromptResponseRagModule.generate_system_template
toPromptResponseRagModule.generate_system_template
. - Renamed
PromptTask.generate_system_template
toPromptTask.generate_system_template
. - Renamed
ToolkitTask.generate_assistant_subtask_template
toToolkitTask.generate_assistant_subtask_template
. - Renamed
JsonSchemaRule.template_generator
toJsonSchemaRule.generate_template
. - Renamed
ToolkitTask.generate_user_subtask_template
toToolkitTask.generate_user_subtask_template
. - Renamed
TextLoaderRetrievalRagModule.process_query_output_fn
toTextLoaderRetrievalRagModule.process_query_output
. - Renamed
FuturesExecutorMixin.futures_executor_fn
toFuturesExecutorMixin.create_futures_executor
. - Renamed
VectorStoreTool.process_query_output_fn
toVectorStoreTool.process_query_output
. - Renamed
CodeExecutionTask.run_fn
toCodeExecutionTask.on_run
. - Renamed
Chat.input_fn
toChat.handle_input
. - Renamed
Chat.output_fn
toChat.handle_output
. - Renamed
EventListener.handler
toEventListener.on_event
.
- Renamed
- Updated
EventListener.handler
return type toOptional[BaseEvent | dict]
. BaseTask.parent_outputs
type has changed fromdict[str, str | None]
todict[str, BaseArtifact]
.Workflow.context["parent_outputs"]
type has changed fromdict[str, str | None]
todict[str, BaseArtifact]
.Pipeline.context["parent_output"]
has changed type fromstr | None
toBaseArtifact | None
._DefaultsConfig.logging_config
andDefaults.drivers_config
are now lazily instantiated.griptape.schemas.BaseSchema
now usesgriptape.schemas.UnionField
forUnion
fields.BaseTask.add_parent
/BaseTask.add_child
now only add the parent/child task to the structure if it is not already present.BaseEventListener.flush_events()
to flush events from an Event Listener.BaseEventListener
no longer requires a thread lock for batching events.- Updated
ToolkitTask
system prompt to retry/fix actions when using native tool calling. Chat
input now uses a slightly customized version ofRich.prompt.Prompt
by default.Chat
output now usesRich.print
by default.Chat.output_fn
's now takes an optional kwarg parameter,stream
.- Implemented
SerializableMixin
inStructure
,BaseTask
,BaseTool
, andTaskMemory
@activity
decorated functions can now accept kwargs that are defined in the activity schema.- Updated
ToolkitTask
system prompt to no longer mentionmemory_name
andartifact_namespace
. - Models in
ToolkitTask
with native tool calling no longer need to provide their final answer asAnswer:
. EventListener.event_types
will now listen on child types of any provided type.- Only install Tool dependencies if the Tool provides a
requirements.txt
and the dependencies are not already met. - Implemented
RunnableMixin
inStructure
,BaseTask
, andBaseTool
. EventBus
's Event Listeners are now thread/coroutine-local. Event Listeners from the spawning thread will be automatically copied when using concurrent griptape features like Workflows.
- Structures not flushing events when not listening for
FinishStructureRunEvent
. EventListener.event_types
and the argument toBaseEventListenerDriver.handler
being out of sync.- Models occasionally hallucinating
memory_name
andartifact_namespace
into Tool schemas when usingToolkitTask
. - Models occasionally providing overly succinct final answers when using
ToolkitTask
. - Exception getting raised in
FuturesExecutorMixin.__del__
. - Issues when using
EventListener
as a context manager in a multi-threaded environment.
- Pinned
cohere
at~5.11.0
to resolve slow dependency resolution. - Missing
exa-py
fromall
extra.
Workflow.input_tasks
andWorkflow.output_tasks
to access the input and output tasks of a Workflow.- Ability to pass nested list of
Tasks
toStructure.tasks
allowing for more complex declarative Structure definitions. TavilyWebSearchDriver
to integrate Tavily's web search capabilities.ExaWebSearchDriver
to integrate Exa's web search capabilities.Workflow.outputs
to access the outputs of a Workflow.BaseFileLoader
for Loaders that load from a path.BaseLoader.fetch()
method for fetching data from a source.BaseLoader.parse()
method for parsing fetched data.BaseFileManager.encoding
to specify the encoding when loading and saving files.BaseWebScraperDriver.extract_page()
method for extracting data from an already scraped web page.TextLoaderRetrievalRagModule.chunker
for specifying the chunking strategy.file_utils.get_mime_type
utility for getting the MIME type of a file.BaseRulesetDriver
for loading aRuleset
from an external source.LocalRulesetDriver
for loading aRuleset
from a local.json
file.GriptapeCloudRulesetDriver
for loading aRuleset
resource from Griptape Cloud.
- Parameter
alias
onGriptapeCloudConversationMemoryDriver
for fetching a Thread by alias. - Basic support for OpenAi Structured Output via
OpenAiChatPromptDriver.response_format
parameter. - Ability to pass callable to
activity.schema
for dynamic schema generation.
- BREAKING: Renamed parameters on several classes to
client
:bedrock_client
onAmazonBedrockCohereEmbeddingDriver
.bedrock_client
onAmazonBedrockCohereEmbeddingDriver
.bedrock_client
onAmazonBedrockTitanEmbeddingDriver
.bedrock_client
onAmazonBedrockImageGenerationDriver
.bedrock_client
onAmazonBedrockImageQueryDriver
.bedrock_client
onAmazonBedrockPromptDriver
.sagemaker_client
onAmazonSageMakerJumpstartEmbeddingDriver
.sagemaker_client
onAmazonSageMakerJumpstartPromptDriver
.sqs_client
onAmazonSqsEventListenerDriver
.iotdata_client
onAwsIotCoreEventListenerDriver
.s3_client
onAmazonS3FileManagerDriver
.s3_client
onAwsS3Tool
.iam_client
onAwsIamTool
.pusher_client
onPusherEventListenerDriver
.mq
onMarqoVectorStoreDriver
.model_client
onGooglePromptDriver
.model_client
onGoogleTokenizer
.
- BREAKING: Renamed parameter
pipe
onHuggingFacePipelinePromptDriver
topipeline
. - BREAKING: Removed
BaseFileManager.default_loader
andBaseFileManager.loaders
. - BREAKING: Loaders no longer chunk data, use a Chunker to chunk the data.
- BREAKING: Removed
fileutils.load_file
andfileutils.load_files
. - BREAKING: Removed
loaders-dataframe
andloaders-audio
extras as they are no longer needed. - BREKING:
TextLoader
,PdfLoader
,ImageLoader
, andAudioLoader
now take astr | PathLike
instead ofbytes
. Passingbytes
is still supported but deprecated. - BREAKING: Removed
DataframeLoader
. - BREAKING: Update
pypdf
dependency to^5.0.1
. - BREAKING: Update
redis
dependency to^5.1.0
. - BREAKING: Remove
torch
extra fromtransformers
dependency. This must be installed separately. - BREAKING: Split
BaseExtractionEngine.extract
intoextract_text
andextract_artifacts
for consistency withBaseSummaryEngine
. - BREAKING:
BaseExtractionEngine
no longer catches exceptions and returnsErrorArtifact
s. - BREAKING:
JsonExtractionEngine.template_schema
is now required. - BREAKING:
CsvExtractionEngine.column_names
is now required. - BREAKING: Renamed
RuleMixin.all_rulesets
toRuleMixin.rulesets
. - BREAKING: Renamed
GriptapeCloudKnowledgeBaseVectorStoreDriver
toGriptapeCloudVectorStoreDriver
. - BREAKING:
OpenAiChatPromptDriver.response_format
is now adict
instead of astr
. MarkdownifyWebScraperDriver.DEFAULT_EXCLUDE_TAGS
now includes media/blob-like HTML tagsStructureRunTask
now inherits fromPromptTask
.- Several places where API clients are initialized are now lazy loaded.
BaseVectorStoreDriver.upsert_text_artifacts
now returns a list or dictionary of upserted vector ids.LocalFileManagerDriver.workdir
is now optional.filetype
is now a core dependency.FileManagerTool
now usesfiletype
for more accurate file type detection.BaseFileLoader.load_file()
will now either return aTextArtifact
or aBlobArtifact
depending on whetherBaseFileManager.encoding
is set.Structure.output
's type is nowBaseArtifact
and raises an exception if the output isNone
.JsonExtractionEngine.extract_artifacts
now returns aListArtifact[JsonArtifact]
.CsvExtractionEngine.extract_artifacts
now returns aListArtifact[CsvRowArtifact]
.- Remove
manifest.yml
requirements for custom tool creation.
- Anthropic native Tool calling.
- Empty
ActionsSubtask.thought
being logged. RuleMixin
no longer prevents settingrulesets
andrules
at the same time.PromptTask
will merge in its Structure's Rulesets and Rules.PromptTask
not checking whether Structure was set before building Prompt Stack.BaseTask.full_context
context being empty when not connected to a Structure.- Tool calling when using
OpenAiChatPromptDriver
with Groq.
BaseArtifact.to_bytes()
method to convert an Artifact's value to bytes.BlobArtifact.base64
property for converting aBlobArtifact
's value to a base64 string.CsvLoader
/SqlLoader
/DataframeLoader
formatter_fn
field for customizing how SQL results are formatted intoTextArtifact
s.AzureOpenAiTextToSpeechDriver
.JsonSchemaRule
for instructing the LLM to output a JSON object that conforms to a schema.- Ability to use Event Listeners as Context Managers for temporarily setting the Event Bus listeners.
- Ability to use Drivers Configs as Context Managers for temporarily setting the default Drivers.
- Generic type support to
ListArtifact
. - Iteration support to
ListArtifact
.
- BREAKING: Removed
CsvRowArtifact
. UseTextArtifact
instead. - BREAKING: Removed
DataframeLoader
. - BREAKING: Removed
MediaArtifact
, useImageArtifact
orAudioArtifact
instead. - BREAKING:
CsvLoader
andSqlLoader
now returnListArtifact[TextArtifact]
. - BREAKING: Removed
ImageArtifact.media_type
. - BREAKING: Removed
AudioArtifact.media_type
. - BREAKING: Removed
BlobArtifact.dir_name
. - BREAKING: Moved
ImageArtifact.prompt
andImageArtifact.model
intoImageArtifact.meta
. - BREAKING:
ImageArtifact.format
is now required. - BREAKING: Removed the
__all__
declaration from thegriptape.mixins
module. - Updated
JsonArtifact
value converter to properly handle more types. AudioArtifact
now subclassesBlobArtifact
instead ofMediaArtifact
.ImageArtifact
now subclassesBlobArtifact
instead ofMediaArtifact
.- Removed
__add__
method fromBaseArtifact
, implemented it where necessary.
- Crash when passing "empty" Artifacts or no Artifacts to
CohereRerankDriver
.
Note: This release includes breaking changes. Please refer to the Migration Guide for details.
- Parameter
meta: dict
onBaseEvent
. AzureOpenAiTextToSpeechDriver
.- Ability to use Event Listeners as Context Managers for temporarily setting the Event Bus listeners.
JsonSchemaRule
for instructing the LLM to output a JSON object that conforms to a schema.- Ability to use Drivers Configs as Context Managers for temporarily setting the default Drivers.
- BREAKING: Drivers, Loaders, and Engines now raise exceptions rather than returning
ErrorArtifacts
. - BREAKING: Parameter
driver
onBaseConversationMemory
renamed toconversation_memory_driver
. - BREAKING:
BaseConversationMemory.add_to_prompt_stack
now takes aprompt_driver
parameter. - BREAKING:
BaseConversationMemoryDriver.load
now returnstuple[list[Run], dict]
. This represents the runs and metadata. - BREAKING:
BaseConversationMemoryDriver.store
now takesruns: list[Run]
andmetadata: dict
as input. - BREAKING: Parameter
file_path
onLocalConversationMemoryDriver
renamed topersist_file
and is now typeOptional[str]
. - BREAKING: Removed the
__all__
declaration from thegriptape.mixins
module. Defaults.drivers_config.conversation_memory_driver
now defaults toLocalConversationMemoryDriver
instead ofNone
.CsvRowArtifact.to_text()
now includes the header.
- Parsing streaming response with some OpenAI compatible services.
- Issue in
PromptSummaryEngine
if there are no artifacts during recursive summarization. - Issue in
GooglePromptDriver
using Tools with no schema. - Missing
maxTokens
inference parameter inAmazonBedrockPromptDriver
. - Incorrect model in
OpenAiDriverConfig
'stext_to_speech_driver
. - Crash when using
CohereRerankDriver
withCsvRowArtifact
s. - Crash when passing "empty" Artifacts or no Artifacts to
CohereRerankDriver
.
- Ensure thread safety when publishing events by adding a thread lock to batch operations in
BaseEventListenerDriver
. FileManagerTool
failing to save Artifacts created byExtractionTool
with aCsvExtractionEngine
.
CsvExtractionEngine
not using providedRuleset
s.- Docs examples for Extraction Engines not properly passing in schemas.
AstraDbVectorStoreDriver
to support DataStax Astra DB as a vector store.- Ability to set custom schema properties on Tool Activities via
extra_schema_properties
. - Parameter
structure
toBaseTask
. - Method
try_find_task
toStructure
. TranslateQueryRagModule
RagEngine
module for translating input queries.- Global event bus,
griptape.events.EventBus
, for publishing and subscribing to events. - Global object,
griptape.configs.Defaults
, for setting default values throughout the framework. - Unique name generation for all
RagEngine
modules. ExtractionTool
for having the LLM extract structured data from text.PromptSummaryTool
for having the LLM summarize text.QueryTool
for having the LLM query text.- Support for bitshift composition in
BaseTask
for adding parent/child tasks. JsonArtifact
for handling de/seralization of values.Chat.logger_level
for setting what theChat
utility sets the logger level to.FuturesExecutorMixin
to DRY up and optimize concurrent code across multiple classes.utils.execute_futures_list_dict
for executing a dict of lists of futures.GriptapeCloudConversationMemoryDriver
to store conversation history in Griptape Cloud.griptape.utils.decorators.lazy_property
for creating lazy properties.
- BREAKING: Removed all uses of
EventPublisherMixin
in favor ofEventBus
. - BREAKING: Removed
EventPublisherMixin
. - BREAKING: Removed
Pipeline.prompt_driver
andWorkflow.prompt_driver
. Set this viagriptape.configs.Defaults.drivers.prompt_driver
instead.Agent.prompt_driver
has not been removed. - BREAKING: Removed
Pipeline.stream
andWorkflow.stream
. Set this viagriptape.configs.Defaults.drivers.prompt_driver.stream
instead.Agent.stream
has not been removed. - BREAKING: Removed
Structure.embedding_driver
, set this viagriptape.configs.Defaults.drivers.embedding_driver
instead. - BREAKING: Removed
Structure.custom_logger
andStructure.logger_level
, set these vialogging.getLogger(griptape.configs.Defaults.logger_name)
instead. - BREAKING: Removed
BaseStructureConfig.merge_config
. - BREAKING: Renamed
StructureConfig
toDriversConfig
, moved togriptape.configs.drivers
and renamed fields accordingly. - BREAKING:
RagContext.output
was changed toRagContext.outputs
to support multiple outputs. All relevant RAG modules were adjusted accordingly. - BREAKING: Removed before and after response modules from
ResponseRagStage
. - BREAKING: Moved ruleset and metadata ingestion from standalone modules to
PromptResponseRagModule
. - BREAKING: Dropped
Client
from all Tool names for better naming consistency. - BREAKING: Dropped
_client
suffix from all Tool packages. - BREAKING: Added
Tool
suffix to all Tool names for better naming consistency. - BREAKING: Removed
TextArtifactStorage.query
andTextArtifactStorage.summarize
. - BREAKING: Removed
TextArtifactStorage.rag_engine
, andTextArtifactStorage.retrieval_rag_module_name
. - BREAKING: Removed
TextArtifactStorage.summary_engine
,TextArtifactStorage.csv_extraction_engine
, andTextArtifactStorage.json_extraction_engine
. - BREAKING: Removed
TaskMemory.summarize_namespace
andTaskMemory.query_namespace
. - BREAKING: Removed
Structure.rag_engine
. - BREAKING: Split
JsonExtractionEngine.template_generator
intoJsonExtractionEngine.system_template_generator
andJsonExtractionEngine.user_template_generator
. - BREAKING: Split
CsvExtractionEngine.template_generator
intoCsvExtractionEngine.system_template_generator
andCsvExtractionEngine.user_template_generator
. - BREAKING: Changed
JsonExtractionEngine.template_schema
from arun
argument to a class attribute. - BREAKING: Changed
CsvExtractionEngine.column_names
from arun
argument to a class attribute. - BREAKING: Removed
JsonExtractionTask
, andCsvExtractionTask
useExtractionTask
instead. - BREAKING: Removed
TaskMemoryClient
, useQueryClient
,ExtractionTool
, orPromptSummaryTool
instead. - BREAKING:
BaseTask.add_parent/child
now take aBaseTask
instead ofstr | BaseTask
. - Engines that previously required Drivers now pull from
griptape.configs.Defaults.drivers_config
by default. BaseTask.add_parent/child
will now callself.structure.add_task
if possible.BaseTask.add_parent/child
now returnsself
, allowing for chaining.Chat
now sets thegriptape
logger level tologging.ERROR
, suppressing all logs except for errors.
JsonExtractionEngine
failing to parse json when the LLM outputs more than just the json.- Exception when adding
ErrorArtifact
's to the Prompt Stack. - Concurrency bug in
BaseVectorStoreDriver.upsert_text_artifacts
. - Schema issues with Tools that use lists.
- Issue with native Tool calling and streaming with
GooglePromptDriver
. - Description not being used properly in
StructureRunTool
.
Workflow
threads not being properly cleaned up after completion.- Crash when
ToolAction
s were missing output due to anActionsSubtask
exception.
- Remove
BaseTextArtifact
, revertCsvRowArtifact
to subclassTextArtifact
.
- Missing extra for
drivers-text-to-speech-elevenlabs
.
- Native function calling support to
OpenAiChatPromptDriver
,AzureOpenAiChatPromptDriver
,AnthropicPromptDriver
,AmazonBedrockPromptDriver
,GooglePromptDriver
,OllamaPromptDriver
, andCoherePromptDriver
. OllamaEmbeddingDriver
for generating embeddings with Ollama.GriptapeCloudKnowledgeBaseVectorStoreDriver
to query Griptape Cloud Knowledge Bases.GriptapeCloudEventListenerDriver.api_key
defaults to the value in theGT_CLOUD_API_KEY
environment variable.BaseObservabilityDriver
as the base class for all Observability Drivers.DummyObservabilityDriver
as a no-op Observability Driver.OpenTelemetryObservabilityDriver
for sending observability data to an open telemetry collector or vendor.GriptapeCloudObservabilityDriver
for sending observability data to Griptape Cloud.DatadogObservabilityDriver
for sending observability data to a Datadog Agent.Observability
context manager for enabling observability and configuring which Observability Driver to use.@observable
decorator for selecting which functions/methods to provide observability for.GenericArtifact
for storing any data.BaseTextArtifact
for text-based Artifacts to subclass.HuggingFacePipelineImageGenerationDriver
for generating images locally with HuggingFace pipelines.BaseImageGenerationPipelineDriver
as the base class for drivers interfacing with HuggingFace image generation pipelines.StableDiffusion3ImageGenerationPipelineDriver
for local text-to-image generation using a Stable Diffusion 3 pipeline.StableDiffusion3Img2ImgImageGenerationPipelineDriver
for local image-to-image generation using a Stable Diffusion 3 pipeline.StableDiffusion3ControlNetImageGenerationPipelineDriver
for local ControlNet image generation using a Stable Diffusion 3 pipeline.- Optional
params
field toWebSearch
'ssearch
schema that the LLM can be steered into using.
- BREAKING:
BaseVectorStoreDriver.upsert_text_artifacts
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.upsert_text_artifact
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.upsert_text
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.does_entry_exist
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.load_artifacts
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.upsert_vector
optional arguments are now keyword-only arguments. - BREAKING:
BaseVectorStoreDriver.query
optional arguments are now keyword-only arguments. - BREAKING:
EventListener.publish_event
'sflush
argument is now a keyword-only argument. - BREAKING:
BaseEventListenerDriver.publish_event
'sflush
argument is now a keyword-only argument. - BREAKING: Renamed
DummyException
toDummyError
for pep8 naming compliance. - BREAKING: Migrate to
sqlalchemy
2.0. - BREAKING: Make
sqlalchemy
an optional dependency. - BREAKING: Renamed
drivers-sql-redshift
todrivers-sql-amazon-redshift
- BREAKING: Renamed
drivers-prompt-huggingface
extra todrivers-prompt-huggingface-hub
. - BREAKING: Renamed
drivers-vector-postgresql
extra todrivers-vector-pgvector
. - BREAKING: Update
marqo
dependency to^3.7.0
. - BREAKING: Removed
drivers-sql-postgresql
extra. Usedrivers-sql
extra and install necessary drivers (i.e.psycopg2
) separately. - BREAKING:
api_key
andsearch_id
are now required fields inGoogleWebSearchDriver
. - BREAKING:
web_search_driver
is now required fields in theWebSearch
Tool. GoogleWebSearchDriver
andDuckDuckGoWebSearchDriver
now usekwargs
passed to therun
method.- Removed unnecessary
sqlalchemy-redshift
dependency indrivers-sql-amazon-redshift
extra. - Removed unnecessary
transformers
dependency indrivers-prompt-huggingface
extra. - Removed unnecessary
huggingface-hub
dependency indrivers-prompt-huggingface-pipeline
extra. CsvRowArtifact
now inherits fromBaseTextArtifact
.TextArtifact
now inherits fromBaseTextArtifact
.
- Parameter
count
forQdrantVectorStoreDriver.query
now optional as per documentation. - Path issues on Windows with
LocalFileManagerDriver
andAmazonS3FileManagerDriver
.
- Conversation Memory being incorrectly inserted into the
PromptTask.prompt_stack
when no system content is present.
- Sending empty system content in
PromptTask
. - Throttling issues with
DuckDuckGoWebSearchDriver
.
RagEngine
is an abstraction for implementing modular RAG pipelines.RagContext
is a container object for passing around RAG context.- RAG stages:
QueryRagStage
for parsing and expanding queries.RetrievalRagStage
for retrieving content.ResponseRagStage
for augmenting and generating outputs.
- RAG modules:
- Retrieval:
VectorStoreRetrievalRagModule
for retrieving text chunks from vector stores.TextLoaderRetrievalRagModule
for retrieving data with text loaders in real time.TextChunksRerankRagModule
for re-ranking retrieved results.
- Response:
MetadataBeforeResponseRagModule
for appending metadata.RulesetsBeforeResponseRagModule
for appending rulesets.PromptResponseRagModule
for generating responses based on retrieved text chunks.TextChunksResponseRagModule
for responding with retrieved text chunks.FootnotePromptResponseRagModule
for responding with automatic footnotes from text chunk references.
- Retrieval:
RagClient
tool for exposingRagEngines
to LLM agents.RagTask
task for includingRagEngines
in any structure.- Rerank drivers:
CohereRerankDriver
for using the Cohere rerank API.
utils.execute_futures_list()
for executing a list of futures.LocalVectorStoreDriver.persist_file
for persisting vectors and chunks in a text file.Entry.to_artifact()
for easy vector store entry conversions into Griptape artifacts.BaseVectorStoreDriver.does_entry_exist()
to check if an entry exists in the vector store.GoogleWebSearchDriver
to web search with the Google Customsearch API.DuckDuckGoWebSearchDriver
to web search with the DuckDuckGo search SDK.ProxyWebScraperDriver
to web scrape using proxies.- Parameter
session
onAmazonBedrockStructureConfig
. - Parameter
meta
onTextArtifact
. VectorStoreClient
improvements:VectorStoreClient.query_params
dict for custom query params.VectorStoreClient.process_query_output_fn
for custom query output processing logic.
- Parameter
fail_fast
toStructure
. BooleanArtifact
for handling boolean values.typos
to dev dependencies to catch typos in code/docs.Message
for storing messages in aPromptStack
. Messages consist of a role, content, and usage.DeltaMessage
for storing partial messages in aPromptStack
. MultipleDeltaMessage
can be combined to form aMessage
.TextMessageContent
for storing textual content in aMessage
.ImageMessageContent
for storing image content in aMessage
.- Support for adding
TextArtifact
s,ImageArtifact
s, andListArtifact
s toPromptStack
. - Support for image inputs to
OpenAiChatPromptDriver
,AzureOpenAiChatPromptDriver
,AmazonBedrockPromptDriver
,AnthropicPromptDriver
, andGooglePromptDriver
. - Input/output token usage metrics to all Prompt Drivers.
FinishPromptEvent.input_token_count
andFinishPromptEvent.output_token_count
.- Support for storing Artifacts as inputs/outputs in Conversation Memory Runs.
Agent.input
for passing Artifacts as input.- Support for
PromptTask
s to takeTextArtifact
s,ImageArtifact
s, andListArtifact
s as input. - Parameters
sort_key
andsort_key_value
onAmazonDynamoDbConversationMemoryDriver
for tables with sort keys. Reference
for supporting artifact citations in loaders and RAG engine modules.
- BREAKING: Moved/renamed
griptape.utils.PromptStack
togriptape.common.PromptStack
. - BREAKING: Renamed
PromptStack.inputs
toPromptStack.messages
. - BREAKING: Moved
PromptStack.USER_ROLE
,PromptStack.ASSISTANT_ROLE
, andPromptStack.SYSTEM_ROLE
toMessage
. - BREAKING: Updated return type of
PromptDriver.try_run
fromTextArtifact
toMessage
. - BREAKING: Updated return type of
PromptDriver.try_stream
fromIterator[TextArtifact]
toIterator[DeltaMessage]
. - BREAKING: Removed
BasePromptEvent.token_count
in favor ofFinishPromptEvent.input_token_count
andFinishPromptEvent.output_token_count
. - BREAKING: Removed
StartPromptEvent.prompt
. UseStartPromptEvent.prompt_stack
instead. - BREAKING: Removed
Agent.input_template
in favor ofAgent.input
. - BREAKING:
BasePromptDriver.run
now returns aMessage
instead of aTextArtifact
. For compatibility,Message.value
contains the Message's Artifact value - BREAKING:
BaseVectorStoreDriver.upsert_text_artifact()
andBaseVectorStoreDriver.upsert_text()
use artifact/string values to generatevector_id
if it wasn't implicitly passed. This change ensures that we don't generate embeddings for the same content every time. - BREAKING: Removed
VectorQueryEngine
in favor ofRagEngine
. - BREAKING: Removed
TextQueryTask
in favor ofRagTask
. - BREAKING:
TextArtifactStorage
now requiresvector_store_driver
andrag_engine
in place ofvector_query_engine
. - BREAKING: Moved
load_artifacts()
fromBaseQueryEngine
toBaseVectorStoreDriver
. - BREAKING: Merged
BaseVectorStoreDriver.QueryResult
intoBaseVectorStoreDriver.Entry
. - BREAKING: Replaced
query_engine
withvector_store_driver
inVectorStoreClient
. - BREAKING: removed parameters
google_api_lang
,google_api_key
,google_api_search_id
,google_api_country
onWebSearch
in favor ofweb_search_driver
. - BREAKING: removed
VectorStoreClient.top_n
andVectorStoreClient.namespace
in favor ofVectorStoreClient.query_params
. - BREAKING: All
futures_executor
fields renamed tofutures_executor_fn
and now accept callables instead of futures; wrapped all futuresubmit
calls with thewith
block to address future executor shutdown issues. GriptapeCloudKnowledgeBaseClient
migrated to/search
api.- Default Prompt Driver model in
GoogleStructureConfig
togemini-1.5-pro
.
CoherePromptDriver
to properly handle empty history.StructureVisualizer.to_url()
by wrapping task IDs in single quotes.
- Avoid adding duplicate Tokenizer stop sequences in a
ToolkitTask
. - Fixed token count calculation in
VectorQueryEngine
.
- Support for Claude 3.5 Sonnet in
AnthropicPromptDriver
andAmazonBedrockPromptDriver
.
- Base Tool schema so that
input
is optional when no Tool Activity schema is set. - Tool Task system prompt for better results with lower-end models.
- Default Prompt Driver model to Claude 3.5 Sonnet in
AnthropicStructureConfig
andAmazonBedrockStructureConfig.
BaseTask.add_child()
to add a child task to a parent task.BaseTask.add_children()
to add multiple child tasks to a parent task.BaseTask.add_parent()
to add a parent task to a child task.BaseTask.add_parents()
to add multiple parent tasks to a child task.Structure.resolve_relationships()
to resolve asymmetrically defined parent/child relationships. In other words, if a parent declares a child, but the child does not declare the parent, the parent will automatically be added as a parent of the child when running this method. The method is invoked automatically byStructure.before_run()
.CohereEmbeddingDriver
for using Cohere's embeddings API.CohereStructureConfig
for providing Structures with quick Cohere configuration.AmazonSageMakerJumpstartPromptDriver.inference_component_name
for setting theInferenceComponentName
parameter when invoking an endpoint.AmazonSageMakerJumpstartEmbeddingDriver.inference_component_name
for setting theInferenceComponentName
parameter when invoking an endpoint.AmazonSageMakerJumpstartEmbeddingDriver.custom_attributes
for setting custom attributes when invoking an endpoint.ToolkitTask.response_stop_sequence
for overriding the default Chain of Thought stop sequence.griptape.utils.StructureVisualizer
for visualizing Workflow structures with Mermaid.jsBaseTask.parents_outputs
to get the textual output of all parent tasks.BaseTask.parents_output_text
to get a concatenated string of all parent tasks' outputs.parents_output_text
to Workflow context.OllamaPromptModelDriver
for using models with Ollama.- Parameter
output
onStructure
as a convenience foroutput_task.output
- BREAKING:
Workflow
no longer modifies task relationships when adding tasks viatasks
init param,add_tasks()
oradd_task()
. Previously, adding a task would automatically add the previously added task as its parent. Existing code that relies on this behavior will need to be updated to explicitly add parent/child relationships using the API offered byBaseTask
. - BREAKING: Removed
AmazonBedrockPromptDriver.prompt_model_driver
as it is no longer needed with theAmazonBedrockPromptDriver
Converse API implementation. - BREAKING: Removed
BedrockClaudePromptModelDriver
. - BREAKING: Removed
BedrockJurassicPromptModelDriver
. - BREAKING: Removed
BedrockLlamaPromptModelDriver
. - BREAKING: Removed
BedrockTitanPromptModelDriver
. - BREAKING: Removed
BedrockClaudeTokenizer
, useSimpleTokenizer
instead. - BREAKING: Removed
BedrockJurassicTokenizer
, useSimpleTokenizer
instead. - BREAKING: Removed
BedrockLlamaTokenizer
, useSimpleTokenizer
instead. - BREAKING: Removed
BedrockTitanTokenizer
, useSimpleTokenizer
instead. - BREAKING: Removed
OpenAiChatCompletionPromptDriver
as it uses the legacy OpenAi Completions API. - BREAKING: Removed
BasePromptDriver.count_tokens()
. - BREAKING: Removed
BasePromptDriver.max_output_tokens()
. - BREAKING: Moved/renamed
PromptStack.add_to_conversation_memory
toBaseConversationMemory.add_to_prompt_stack
. - BREAKING: Moved
griptape.constants.RESPONSE_STOP_SEQUENCE
toToolkitTask
. - BREAKING: Renamed
AmazonSagemakerPromptDriver
toAmazonSageMakerJumpstartPromptDriver
. - BREAKING: Removed
SagemakerFalconPromptModelDriver
, useAmazonSageMakerJumpstartPromptDriver
instead. - BREAKING: Removed
SagemakerLlamaPromptModelDriver
, useAmazonSageMakerJumpstartPromptDriver
instead. - BREAKING: Renamed
AmazonSagemakerEmbeddingDriver
toAmazonSageMakerJumpstartEmbeddingDriver
. - BREAKING: Removed
SagemakerHuggingfaceEmbeddingModelDriver
, useAmazonSageMakerJumpstartEmbeddingDriver
instead. - BREAKING: Removed
SagemakerTensorflowHubEmbeddingModelDriver
, useAmazonSageMakerJumpstartEmbeddingDriver
instead. - BREAKING:
AmazonSageMakerJumpstartPromptDriver.model
parameter, which gets passed toSageMakerRuntime.Client.invoke_endpoint
asEndpointName
, is now renamed toAmazonSageMakerPromptDriver.endpoint
. - BREAKING: Removed parameter
template_generator
onPromptSummaryEngine
and added parameterssystem_template_generator
anduser_template_generator
. - BREAKING: Removed template
engines/summary/prompt_summary.j2
and added templatesengines/summary/system.j2
andengines/summary/user.j2
. ToolkitTask.RESPONSE_STOP_SEQUENCE
is now only added when usingToolkitTask
.- Updated Prompt Drivers to use
BasePromptDriver.max_tokens
instead of usingBasePromptDriver.max_output_tokens()
. - Improved error message when
GriptapeCloudKnowledgeBaseClient
does not have a description set. - Updated
AmazonBedrockPromptDriver
to use Converse API. Structure.before_run()
now automatically resolves asymmetrically defined parent/child relationships using the newStructure.resolve_relationships()
.- Updated
HuggingFaceHubPromptDriver
to usetransformers
'sapply_chat_template
. - Updated
HuggingFacePipelinePromptDriver
to use chat features oftransformers.TextGenerationPipeline
. - Updated
CoherePromptDriver
to use Cohere's latest SDK. - Moved Task reset logic for all Structures to
Structure.before_run
. - Updated default prompt templates for
PromptSummaryEngine
. - Updated template
templates/tasks/tool_task/system.j2
.
Workflow.insert_task()
no longer inserts duplicate tasks when given multiple parent tasks.- Performance issue in
OpenAiChatPromptDriver
when extracting unused rate-limiting headers. - Streaming not working when using deprecated
Structure.stream
field. - Raw Tool output being lost when being executed by ActionsSubtask.
- Re-order Workflow tasks on every task execution wave.
Workflow.insert_task()
enumerates by parent id equality, opposed to object equality.- Web Loader to catch Exceptions and properly return an ErrorArtifact.
- Conversation Memory entry only added if
output_task.output
is notNone
on allStructures
TextArtifacts
contained inListArtifact
returned byWebSearch.search
to properly formatted stringified JSON.- Structure run args not being set immediately.
- Input and output logging in BaseAudioInputTasks and BaseAudioGenerationTasks
- Validation of
max_tokens
< 0 onBaseChunker
AzureOpenAiStructureConfig
for providing Structures with all Azure OpenAI Driver configuration.AzureOpenAiVisionImageQueryDriver
to support queries on images using Azure's OpenAI Vision models.AudioLoader
for loading audio content into anAudioArtifact
.AudioTranscriptionTask
andAudioTranscriptionClient
for transcribing audio content in Structures.OpenAiAudioTranscriptionDriver
for integration with OpenAI's speech-to-text models, including Whisper.- Parameter
env
toBaseStructureRunDriver
to set environment variables for a Structure Run. PusherEventListenerDriver
to enable sending of framework events over a Pusher WebSocket.
- BREAKING: Updated OpenAI-based image query drivers to remove Vision from the name.
- BREAKING:
off_prompt
now defaults toFalse
on all Tools, making Task Memory something that must be explicitly opted into. - BREAKING: Removed
StructureConfig.global_drivers
. Pass Drivers directly to the Structure Config instead. - BREAKING: Removed
StructureConfig.task_memory
in favor of configuring directly on the Structure. - BREAKING: Updated OpenAI-based image query drivers to remove Vision from the name.
- BREAKING:
off_prompt
now defaults toFalse
on all Tools, making Task Memory something that must be explicitly opted into. - BREAKING:
AmazonSageMakerPromptDriver.model
parameter, which gets passed toSageMakerRuntime.Client.invoke_endpoint
asEndpointName
, is now renamed toAmazonSageMakerPromptDriver.endpoint
. - BREAKING:
AmazonSageMakerPromptDriver.model
parameter is now optional being passed toSageMakerRuntime.Client.invoke_endpoint
asInferenceComponentName
(instead ofEndpointName
). - BREAKING:
SageMakerLlamaPromptModelDriver
modified to exclusively support the Llama 3 Instruct model deployed via SageMaker JumpStart. (Support for Llama 2 models has been removed.) - Simplified custom Task Memory configurations by making several
TextArtifactStorage
Engines optional. - Default the value of
azure_deployment
on all Azure Drivers to the model the Driver is using. - Field
azure_ad_token
on all Azure Drivers is no longer serializable. - Default standard OpenAI and Azure OpenAI image query model to
gpt-4o
. - Error message to be more helpful when importing optional dependencies.
- Extra fields being excluded when using
SerializableMixin.from_dict
. - Validation of
max_tokens
< 0 onBaseChunker
- Honor
namespace
inRedisVectorStoreDriver.query()
. - Correctly set the
meta
,score
, andvector
fields of query result returned fromRedisVectorStoreDriver.query()
. - Standardize behavior between omitted and empty actions list when initializing
ActionsSubtask
.
- Optional event batching on Event Listener Drivers.
id
field to all events.
- Default behavior of Event Listener Drivers to batch events.
- Default behavior of OpenAiStructureConfig to utilize
gpt-4o
for prompt_driver.
list_files_from_disk
activity toFileManager
Tool.- Support for Drivers in
EventListener
. AmazonSqsEventListenerDriver
for sending events to an Amazon SQS queue.AwsIotCoreEventListenerDriver
for sending events to a topic on AWS IoT Core.GriptapeCloudEventListenerDriver
for sending events to Griptape Cloud.WebhookEventListenerDriver
for sending events to a webhook.BaseFileManagerDriver
to abstract file management operations.LocalFileManagerDriver
for managing files on the local file system.- Optional
BaseLoader.encoding
field. BlobLoader
for loading arbitrary binary data as aBlobArtifact
.model
field toStartPromptEvent
andFinishPromptEvent
.input_task_input
andinput_task_output
fields toStartStructureRunEvent
.output_task_input
andoutput_task_output
fields toFinishStructureRunEvent
.AmazonS3FileManagerDriver
for managing files on Amazon S3.MediaArtifact
as a base class forImageArtifact
and future media Artifacts.- Optional
exception
field toErrorArtifact
. StructureRunClient
for running other Structures via a Tool.StructureRunTask
for running Structures as a Task from within another Structure.GriptapeCloudStructureRunDriver
for running Structures in Griptape Cloud.LocalStructureRunDriver
for running Structures in the same run-time environment as the code that is running the Structure.
- BREAKING: Secret fields (ex: api_key) removed from serialized Drivers.
- BREAKING: Remove
FileLoader
. - BREAKING:
CsvLoader
no longer acceptsstr
file paths as a source. It will now accept the content of the CSV file as astr
orbytes
object. - BREAKING:
PdfLoader
no longer acceptsstr
file content,Path
file paths orIO
objects as sources. Instead, it will only accept the content of the PDF file as abytes
object. - BREAKING:
TextLoader
no longer acceptsPath
file paths as a source. It will now accept the content of the text file as astr
orbytes
object. - BREAKING:
FileManager.default_loader
is nowNone
by default. - BREAKING Bumped
pinecone
from^2
to^3
. - BREAKING: Removed
workdir
,loaders
,default_loader
, andsave_file_encoding
fields fromFileManager
and addedfile_manager_driver
. - BREAKING: Removed
mime_type
field fromImageArtifact
.mime_type
is now a property constructed using the Artifact type andformat
field. - Improved RAG performance in
VectorQueryEngine
. - Moved Griptape Docs to this repository.
- Updated
EventListener.handler
's behavior so that the return value will be passed to theEventListenerDriver.try_publish_event_payload
'sevent_payload
parameter.
- Type hint for parameter
azure_ad_token_provider
on Azure OpenAI drivers toOptional[Callable[[], str]]
. - Missing parameters
azure_ad_token
andazure_ad_token_provider
on the default client forAzureOpenAiCompletionPromptDriver
.
- Fixed FileManager.load_files_from_disk schema.
- Fixed boto3 type-checking stub dependency.
- Use
schema
instead ofjsonschema
for JSON validation.
- Every subtask in
ToolkitTask
can now execute multiple actions in parallel. - Added
BaseActionSubtaskEvent.subtask_actions
. - Support for
text-embedding-3-small
andtext-embedding-3-large
models. GooglePromptDriver
andGoogleTokenizer
for use withgemini-pro
.GoogleEmbeddingDriver
for use withembedding-001
.GoogleStructureConfig
for providing Structures with Google Prompt and Embedding Driver configuration.- Support for
claude-3-opus
,claude-3-sonnet
, andclaude-3-haiku
inAnthropicPromptDriver
. - Support for
anthropic.claude-3-sonnet-20240229-v1:0
andanthropic.claude-3-haiku-20240307-v1:0
inBedrockClaudePromptModelDriver
. top_k
andtop_p
parameters inAnthropicPromptDriver
.- Added
AnthropicImageQueryDriver
for Claude-3 multi-modal models - Added
AmazonBedrockImageQueryDriver
along withBedrockClaudeImageQueryDriverModel
for Claude-3 in Bedrock support BaseWebScraperDriver
allowing multiple web scraping implementations.TrafilaturaWebScraperDriver
for scraping text from web pages using trafilatura.MarkdownifyWebScraperDriver
for scraping text from web pages using playwright and converting to markdown using markdownify.VoyageAiEmbeddingDriver
for use with VoyageAi's embedding models.AnthropicStructureConfig
for providing Structures with Anthropic Prompt and VoyageAi Embedding Driver configuration.QdrantVectorStoreDriver
to integrate with Qdrant vector databases.
- Improved system prompt in
ToolTask
to support more use cases.
- BREAKING:
ActionSubtask
was renamed toActionsSubtask
. - BREAKING: Removed
subtask_action_name
,subtask_action_path
, andsubtask_action_input
inBaseActionSubtaskEvent
. - BREAKING:
OpenAiVisionImageQueryDriver
fieldmodel
no longer defaults togpt-4-vision-preview
and must be specified - Default model of
OpenAiEmbeddingDriver
totext-embedding-3-small
. - Default model of
OpenAiStructureConfig
totext-embedding-3-small
. BaseTextLoader
to accept aBaseChunker
.- Default model of
AmazonBedrockStructureConfig
toanthropic.claude-3-sonnet-20240229-v1:0
. AnthropicPromptDriver
andBedrockClaudePromptModelDriver
to use Anthropic's Messages API.OpenAiVisionImageQueryDriver
now has a required fieldmax_tokens
that defaults to 256GriptapeCloudStructureRunDriver
now outputs aBaseArtifact
instead of aTextArtifact
- Deprecation warnings not displaying for
Structure.prompt_driver
,Structure.embedding_driver
, andStructure.stream
. DummyException
error message not fully displaying.StructureConfig.task_memory
not defaulting to usingStructureConfig.global_drivers
by default.
- Action Subtask incorrectly raising an exception for actions without an input.
- Incorrect
GriptapeCloudKnowledgeBaseClient
's API URLs. - Issue with Tool Task system prompt causing the LLM to generate an invalid action.
- Image-to-image generation support for OpenAi Dall-E 2 model.
- Image tools support loading artifacts from memory.
AzureMongoDbVectorStoreDriver
for using CosmosDB with MongoDB vCore API.vector_path
field onMongoDbAtlasVectorStoreDriver
.LeonardoImageGenerationDriver
supports image to image generation.OpenAiStructureConfig
for providing Structures with all OpenAi Driver configuration.AmazonBedrockStructureConfig
for providing Structures with all Amazon Bedrock Driver configuration.StructureConfig
for building your own Structure configuration.JsonExtractionTask
for convenience over usingExtractionTask
with aJsonExtractionEngine
.CsvExtractionTask
for convenience over usingExtractionTask
with aCsvExtractionEngine
.OpenAiVisionImageQueryDriver
to support queries on images using OpenAI's Vision model.ImageQueryTool
allowing an Agent to make queries on images on disk or in Task Memory.ImageQueryTask
andImageQueryEngine
.
BedrockStableDiffusionImageGenerationModelDriver
request parameters for SDXLv1 (stability.stable-diffusion-xl-v1
).BedrockStableDiffusionImageGenerationModelDriver
correctly handles the CONTENT_FILTERED response case.
- BREAKING: Make
index_name
onMongoDbAtlasVectorStoreDriver
a required field. - BREAKING: Remove
create_index()
fromMarqoVectorStoreDriver
,OpenSearchVectorStoreDriver
,PineconeVectorStoreDriver
,RedisVectorStoreDriver
. - BREAKING:
ImageLoader().load()
now accepts image bytes instead of a file path. - BREAKING: Request parameters for
BedrockStableDiffusionImageGenerationModelDriver
have been updated forstability.stable-diffusion-xl-v1
. Use this over the now deprecatedstability.stable-diffusion-xl-v0
. - Deprecated
Structure.prompt_driver
in favor ofStructure.config.global_drivers.prompt_driver
. - Deprecated
Structure.embedding_driver
in favor ofStructure.config.global_drivers.embedding_driver
. - Deprecated
Structure.stream
in favor ofStructure.config.global_drivers.prompt_driver.stream
. TextSummaryTask.summary_engine
now defaults to aPromptSummaryEngine
with a Prompt Driver default ofStructure.config.global_drivers.prompt_driver
.TextQueryTask.query_engine
now defaults to aVectorQueryEngine
with a Prompt Driver default ofStructure.config.global_drivers.prompt_driver
and Vector Store Driver default ofStructure.config.global_drivers.vector_store_driver
.PromptImageGenerationTask.image_generation_engine
now defaults to aPromptImageGenerationEngine
with an Image Generation Driver default ofStructure.config.global_drivers.image_generation_driver
.VariationImageGenerationTask.image_generation_engine
now defaults to aVariationImageGenerationEngine
with an Image Generation Driver default ofStructure.config.global_drivers.image_generation_driver
.InpaintingImageGenerationTask.image_generation_engine
now defaults to anInpaintingImageGenerationEngine
with an Image Generation Driver default ofStructure.config.global_drivers.image_generation_driver
.OutpaintingImageGenerationTask.image_generation_engine
now defaults to anOutpaintingImageGenerationEngine
with an Image Generation Driver default ofStructure.config.global_drivers.image_generation_driver
.
ToolkitTask
's user subtask prompt occasionally causing the Task to end prematurely.
ToolkitTask
's user subtask prompt occasionally causing a loop with Chain of Thought.
- Updated stale dependencies [CVE-2023-50447, CVE-2024-22195, and CVE-2023-36464]
- Action Subtasks incorrectly outputting the Task input after failing to follow the ReAct prompt.
-
PromptImageGenerationEngine
for generating images from text prompts. -
VariationImageGenerationEngine
for generating variations of an input image according to a text prompt. -
InpaintingImageGenerationEngine
for modifying an input image according to a text prompt within the bounds of a mask defined by a mask image. -
OutpaintingImageGenerationEngine
for modifying an input image according to a text prompt outside the bounds of a mask defined by a mask image. -
PromptImageGenerationClient
for enabling an LLM to use thePromptImageGenerationEngine
. -
VariationImageGenerationClient
for enabling an LLM to use theVariationImageGenerationEngine
. -
InpaintingImageGenerationClient
for enabling an LLM to use theInpaintingImageGenerationEngine
. -
OutpaintingImageGenerationClient
for enabling an LLM to use theOutpaintingImageGenerationEngine
. -
OpenAiImageGenerationDriver
for use with OpenAI's image generation models. -
LeonardoImageGenerationDriver
for use with Leonoaro AI's image generation models. -
AmazonBedrockImageGenerationDriver
for use with Amazon Bedrock's image generation models; requires a Image Generation Model Driver. -
BedrockTitanImageGenerationModelDriver
for use with Amazon Bedrock's Titan image generation. -
ImageArtifact
for storing image data; used heavily by the image Engines, Tasks, and Drivers. -
ImageLoader
for loading images files intoImageArtifact
s. -
Support for all Tokenizers in
OpenAiChatPromptDriver
, enabling OpenAI drop-in clients such as Together AI. -
AmazonSageMakerJumpstartEmbeddingDriver
for using Amazon SageMaker to generate embeddings. Thanks @KaushikIyer16! -
Claude 2.1 support in
AnthropicPromptDriver
andAmazonBedrockPromptDriver
viaBedrockClaudePromptModelDriver
. -
CodeExecutionTask
for executing code as a Task without the need for an LLM. -
BedrockLlamaPromptModelDriver
for using Llama models on Amazon Bedrock.
MongoDbAtlasVectorStore
namespace not being used properly when querying.- Miscellaneous type errors throughout the codebase.
- Remove unused section from
ToolTask
system prompt template. - Structure execution args being cleared after run, preventing inspection of the Structure's
input_task
'sinput
. - Unhandled
SqlClient
exception. Thanks @michal-repo!
- BREAKING: Rename
input_template
field toinput
in Tasks that take a text input. - BREAKING: Rename
BedrockTitanEmbeddingDriver
toAmazonBedrockTitanEmbeddingDriver
. - BREAKING: Rename
AmazonBedrockStableDiffusionImageGenerationModelDriver
toBedrockStableDiffusionImageGenerationModelDriver
. - BREAKING: Rename
AmazonBedrockTitanImageGenerationModelDriver
toBedrockTitanImageGenerationModelDriver
. - BREAKING: Rename
ImageGenerationTask
toPromptImageGenerationTask
. - BREAKING: Rename
ImageGenerationEngine
toPromptImageGenerationEngine
. - BREAKING: Rename
ImageGenerationTool
toPromptImageGenerationClient
. - Improve system prompt generation with Claude 2.0.
- Improve integration test coverage.
BaseTextInputTask
to accept astr
,TextArtifact
or callable returning aTextArtifact
.