Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,16 @@
import io.agentscope.runtime.sandbox.manager.model.container.SandboxType;
import io.agentscope.runtime.sandbox.tools.MCPTool;
import io.agentscope.runtime.sandbox.tools.McpConfigConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Logger;

public class ToolkitInit {
private static final Logger logger = Logger.getLogger(ToolkitInit.class.getName());
private static final Logger logger = LoggerFactory.getLogger(ToolkitInit.class);

public static List<AgentTool> getAllTools(Sandbox sandbox) {
return List.of(
Expand Down Expand Up @@ -421,10 +422,10 @@ private static List<AgentTool> buildMcpAgentTools(McpConfigConverter converter)
agentTools.add(new AsMCPTool(mcpTool));
}

logger.info(String.format("Created %d MCP tools", agentTools.size()));
logger.info("Created {} MCP tools", agentTools.size());
return agentTools;
} catch (Exception e) {
logger.severe("Failed to create MCP tools: " + e.getMessage());
logger.error("Failed to create MCP tools: {}", e.getMessage());
throw new RuntimeException("Failed to create MCP tools", e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Logger;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
Expand All @@ -45,6 +44,8 @@
import org.apache.hc.core5.http.ContentType;
import org.apache.hc.core5.http.io.entity.EntityUtils;
import org.apache.hc.core5.http.io.entity.StringEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* Mem0-based implementation of memory service
Expand All @@ -53,7 +54,7 @@
*/
public class Mem0MemoryService implements MemoryService {

private static final Logger logger = Logger.getLogger(Mem0MemoryService.class.getName());
private static final Logger logger = LoggerFactory.getLogger(Mem0MemoryService.class);
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private static final String MEM0_API_BASE_URL = "https://api.mem0.ai";
private static final String API_VERSION_V1 = "v1";
Expand Down Expand Up @@ -104,7 +105,7 @@ public CompletableFuture<Void> stop() {
}
logger.info("Mem0 memory service stopped");
} catch (Exception e) {
logger.severe("Failed to close HTTP client: " + e.getMessage());
logger.error("Failed to close HTTP client: {}", e.getMessage());
}
});
}
Expand Down Expand Up @@ -134,7 +135,7 @@ public CompletableFuture<Boolean> health() {
return response.getCode() == 200;
}
} catch (Exception e) {
logger.severe("Mem0 memory service health check failed: " + e.getMessage());
logger.error("Mem0 memory service health check failed: {}", e.getMessage());
return false;
}
});
Expand Down Expand Up @@ -180,14 +181,14 @@ public CompletableFuture<Void> addMemory(String userId, List<Message> messages,
try (CloseableHttpResponse response = httpClient.execute(request)) {
int statusCode = response.getCode();
if (statusCode >= 200 && statusCode < 300) {
logger.fine("Added " + messages.size() + " messages to Mem0 for user: " + userId);
logger.info("Added {} messages to Mem0 for user: {}", messages.size(), userId);
} else {
String responseBody = EntityUtils.toString(response.getEntity());
logger.warning("Failed to add memory: " + statusCode + " - " + responseBody);
logger.warn("Failed to add memory: {} - {}", statusCode, responseBody);
}
}
} catch (Exception e) {
logger.severe("Failed to add memory: " + e.getMessage());
logger.error("Failed to add memory: {}", e.getMessage());
throw new RuntimeException("Failed to add memory", e);
}
});
Expand Down Expand Up @@ -272,12 +273,12 @@ public CompletableFuture<List<Message>> searchMemory(String userId, List<Message
if (response.getCode() == 200) {
return parseSearchResponse(responseBody);
} else {
logger.warning("Failed to search memory: " + response.getCode() + " - " + responseBody);
logger.warn("Failed to search memory: {} - {}", response.getCode(), responseBody);
return Collections.emptyList();
}
}
} catch (Exception e) {
logger.severe("Failed to search memory: " + e.getMessage());
logger.error("Failed to search memory: {}", e.getMessage());
return Collections.emptyList();
}
});
Expand Down Expand Up @@ -341,12 +342,12 @@ public CompletableFuture<List<Message>> listMemory(String userId, Optional<Map<S

return allMessages;
} else {
logger.warning("Failed to list memory: " + response.getCode() + " - " + responseBody);
logger.warn("Failed to list memory: {} - {}", response.getCode(), responseBody);
return Collections.emptyList();
}
}
} catch (Exception e) {
logger.severe("Failed to list memory: " + e.getMessage());
logger.error("Failed to list memory: {}", e.getMessage());
return Collections.emptyList();
}
});
Expand Down Expand Up @@ -411,18 +412,18 @@ public CompletableFuture<Void> deleteMemory(String userId, Optional<String> sess

try (CloseableHttpResponse deleteResponse = httpClient.execute(deleteRequest)) {
if (deleteResponse.getCode() >= 200 && deleteResponse.getCode() < 300) {
logger.fine("Deleted memory: " + memoryId);
logger.info("Deleted memory: {}", memoryId);
} else {
String responseBody = EntityUtils.toString(deleteResponse.getEntity());
logger.warning("Failed to delete memory " + memoryId + ": " + deleteResponse.getCode() + " - " + responseBody);
logger.warn("Failed to delete memory {}: {} - {}", memoryId, deleteResponse.getCode(), responseBody);
}
}
}

String sessionInfo = sessionId.map(s -> ", session: " + s).orElse("");
logger.fine("Deleted " + memoryIds.size() + " memories for user: " + userId + sessionInfo);
logger.info("Deleted {} memories for user: {}{}", memoryIds.size(), userId, sessionInfo);
} catch (Exception e) {
logger.severe("Failed to delete memory: " + e.getMessage());
logger.error("Failed to delete memory: {}", e.getMessage());
throw new RuntimeException("Failed to delete memory", e);
}
});
Expand Down Expand Up @@ -462,12 +463,12 @@ public CompletableFuture<List<String>> getAllUsers() {
}
return new ArrayList<>(userIds);
} else {
logger.warning("Failed to get all users: " + response.getCode() + " - " + responseBody);
logger.warn("Failed to get all users: {} - {}", response.getCode(), responseBody);
return Collections.emptyList();
}
}
} catch (Exception e) {
logger.severe("Failed to get all users: " + e.getMessage());
logger.error("Failed to get all users: {}", e.getMessage());
return Collections.emptyList();
}
});
Expand Down Expand Up @@ -544,7 +545,7 @@ private List<Message> parseSearchResponse(String responseBody) {
}
return messages;
} catch (Exception e) {
logger.severe("Failed to parse search response: " + e.getMessage());
logger.error("Failed to parse search response: {}", e.getMessage());
return Collections.emptyList();
}
}
Expand All @@ -569,7 +570,7 @@ private List<Message> parseListResponse(String responseBody) {
}
return messages;
} catch (Exception e) {
logger.severe("Failed to parse list response: " + e.getMessage());
logger.error("Failed to parse list response: {}", e.getMessage());
return Collections.emptyList();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
*/
package io.agentscope.runtime.engine.services.memory.persistence.memory.service;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;

Expand All @@ -27,7 +29,6 @@
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Logger;
import java.util.stream.Collectors;

import com.fasterxml.jackson.core.JsonProcessingException;
Expand All @@ -41,7 +42,7 @@
* Redis-based memory service implementation
*/
public class RedisMemoryService implements MemoryService {
Logger logger = Logger.getLogger(RedisMemoryService.class.getName());
private static final Logger logger = LoggerFactory.getLogger(MemoryService.class);

private final RedisTemplate<String, String> redisTemplate;
private final ObjectMapper objectMapper;
Expand Down Expand Up @@ -128,7 +129,7 @@ public CompletableFuture<List<Message>> searchMemory(String userId, List<Message
Set<String> keywords = Arrays.stream(query.toLowerCase().split("\\s+"))
.collect(Collectors.toSet());

logger.info("keywords: "+keywords);
logger.info("keywords: {}", keywords);

HashOperations<String, String, String> hashOps = redisTemplate.opsForHash();
Map<String, String> allFields = hashOps.entries(key);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,21 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Logger;
import java.util.stream.Collectors;

import io.agentscope.runtime.engine.services.memory.service.EmbeddingService;
import org.apache.commons.math3.linear.ArrayRealVector;
import org.apache.commons.math3.linear.RealVector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* Simple text embedding service implementation
* Uses TF-IDF and term frequency statistics as vector representation
*/
public class SimpleEmbeddingService implements EmbeddingService {

Logger logger = Logger.getLogger(SimpleEmbeddingService.class.getName());
private static final Logger logger = LoggerFactory.getLogger(SimpleEmbeddingService.class);
private static final int EMBEDDING_DIMENSION = 300; // Fixed dimension

private final Map<String, Integer> vocabulary = new HashMap<>();
Expand Down Expand Up @@ -68,7 +69,7 @@ public CompletableFuture<List<Double>> embedText(String text) {
return embedding;

} catch (Exception e) {
logger.severe("Failed to generate text embedding" + e.getMessage());
logger.error("Failed to generate text embedding{}", e.getMessage());
return createZeroVector();
}
});
Expand All @@ -95,7 +96,7 @@ public double cosineSimilarity(List<Double> vector1, List<Double> vector2) {
return dotProduct / (norm1 * norm2);

} catch (Exception e) {
logger.severe("Failed to compute cosine similarity" + e.getMessage());
logger.error("Failed to compute cosine similarity{}", e.getMessage());
return 0.0;
}
}
Expand All @@ -113,7 +114,7 @@ public double euclideanDistance(List<Double> vector1, List<Double> vector2) {
return v1.getDistance(v2);

} catch (Exception e) {
logger.severe("Failed to compute Euclidean distance" + e.getMessage());
logger.error("Failed to compute Euclidean distance{}", e.getMessage());
return Double.MAX_VALUE;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Logger;
import java.util.stream.Collectors;

import com.alicloud.openservices.tablestore.SyncClient;
Expand All @@ -42,14 +41,16 @@
import io.agentscope.runtime.engine.schemas.Message;
import io.agentscope.runtime.engine.schemas.TextContent;
import io.agentscope.runtime.engine.services.memory.service.MemoryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* TableStore-based implementation of memory service
* Uses Aliyun TableStore KnowledgeStore for persistent storage with search capabilities
*/
public class TableStoreMemoryService implements MemoryService {

private static final Logger logger = Logger.getLogger(TableStoreMemoryService.class.getName());
private static final Logger logger = LoggerFactory.getLogger(MemoryService.class);
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

private static final String DEFAULT_SESSION_ID = "default";
Expand Down Expand Up @@ -96,7 +97,7 @@ public CompletableFuture<Void> start() {
.build();

knowledgeStore.initTable();
logger.info("TableStore memory service started with table: " + tableName);
logger.info("TableStore memory service started with table: {}", tableName);
});
}

Expand All @@ -114,7 +115,7 @@ public CompletableFuture<Void> stop() {
public CompletableFuture<Boolean> health() {
return CompletableFuture.supplyAsync(() -> {
if (knowledgeStore == null) {
logger.warning("TableStore memory service is not started");
logger.warn("TableStore memory service is not started");
return false;
}

Expand All @@ -126,7 +127,7 @@ public CompletableFuture<Boolean> health() {
knowledgeStore.searchDocuments(request);
return true;
} catch (Exception e) {
logger.severe("TableStore memory service health check failed: " + e.getMessage());
logger.error("TableStore memory service health check failed: {}", e.getMessage());
return false;
}
});
Expand All @@ -146,7 +147,7 @@ public CompletableFuture<Void> addMemory(String userId, List<Message> messages,
knowledgeStore.putDocument(document);
}

logger.fine("Added " + messages.size() + " messages to TableStore for user: " + userId);
logger.info("Added {} messages to TableStore for user: {}", messages.size(), userId);
});
}

Expand Down Expand Up @@ -258,8 +259,7 @@ public CompletableFuture<Void> deleteMemory(String userId, Optional<String> sess
knowledgeStore.deleteDocument(hit.getDocument().getDocumentId());
}

logger.fine("Deleted memory for user: " + userId +
(sessionId.isPresent() ? ", session: " + sessionId.get() : ""));
logger.info("Deleted memory for user: {}{}", userId, sessionId.isPresent() ? ", session: " + sessionId.get() : "");
});
}

Expand Down Expand Up @@ -311,7 +311,7 @@ private Document convertMessageToDocument(Message message, String userId, String
metadata.put("message_metadata", metadataJson);
}
} catch (Exception e) {
logger.severe("Failed to serialize message content: " + e.getMessage());
logger.error("Failed to serialize message content: {}", e.getMessage());
}

document.setMetadata(metadata);
Expand Down Expand Up @@ -353,7 +353,7 @@ private Message convertDocumentToMessage(Document document) {
message.setMetadata(messageMetadata);
}
} catch (Exception e) {
logger.severe("Failed to deserialize message content: " + e.getMessage());
logger.error("Failed to deserialize message content: {}", e.getMessage());
}

return message;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,20 @@
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
import java.util.stream.Collectors;

import io.agentscope.runtime.engine.schemas.Message;
import io.agentscope.runtime.engine.schemas.Session;
import io.agentscope.runtime.engine.services.memory.service.SessionHistoryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* In-memory implementation of session history service
* Stores all session data in dictionary, suitable for development, testing and scenarios that don't require persistence
*/
public class InMemorySessionHistoryService implements SessionHistoryService {
public static Logger logger = Logger.getLogger(InMemorySessionHistoryService.class.getName());
private static final Logger logger = LoggerFactory.getLogger(InMemorySessionHistoryService.class);

private final Map<String, Map<String, Session>> sessions = new ConcurrentHashMap<>();

Expand Down Expand Up @@ -122,8 +123,7 @@ public CompletableFuture<Void> appendMessage(Session session, List<Message> mess
if (existingSession != null) {
existingSession.getMessages().addAll(messages);
} else {
logger.severe("Warning: Session " + session.getId() +
" not found in storage for append_message.");
logger.error("Warning: Session {} not found in storage for append_message.", session.getId());
}
}
});
Expand Down
Loading
Loading