feat: Session 3 - Core Semantic Kernel Port - Basic Interfaces#4
Open
devin-ai-integration[bot] wants to merge 2 commits intogo-migrationfrom
Open
feat: Session 3 - Core Semantic Kernel Port - Basic Interfaces#4devin-ai-integration[bot] wants to merge 2 commits intogo-migrationfrom
devin-ai-integration[bot] wants to merge 2 commits intogo-migrationfrom
Conversation
- Add ChatHistory and content types (TextContent, ImageContent) - Implement function calling types and Kernel interface - Create agent builder pattern with AgentBuilder and SKAgent - Add model provider abstraction with OpenAI, Anthropic, Google stubs - Implement plugin system interfaces with PluginLoader - Define framework error types with proper Go error wrapping - Update GO_MIGRATION.md to mark Session 3 complete Implements foundational interfaces for agent implementations in future sessions. Follows Go idioms with explicit errors, context.Context, and channels for streaming. Link to Devin run: https://app.devin.ai/sessions/8073faecb180437987bd162e6e9d07c3 Requested by: Jude Partovi (@jpartovi) Co-Authored-By: Jude Partovi <jude@partovi.org>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Devin, can you remove the updates from the README? |
Per @jpartovi's request, removing documentation updates from this PR. The PR now contains only the core interface implementations: - pkg/kernel/ (chat_history.go, function_calling.go) - pkg/agents/ (types.go, builder.go) - pkg/models/ (provider.go, openai.go, anthropic.go, google.go, errors.go) - pkg/plugins/ (plugin.go) - pkg/errors/ (errors.go) Documentation updates will be handled separately. Co-Authored-By: Jude Partovi <jude@partovi.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR implements Session 3 of the Go migration: Core Semantic Kernel Port - Basic Interfaces. It establishes the foundational Go interfaces and types that will serve as the backbone for the agent framework, translating the Python semantic kernel concepts into idiomatic Go patterns.
NotImplementedErrorplaceholders and will be completed in future sessions.Changes
Core Kernel Interfaces (
pkg/kernel/):ChatHistoryandChatMessageContenttypes for conversation managementContentIteminterface withTextContentandImageContentimplementationsFunctionCallContentandFunctionResultContentfor tool callingKernelandKernelFunctioninterfaces for orchestrationAuthorRoleenum (user, assistant, system, tool)Agent Builder Pattern (
pkg/agents/):AgentBuilderwith fluent configuration interfaceSKAgentwrapper type with model metadataChatCompletionAgentinterface for agent implementationsAgentConfigYAML configuration structurebasicChatAgentstub (returns "not implemented" - intentional)Model Provider Abstraction (
pkg/models/):Providerinterface for LLM client abstractionChatCompletionFactoryfor provider managementPlugin System (
pkg/plugins/):PluginandKernelFunctioninterfacesPluginFunctionimplementation with parameter specsExtraDataCollectorfor metadata collectionPluginLoaderinterface for registration/retrievalError Handling (
pkg/errors/):AuthenticationError,AgentInvokeError,PersistenceErrorHITLInterventionRequiredfor human-in-the-loop flowsDocumentation:
GO_MIGRATION.mdto mark Sessions 2 and 3 completeType of Change
Key Review Points
Interface Design:
Go Idioms:
context.Contextfor cancellationfmt.Errorfwith%w)Placeholder Implementations:
NotImplementedError{Feature: "X client creation"}- this is intentionalbasicChatAgent.Invoke()andInvokeStream()return "not implemented yet" - this is intentionalIntegration Points:
kernel.ModelTypeandkernel.ChatCompletionClientfrom previous sessionsAdditional Comments
This session establishes the structural foundation for the Go migration. The interfaces are designed to support:
Next Steps: Session 4 will implement the Sequential agent execution logic using these interfaces.
Link to Devin run: https://app.devin.ai/sessions/8073faecb180437987bd162e6e9d07c3
Requested by: Jude Partovi (@jpartovi)