Releases: JaimeStill/go-agents
Releases · JaimeStill/go-agents
v0.3.0
Breaking Changes:
- Removed
pkg/typespackage - split intopkg/protocol,pkg/response,pkg/model, andpkg/request - Flattened
AgentConfigstructure:ProviderandModelare now peer fields withClient(not nested underClient) ClientConfigno longer containsProvider- HTTP client settings onlyProviderConfigno longer containsModel- provider connection settings onlyAgent.Model()returns*model.Modelinstead of*types.Model
Added:
pkg/protocolpackage for protocol types and message structuresProtocoltype with constants:Chat,Vision,Tools,EmbeddingsMessagetype andNewMessage()constructorIsValid(),ValidProtocols(),ProtocolStrings()functionsProtocol.SupportsStreaming()method
pkg/responsepackage for response parsing and typesChatResponsetype withContent()methodStreamingChunktype withContent()methodEmbeddingsResponsetypeToolsResponsetype withToolCallandToolCallFunctiontypesParseChat(),ParseEmbeddings(),ParseTools(),ParseStream()functions
pkg/modelpackage for model runtime typeModeltype withNameandOptionsfieldsNew()function for creating Model from ModelConfig
pkg/requestpackage for request interface and protocol-specific request typesRequestinterface withProtocol(),Headers(),Marshal(),Provider(),Model()methodsChatRequesttype withNewChat()constructorVisionRequesttype withNewVision()constructorToolsRequesttype withNewTools()constructorEmbeddingsRequesttype withNewEmbeddings()constructor
Changed:
AgentConfig.Providermoved fromAgentConfig.Client.Providerto top-level fieldAgentConfig.Modelmoved fromAgentConfig.Client.Provider.Modelto top-level field- Mock package types updated to use
pkg/protocolandpkg/response
Removed:
pkg/typespackage (replaced bypkg/protocol,pkg/response,pkg/model,pkg/request)- Nested configuration hierarchy (
Client.Provider.Model)
v0.2.1
Changed:
types.VisionRequest.ImageOptionsrenamed toVisionOptionsfor protocol naming consistency- Vision protocol configuration format now uses nested
vision_optionsmap instead of flatdetailkey (breaking configuration change) - Agent protocol methods now merge model's configured options with runtime options, enabling configuration defaults with runtime overrides
Fixed:
- Agent methods now properly apply model's configured protocol options as baseline values
v0.2.0 - Flexible Model Capability Execution API Alignment
Breaking Changes:
- Removed
pkg/capabilitiespackage - protocol handling now integrated directly intopkg/types - Removed
pkg/modelspackage - model abstraction replaced bytypes.Modelruntime type - Removed
pkg/protocolspackage - merged intopkg/typeswith protocol-specific request types - Removed
pkg/transportpackage - renamed topkg/clientwith enhanced retry logic Agent.Client()now returnsclient.Clientinstead oftransport.ClientAgent.Model()now returns*types.Modelinstead ofmodels.ModelAgent.ChatStream()now returns<-chan *types.StreamingChunkinstead of<-chan types.StreamingChunkAgent.VisionStream()now returns<-chan *types.StreamingChunkinstead of<-chan types.StreamingChunk- Configuration field
AgentConfig.Transportrenamed toAgentConfig.Client
Added:
pkg/typespackage consolidating protocol types, request/response structures, and model runtime typeProtocoltype with constants:Chat,Vision,Tools,Embeddings- Protocol-specific request types:
ChatRequest,VisionRequest,ToolsRequest,EmbeddingsRequest ProtocolRequestinterface for unified request handlingModelruntime type with protocol-specific optionsNewModel()function for creating modelsFromConfig()function for convertingModelConfigtoModelProtocol.SupportsStreaming()methodIsValid()function for protocol validationValidProtocols()function returning all supported protocolsProtocolStrings()function for display formattingParseResponse()function for protocol-aware response parsingParseStreamChunk()function for protocol-aware streaming chunk parsingExtractOption[T]()generic function for type-safe option extractionToolDefinitiontype for provider-agnostic tool definitions- Protocol-specific parsers:
ParseChatResponse(),ParseVisionResponse(),ParseToolsResponse(),ParseEmbeddingsResponse() - Protocol-specific streaming parsers:
ParseChatStreamChunk(),ParseVisionStreamChunk(),ParseToolsStreamChunk()
pkg/clientpackage for HTTP client orchestration with retry logicClientinterface withExecuteProtocol()andExecuteProtocolStream()methodsNew()function for creating clients from configuration- Exponential backoff retry logic with jitter for transient failures
- Health tracking via
IsHealthy()method
pkg/configpackage additions:ClientConfigtype replacingTransportConfigRetryConfigtype for configuring retry behaviorDefaultClientConfig()functionDefaultRetryConfig()functionClientConfig.Merge()method
pkg/agentpackage additions:ErrorTypetype for categorizing agent errorsAgentErrortype with detailed error contextNewAgentError()functionNewAgentInitError()helper functionNewAgentLLMError()helper function- Error option functions:
WithCode(),WithCause(),WithName(),WithClient(),WithID()
pkg/providerspackage additions:PrepareStreamRequest()method for streaming-specific request preparationProcessStreamResponse()method for streaming response processing
Changed:
Provider.GetEndpoint()now acceptstypes.Protocolinstead ofprotocols.ProtocolProvider.PrepareRequest()now acceptstypes.ProtocolRequestinstead of separate protocol and request parametersProvider.ProcessResponse()now acceptstypes.Protocolparameter for protocol-aware parsingProvider.Model()now returns*types.Modelinstead ofmodels.Model- Agent protocol methods now accept variadic options:
Chat(),ChatStream(),Vision(),VisionStream(),Tools(),Embed() - Mock package types updated to use
pkg/typesandpkg/clientinstead of removed packagesMockAgentusesclient.Clientinstead oftransport.Client- Mock helper functions use
types.*response types WithClient()acceptsclient.Client
Removed:
Capabilityinterface and all capability-related typesCapabilityRequesttype (replaced by protocol-specific request types)CapabilityOptiontypeStreamingCapabilityinterfaceStandardCapabilitytypeStandardStreamingCapabilitytype- Capability registry and format registration system
Modelinterface frompkg/modelsProtocolHandlertypeTransportConfigtype (replaced byClientConfig)- Model option merging and update methods
MockModeltypeMockCapabilitytype
v0.1.3 - Capability Format Standards
Changed:
- Capability format naming: renamed from vendor-centric to specification-based naming
openai-chat→chat(standard OpenAI-compatible chat completions)openai-vision→vision(standard OpenAI-compatible vision API)openai-tools→tools(standard OpenAI-compatible function calling)openai-embeddings→embeddings(standard OpenAI-compatible embeddings)openai-reasoning→o-chat(OpenAI o-series reasoning models)
Added:
o-visioncapability format for OpenAI o-series vision reasoning models- Supports
max_completion_tokens,reasoning_effort,images,detailparameters - Uses o-series parameter restrictions (no temperature/top_p support)
- Supports
v0.1.2 - Testing Infrastructure
Added:
pkg/mockpackage providing mock implementations for testingMockAgent,MockClient,MockProvider,MockModel,MockCapabilitytypes- Helper constructors:
NewSimpleChatAgent,NewStreamingChatAgent,NewToolsAgent,NewEmbeddingsAgent,NewMultiProtocolAgent,NewFailingAgent
v0.1.1 - Agent Identification
Added:
ID() stringmethod to Agent interface returning unique UUIDv7 identifier
v0.1.0 - Initial Pre-Release
Initial pre-release.
Protocols:
- Chat
- Vision
- Tools
- Embeddings
Capability Formats:
- openai-chat
- openai-vision
- openai-tools
- openai-embeddings
- openai-reasoning
Providers:
- Ollama
- Azure AI Foundry