mirror of
https://github.com/YspCoder/clawgo.git
synced 2026-05-06 01:47:30 +08:00
feat(runtime): add process watch patterns, unified backup/import, pluggable context engine, token usage, and codex device login
This commit is contained in:
55
pkg/agent/context_engine.go
Normal file
55
pkg/agent/context_engine.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package agent
|
||||
|
||||
import "github.com/YspCoder/clawgo/pkg/providers"
|
||||
|
||||
// ContextBuildRequest defines inputs for building a provider message window.
|
||||
type ContextBuildRequest struct {
|
||||
History []providers.Message
|
||||
Summary string
|
||||
CurrentMessage string
|
||||
Media []string
|
||||
Channel string
|
||||
ChatID string
|
||||
ResponseLanguage string
|
||||
MemoryNamespace string
|
||||
}
|
||||
|
||||
// ContextEngine allows swapping context-assembly behavior without touching AgentLoop flow.
|
||||
type ContextEngine interface {
|
||||
BuildMessages(req ContextBuildRequest) []providers.Message
|
||||
SkillsInfo() map[string]interface{}
|
||||
}
|
||||
|
||||
type defaultContextEngine struct {
|
||||
builder *ContextBuilder
|
||||
}
|
||||
|
||||
func NewDefaultContextEngine(builder *ContextBuilder) ContextEngine {
|
||||
if builder == nil {
|
||||
return nil
|
||||
}
|
||||
return &defaultContextEngine{builder: builder}
|
||||
}
|
||||
|
||||
func (e *defaultContextEngine) BuildMessages(req ContextBuildRequest) []providers.Message {
|
||||
if e == nil || e.builder == nil {
|
||||
return nil
|
||||
}
|
||||
return e.builder.BuildMessagesWithMemoryNamespace(
|
||||
req.History,
|
||||
req.Summary,
|
||||
req.CurrentMessage,
|
||||
req.Media,
|
||||
req.Channel,
|
||||
req.ChatID,
|
||||
req.ResponseLanguage,
|
||||
req.MemoryNamespace,
|
||||
)
|
||||
}
|
||||
|
||||
func (e *defaultContextEngine) SkillsInfo() map[string]interface{} {
|
||||
if e == nil || e.builder == nil {
|
||||
return map[string]interface{}{}
|
||||
}
|
||||
return e.builder.GetSkillsInfo()
|
||||
}
|
||||
Reference in New Issue
Block a user