Changelog for `genaiPlatform` Version 8.9.0
[8.9.0]
Added
Agents
- Created a flexible interface for building and interacting with agents.
- Created types to represent GenaiCore.Agent.Templates and GenaiCore.Agent.Drafts for agents.
- Enhanced agent interface with improved streaming support through GenaiCore.Agent#doStream.
- Added GenaiCore.LangGraph namespace for LangGraph integration.
- Added GenaiCore.LangGraph.Graph for defining and managing LangGraph graphs.
- Added graph components:
Node,Edge,ConditionalEdges,Task,Command,Interrupt. - Added
RunnableConfigfor graph execution configuration. - Added
SessionStoreCheckpointWrapperfor checkpoint management.
- Created GenaiCore.Agent.LangGraph.Graph agent for executing LangGraph graphs.
- Added GenaiCore.Agent.LangGraph.ReAct with streaming tool calls and output.
- Added support for accessing history checkpoint for ReAct agent.
- Integrated ReAct agent with LangGraph's BaseChatModel.
- Introduced GenaiCore.Agent.Deployment type for streamlined agent deployment and lifecycle management.
- Implemented comprehensive versioning for agent deployments.
- Optimized performance of deployment fetch operations.
GenaiCore.Agent.Preview.Deployment
- Added support for previewing an agent without actual deployment.
- Automatic cleanup of unused preview deployments.
Tools
GenaiCore.Tool.NativePy.Spec#nonLlmKwargs
- Added non-LLM keyword args to tools
- Added comprehensive support for non-LLM keyword arguments in tools.
- Added validation and type checking for non-LLM kwargs before updates.
- Enabled passing non-LLM kwargs when moving tools to store.
- Added save and default value logic for non-LLM arguments.
Tool Progress
- Added support for tools to report intermediate progress during long-running operations
Tool Cleanup
- Added transient tool cleanup to controller to automatically manage temporary tool instances.
- Added job for cleaning up unused GenaiCore.Tool.Tags.
Tool Enhancements
- Enhanced
GenaiCore.Toolinterface for easier extensibility, improved functionality and documentation. - Automatically populate
displayNameand validate uniqueness inTool.beforeCreateandbeforeUpdate. - Added GenaiCore.Tool.WebSearch.
- Added GenaiCore.Tool.SemanticSearch for semantic search functionality.
- Enhanced
Resource
- GenaiCore.Resource
- Added abstract base type for a multimodal resource representation and storage.
- Enables seamless conversion between native data objects, LLM-friendly formats, and UI components.
- Supports multimodal interactions including images, files, dataframes, and arbitrary Python objects.
- Implemented versioning system with unique identification by name and version.
- GenaiCore.Agent.MessageContent.Resource
- Added support for resources in agent message content.
- GenaiCore.Resource.LlmConverter and GenaiCore.Resource.UiConverter
- Added converter interfaces for transforming resources between different representations.
Observability
- Trace and Span Updates
- Added span removal logic for cleanup.
Engine and Utilities
- GenaiCore.EngineUtil
- Improved engine utility functions and helpers.
Documentation
- Added comprehensive documentation for:
- Agents
- Tools
Data Integration
- Unstructured Data Processing
- Updated mew3 wheel to fix timeouts for long documents.
- Fixed unstructured job data integration tests.
- Added metadata tagging support for unstructured documents.
- Integrated
ProcessorComponent.TagExtractioninto default mew3 processor. - Updated
Unstructured.BatchJobto support persisting of document tags. - Added data model for unstructured metadata tagging.
- Implemented tag extraction with LLM prompting.
- Added
ProcessorComponentfor metadata tag extraction.
LLM and Completion
- GenaiCore.Llm.Completion.Client
- Migrated to
GenaiCore.Llm.Completion.Clientfor standardized LLM interactions. - Implemented Langchain
BaseChatModelforGenaiCore.Completion.Client.
- Migrated to
- LiteLLM Updates
- Updated LiteLLM version to 1.77.4 for improved functionality and security.
- Added support for streaming tokens with LiteLLM.
- Optimized mocking of completion calls for testing.
- Added support for aliasing model names in LiteLLM via
Llm.Auth#supportedModelNamesAndAliases.
- Streaming Support
- Enhanced streaming support for completion calls across the platform.
- Updated
App.Meterfor CVE completion calls. - Added support for mocking stream operations in tests.
Embedder and Vector Store
- Sparse Embedder Support
- Added support for sparse embedders.
- Integrated sparse embedder with vector store.
- GenaiCore.VectorStore.Pg
- Added
TimeoutSectoVectorStore.Pg.ExportSpecfor better timeout control. - Added timeout spec for
VectorStorePg#ImportFromFiles.
- Added
- Embedder Improvements
- Added
idandnameto seeded default-llm-embedder's embedderInstance. - Fixed embedder engine initialization to properly handle optional parameters.
- Added
Agent Messages and Sessions
- GenaiCore.Agent.Message
- Implemented
Agent.Messagein KV store. - Optimized output messages aggregation in
Agent.MessageBuffer. - Added ERROR agent message type with expanded error handling.
- Updated agent message generator to send error messages.
- Implemented
- Session Store
- Added disabled CronJob for session store session cleanup.
- Improved session management and cleanup logic.
Tags and Categorization
- Tool Tags
- Added multi-tags support for tools.
- Implemented tool tag creation functionality.
- Tagging Categories
- Implemented
Tags.Categoriesfor organizing tags. - Added documentation for
Tagging.Category.
- Implemented
Roles and Permissions
- Role Management
- Added
AgentAdminrole for agent management permissions.
- Added
- Permission Controls
- Updated deployment permissions to check for
AgentAdminrole.
- Updated deployment permissions to check for
Changed
- Tool Updates
- Added display names to seeded tools.
- Fixed tool fetch issues and broken tool flows.
- Improved tool configuration and validation.
- Renamed websearch tool to avoid conflict with genaibase.
- Fixed seed tools with no ArgsSchema.
- Improved error handling for tool calls using inline lambdas.
- Added support for date/datetime as JSON schema.
- Updated
nativePyToolSrcMetato handle functions withNoneor constant return type. - Allowed save of Python draft tools with validation errors.
- Fixed loading of tools workbench in Studio.
- Handled C3Method tool calls from JS runtime and cross-runtime calls.
- Updated
InjectedArgswithnoDefaultsinstead ofdefaultExists.
LiteLLM Integration
- Upgraded LiteLLM to 1.80.10
- Users can create their own runtimes that inherit from py-litellm and re-resolve to upgrade LiteLLM
Security
- Fixed critical and high CVE vulnerabilities in runtimes