mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-16 08:15:05 +00:00
feat(compaction): configurable provider, model & max_tokens for pending message compaction
Add Provider, Model, MaxTokens to PendingCompactionConfig so users can override the LLM used for pending message summarization via the config UI. Falls back to agent's provider/model when not set. Increase default max_tokens from 512 to 4096. Add allowEmpty prop to ProviderModelSelect to prevent auto-selecting first provider when empty means "use default".
This commit is contained in:
1 parent
004f6055ff
commit
1ddd2e547a
10 files changed
+167
-35
No files matched your search
+10
-1
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/nextlevelbuilder/goclaw/internal/agent"
|
||||
"github.com/nextlevelbuilder/goclaw/internal/bootstrap"
|
||||
"github.com/nextlevelbuilder/goclaw/internal/bus"
|
||||
"github.com/nextlevelbuilder/goclaw/internal/cache"
|
||||
"github.com/nextlevelbuilder/goclaw/internal/channels"
|
||||
"github.com/nextlevelbuilder/goclaw/internal/channels/discord"
|
||||
"github.com/nextlevelbuilder/goclaw/internal/channels/feishu"
|
||||
@@ -618,6 +619,8 @@ func runGateway() {
|
||||
if pendingMessagesH != nil {
|
||||
if pc := cfg.Channels.PendingCompaction; pc != nil {
|
||||
pendingMessagesH.SetKeepRecent(pc.KeepRecent)
|
||||
pendingMessagesH.SetMaxTokens(pc.MaxTokens)
|
||||
pendingMessagesH.SetProviderModel(pc.Provider, pc.Model)
|
||||
}
|
||||
server.SetPendingMessagesHandler(pendingMessagesH)
|
||||
}
|
||||
@@ -852,7 +855,13 @@ func runGateway() {
|
||||
webFetchTool.UpdatePolicy(updatedCfg.Tools.WebFetch.Policy, updatedCfg.Tools.WebFetch.AllowedDomains, updatedCfg.Tools.WebFetch.BlockedDomains)
|
||||
})
|
||||
|
||||
go consumeInboundMessages(ctx, msgBus, agentRouter, cfg, sched, channelMgr, consumerTeamStore, quotaChecker, delegateMgr, pgStores.Sessions, pgStores.Agents)
|
||||
// Contact collector: auto-collect user info from channels with in-memory dedup cache.
|
||||
var contactCollector *store.ContactCollector
|
||||
if pgStores.Contacts != nil {
|
||||
contactCollector = store.NewContactCollector(pgStores.Contacts, cache.NewInMemoryCache[bool]())
|
||||
}
|
||||
|
||||
go consumeInboundMessages(ctx, msgBus, agentRouter, cfg, sched, channelMgr, consumerTeamStore, quotaChecker, delegateMgr, pgStores.Sessions, pgStores.Agents, contactCollector)
|
||||
|
||||
go func() {
|
||||
sig := <-sigCh
|
||||
|
||||
Reference in new issue
Block a user