refactor: mcphost planner

This commit is contained in:
lilong.129
2025-05-18 21:55:01 +08:00
parent e35d644acf
commit 3f1ee03529
13 changed files with 595 additions and 220 deletions
+15 -2
View File
@@ -44,7 +44,7 @@ func (h *ConversationHistory) Append(msg *schema.Message) {
// for assistant message:
// - keep at most the last 10 assistant messages
if msg.Role == schema.Assistant {
if msg.Role == schema.Assistant || msg.Role == schema.Tool {
// add the new assistant message to the history
*h = append(*h, msg)
@@ -61,6 +61,13 @@ func (h *ConversationHistory) Append(msg *schema.Message) {
}
}
func (h *ConversationHistory) Clear() {
// Keep only the system message
systemMsg := (*h)[0]
*h = ConversationHistory{systemMsg}
log.Info().Msg("conversation history cleared")
}
func logRequest(messages ConversationHistory) {
msgs := make(ConversationHistory, 0, len(messages))
for _, message := range messages {
@@ -94,7 +101,13 @@ func logResponse(resp *schema.Message) {
logger := log.Info().Str("role", string(resp.Role)).
Str("content", resp.Content)
if resp.ResponseMeta != nil {
logger = logger.Interface("response_meta", resp.ResponseMeta)
logger = logger.Str("finish_reason", resp.ResponseMeta.FinishReason)
// Log usage statistics
if usage := resp.ResponseMeta.Usage; usage != nil {
log.Debug().Int("input_tokens", usage.PromptTokens).
Int("output_tokens", usage.CompletionTokens).
Int("total_tokens", usage.TotalTokens).Msg("usage statistics")
}
}
if resp.Extra != nil {
logger = logger.Interface("extra", resp.Extra)