问题描述
当前 TodoTool 硬编码使用 Java NIO 文件 API 存储任务列表,不支持 Redis 等分布式存储后端,导致:
- 多实例部署受限 :多个 agent 实例无法共享同一份 Todo 数据,需依赖共享文件系统
- 无法利用框架已有的 Redis 能力 :框架已提供 BaseKVStore + RedisStore ,但 TodoTool 未使用
- 缺少存储抽象层 :没有 TodoStorage 接口,无法扩展其他存储实现
当前实现
TodoTool.java 直接使用文件存储:
// harness/tools/TodoTool.java
public List<TodoItem> load(String sessionId) throws IOException {
Path file = filePath(sessionId); // workspace.resolve
(sessionId).resolve("todo.json")
String json = Files.readString(file);
...
}
public void save(String sessionId, List<TodoItem> todos) throws
IOException {
Path file = filePath(sessionId);
Files.createDirectories(file.getParent());
Files.writeString(file, JsonUtils.safeJsonDumps(todos, "[]"));
}
存储路径: {workspace}/{sessionId}/todo.json
期望基于框架已有的 Redis 基础设施,todo tool也支持该存储方式
问题描述
当前 TodoTool 硬编码使用 Java NIO 文件 API 存储任务列表,不支持 Redis 等分布式存储后端,导致:
当前实现
TodoTool.java 直接使用文件存储:
存储路径: {workspace}/{sessionId}/todo.json
期望基于框架已有的 Redis 基础设施,todo tool也支持该存储方式