MCPcopy Create free account
hub / github.com/astercloud/aster / TrimMessages

Method TrimMessages

pkg/store/json.go:142–167  ·  view source on GitHub ↗

TrimMessages 修剪消息列表,保留最近的 N 条消息 如果 maxMessages <= 0,则不修剪

(ctx context.Context, agentID string, maxMessages int)

Source from the content-addressed store, hash-verified

140// TrimMessages 修剪消息列表,保留最近的 N 条消息
141// 如果 maxMessages <= 0,则不修剪
142func (js *JSONStore) TrimMessages(ctx context.Context, agentID string, maxMessages int) error {
143 if maxMessages <= 0 {
144 return nil // 不修剪
145 }
146
147 js.mu.Lock()
148 defer js.mu.Unlock()
149
150 // 加载现有消息
151 var messages []types.Message
152 path := filepath.Join(js.agentDir(agentID), "messages.json")
153 if err := js.loadJSON(path, &messages); err != nil {
154 return err
155 }
156
157 // 如果消息数量未超过限制,不需要修剪
158 if len(messages) <= maxMessages {
159 return nil
160 }
161
162 // 保留最近的 maxMessages 条消息
163 trimmedMessages := messages[len(messages)-maxMessages:]
164
165 // 保存修剪后的消息
166 return js.saveJSON(path, trimmedMessages)
167}
168
169// SaveToolCallRecords 保存工具调用记录
170func (js *JSONStore) SaveToolCallRecords(ctx context.Context, agentID string, records []types.ToolCallRecord) error {

Callers

nothing calls this directly

Calls 4

agentDirMethod · 0.95
loadJSONMethod · 0.95
saveJSONMethod · 0.95
JoinMethod · 0.45

Tested by

no test coverage detected