Skip to content

Releases: griptape-ai/griptape

v1.1.1

03 Jan 17:37
Compare
Choose a tag to compare

Fixed

  • Incorrect deprecation warning on ToolkitTask.

v1.1.0

31 Dec 17:56
3d33747
Compare
Choose a tag to compare

Added

  • 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 is per_structure.
  • Structure.conversation_memory_strategy for setting whether Conversation Memory Runs should be created on a per-Structure or per-Task basis. Default is Structure.ConversationMemoryStrategy.PER_STRUCTURE.
  • BranchTask for selecting which Tasks (if any) to run based on a condition.
  • Support for BranchTask in StructureVisualizer.
  • EvalEngine for evaluating the performance of an LLM's output against a given input.
  • BaseFileLoader.save() method for saving an Artifact to a destination.
  • Structure.run_stream() for streaming Events from a Structure as an iterator.
  • Support for GenericMessageContent in AnthropicPromptDriver and AmazonBedrockPromptDriver.
  • Validators to Agent initialization.

Changed

  • Rulesets can now be serialized and deserialized.
  • ToolkitTask now serializes its tools field.
  • PromptTask.prompt_driver is now serialized.
  • PromptTask can now do everything a ToolkitTask can do.
  • Loosten numpys version constraint to >=1.26.4,<3.

Fixed

  • Exception when calling Structure.to_json() after it has run.
  • Agent unintentionally modifying stream for all Prompt Drivers.
  • StructureVisualizer.base_url for setting the base URL on the url generated by StructureVisualizer.to_url().
  • StructureVisualizer.query_params for setting query parameters on the url generated by StructureVisualizer.to_url().
  • Parsing ActionCallDeltaMessageContents with empty string partial_inputs.
  • Stream util not properly propagating thread contextvars.
  • ValueError with DuckDuckGoWebSearchDriver.
  • Agent.stream overriding Agent.prompt_driver.stream even when Agent.prompt_driver is explicitly provided.

Deprecated

  • Soft deprecated ToolkitTask. PromptTask is a drop-in replacement.

v1.0.2

16 Dec 23:26
Compare
Choose a tag to compare

Fixed

  • Exception when calling Structure.to_json() after it has run.
  • Agent unintentionally modifying stream for all Prompt Drivers.
  • StructureVisualizer.base_url for setting the base URL on the url generated by StructureVisualizer.to_url().
  • StructureVisualizer.query_params for setting query parameters on the url generated by StructureVisualizer.to_url().
  • Parsing ActionCallDeltaMessageContents with empty string partial_inputs.

v1.0.1

11 Dec 23:36
Compare
Choose a tag to compare

Fixed

  • Prompt Driver image input doc example not rendering

v1.0.0

10 Dec 18:24
f1b25c5
Compare
Choose a tag to compare

Added

  • TrafilaturaWebScraperDriver.no_ssl parameter to disable SSL verification. Defaults to False.
  • 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 to True.
  • 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.

Changed

  • BREAKING: Removed stringcase and docker from core dependencies. ComputerTool will now install these on the fly.
  • BREAKING: Renamed BaseTask.State.EXECUTING to BaseTask.State.RUNNING.
  • BREAKING: Renamed BaseTask.is_executing() to BaseTask.is_running().
  • BREAKING: Renamed Structure.is_executing() to Structure.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 ImageQueryDrivers, use PromptDrivers instead.
  • BREAKING: Removed ImageQueryTask, use PromptTask instead.
  • BREAKING: Updated ImageQueryTool.image_query_driver to ImageQueryTool.prompt_driver.
  • BREAKING: Updated numpy to ~2.0.2 and pandas to ^2.2.
  • BREAKING: Renamed StructureRunTask.driver to StructureRunTask.structure_run_driver.
  • BREAKING: Renamed StructureRunTool.driver to StructureRunTool.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 with GriptapeCloudVectorStoreDriver instead.
  • BREAKING: Removed redundant Engines, use their respective Drivers instead.
    • Removed ImageQueryEngine, use ImageQueryDrivers instead.
    • Removed InpaintingImageGenerationEngine, use ImageGenerationDrivers instead.
    • Removed OutpaintingImageGenerationEngine, use ImageGenerationDrivers instead.
    • Removed VariationImageGenerationEngine, use ImageGenerationDrivers instead.
    • Removed PromptImageGenerationEngine, use ImageGenerationDrivers instead.
    • Removed ImageGenerationEngine, use ImageGenerationDrivers instead.
    • Removed AudioTranscriptionEngine, use AudioTranscriptionDrivers instead.
    • Removed TextToSpeechEngine, use TextToSpeechDrivers instead.
  • BREAKING: Tools that previously took Engines now take their respective Drivers.
    • Updated AudioTranscriptionTool.engine to AudioTranscriptionTool.audio_transcription_driver.
    • Updated TextToSpeechTool.engine to TextToSpeechTool.text_to_speech_driver.
    • Updated ImageQueryTool.image_query_engine to ImageQueryTool.image_query_driver.
    • Updated InpaintingImageGenerationTool.engine to InpaintingImageGenerationTool.image_generation_driver.
    • Updated OutpaintingImageGenerationTool.engine to OutpaintingImageGenerationTool.image_generation_driver.
    • Updated VariationImageGenerationTool.engine to VariationImageGenerationTool.image_generation_driver.
    • Updated PromptImageGenerationTool.engine to PromptImageGenerationTool.image_generation_driver.
  • BREAKING: Tasks that previously took Engines now take their respective Drivers.
    • Updated AudioTranscriptionTask.audio_transcription_engine to AudioTranscriptionTask.audio_transcription_driver.
    • Updated TextToSpeechTask.text_to_speech_engine to TextToSpeechTask.text_to_speech_driver.
    • Updated ImageQueryTask.image_query_engine to ImageQueryTask.image_query_driver.
    • Updated InpaintingImageGenerationTask.image_query_engine to InpaintingImageGenerationTask.image_generation_driver.
    • Updated OutpaintingImageGenerationTask.image_query_engine to OutpaintingImageGenerationTask.image_generation_driver.
    • Updated VariationImageGenerationTask.image_query_engine to VariationImageGenerationTask.image_generation_driver.
    • Updated PromptImageGenerationTask.image_query_engine to PromptImageGenerationTask.image_generation_driver.
  • BREAKING: RenamedBaseImageGenerationTask.all_negative_rulesets to BaseImageGenerationTask.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 and azure-storage-blob dependencies.
  • GriptapeCloudFileManagerDriver no longer requires drivers-file-manager-griptape-cloud extra.
  • TrafilaturaWebScraperDriver no longer sets no_ssl to True by default.
  • AmazonBedrockPromptDriver not working without setting max_tokens.
  • BaseImageGenerationTask no longer prevents setting negative_rulesets and negative_rules at the same time.
  • StructureVisualizer now renders StructureRunTasks with a LocalStructureRunDriver.
  • 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.

Fixed

  • Use of deprecated pkg_resources in BaseTool.
  • Error when serializing JsonArtifacts.
  • GriptapeCloudVectorStoreDriver not pulling api_key from GT_CLOUD_API_KEY environment variable.
  • MarqoVectorStoreDriver.query failing when include_metadata is True.
  • with_contextvars not properly wrapping functions in some cases.
  • Crash when calling ToolkitTask.run() directly.
  • @activity decorator overwriting injected kwargs with default values as None.
  • Multiple calls to RuleMixin.rulesets resulting in duplicate Rulesets.
  • BaseTool incorrectly checking for empty values.

v0.34.3

10 Dec 18:19
a5eb56c
Compare
Choose a tag to compare

Fixed

  • ActionsSubtask.before_run and ActionsSubtask.after_run being called twice in ToolkitTask and Tooltask.

v0.34.2

10 Dec 18:19
f9c0918
Compare
Choose a tag to compare

Fixed

  • Restore human-friendly default ImageArtifact and AudioArtifact names with file type extension.

Full Changelog: 0.34.1...0.34.2

v0.34.1

10 Dec 18:19
b1e95de
Compare
Choose a tag to compare

Added

  • WebScraperTool.text_chunker default value for max_tokens.

Fixed

  • WebScraperTool not using text_chunker override.
  • Breaking change in Chat.handle_output behavior.

v0.34.0

10 Dec 18:20
9fe2dcf
Compare
Choose a tag to compare

Added

  • 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 to Workflow.context and Pipeline.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 adds on_before_run and on_after_run hooks.
  • griptape.utils.with_contextvars utility for running functions with the current contextvars context.

Changed

  • BREAKING: Removed BaseEventListenerDriver.publish_event flush argument. Use BaseEventListenerDriver.flush_events() instead.
  • BREAKING: Renamed parameter driver on EventListener to event_listener_driver.
  • BREAKING: Updated EventListener.handler return value behavior.
    • If EventListener.handler returns None, the event will not be published to the event_listener_driver.
    • If EventListener.handler is None, the event will be published to the event_listener_driver as-is.
  • BREAKING: Removed CompletionChunkEvent.
  • BREAKING: Moved griptape.common.observable.observable to griptape.common.decorators.observable.
  • BREAKING: AnthropicDriversConfig no longer bundles VoyageAiEmbeddingDriver.
  • BREAKING: Removed HuggingFaceHubPromptDriver.params, use HuggingFaceHubPromptDriver.extra_params instead.
  • BREAKING: Removed HuggingFacePipelinePromptDriver.params, use HuggingFacePipelinePromptDriver.extra_params instead.
  • BREAKING: Renamed BaseTask.run to BaseTask.try_run.
  • BREAKING: Renamed BaseTask.execute to BaseTask.run.
  • BREAKING: Renamed BaseTask.can_execute to BaseTool.can_run.
  • BREAKING: Renamed BaseTool.run to BaseTool.try_run.
  • BREAKING: Renamed BaseTool.execute to BaseTool.run.
  • BREAKING: Renamed callables throughout the framework for consistency:
    • Renamed LocalStructureRunDriver.structure_factory_fn to LocalStructureRunDriver.create_structure.
    • Renamed SnowflakeSqlDriver.connection_func to SnowflakeSqlDriver.get_connection.
    • Renamed CsvLoader.formatter_fn to CsvLoader.format_row.
    • Renamed SqlLoader.formatter_fn to SqlLoader.format_row.
    • Renamed CsvExtractionEngine.system_template_generator to CsvExtractionEngine.generate_system_template.
    • Renamed CsvExtractionEngine.user_template_generator to CsvExtractionEngine.generate_user_template.
    • Renamed JsonExtractionEngine.system_template_generator to JsonExtractionEngine.generate_system_template.
    • Renamed JsonExtractionEngine.user_template_generator to JsonExtractionEngine.generate_user_template.
    • Renamed PromptResponseRagModule.generate_system_template to PromptResponseRagModule.generate_system_template.
    • Renamed PromptTask.generate_system_template to PromptTask.generate_system_template.
    • Renamed ToolkitTask.generate_assistant_subtask_template to ToolkitTask.generate_assistant_subtask_template.
    • Renamed JsonSchemaRule.template_generator to JsonSchemaRule.generate_template.
    • Renamed ToolkitTask.generate_user_subtask_template to ToolkitTask.generate_user_subtask_template.
    • Renamed TextLoaderRetrievalRagModule.process_query_output_fn to TextLoaderRetrievalRagModule.process_query_output.
    • Renamed FuturesExecutorMixin.futures_executor_fn to FuturesExecutorMixin.create_futures_executor.
    • Renamed VectorStoreTool.process_query_output_fn to VectorStoreTool.process_query_output.
    • Renamed CodeExecutionTask.run_fn to CodeExecutionTask.on_run.
    • Renamed Chat.input_fn to Chat.handle_input.
    • Renamed Chat.output_fn to Chat.handle_output.
    • Renamed EventListener.handler to EventListener.on_event.
  • Updated EventListener.handler return type to Optional[BaseEvent | dict].
  • BaseTask.parent_outputs type has changed from dict[str, str | None] to dict[str, BaseArtifact].
  • Workflow.context["parent_outputs"] type has changed from dict[str, str | None] to dict[str, BaseArtifact].
  • Pipeline.context["parent_output"] has changed type from str | None to BaseArtifact | None.
  • _DefaultsConfig.logging_config and Defaults.drivers_config are now lazily instantiated.
  • griptape.schemas.BaseSchema now uses griptape.schemas.UnionField for Union 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 of Rich.prompt.Prompt by default.
  • Chat output now uses Rich.print by default.
  • Chat.output_fn's now takes an optional kwarg parameter, stream.
  • Implemented SerializableMixin in Structure, BaseTask, BaseTool, and TaskMemory
  • @activity decorated functions can now accept kwargs that are defined in the activity schema.
  • Updated ToolkitTask system prompt to no longer mention memory_name and artifact_namespace.
  • Models in ToolkitTask with native tool calling no longer need to provide their final answer as Answer:.
  • 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 in Structure, BaseTask, and BaseTool.
  • 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.

Fixed

  • Structures not flushing events when not listening for FinishStructureRunEvent.
  • EventListener.event_types and the argument to BaseEventListenerDriver.handler being out of sync.
  • Models occasionally hallucinating memory_name and artifact_namespace into Tool schemas when using ToolkitTask.
  • 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.

v0.33.1

10 Dec 18:20
cc4ffe5
Compare
Choose a tag to compare

Fixed

  • Pinned cohere at ~5.11.0 to resolve slow dependency resolution.
  • Missing exa-py from all extra.