记忆¶
记忆负责管理 AgentScope 中智能体的对话历史和上下文。
Memory 接口¶
所有记忆实现都扩展 Memory 接口:
public interface Memory extends StateModule {
void addMessage(Msg message);
List<Msg> getMessages();
void deleteMessage(int index);
void clear();
}
InMemoryMemory¶
默认的内存实现:在内存中存储记忆
import io.agentscope.core.memory.InMemoryMemory;
import io.agentscope.core.memory.Memory;
Memory memory = new InMemoryMemory();
// 智能体自动使用
ReActAgent agent = ReActAgent.builder()
.name("Assistant")
.model(model)
.memory(memory) // 智能体在此存储消息
.build();
使用记忆¶
使用内置的 InMemoryMemory 实现¶
智能体自动管理内存:
ReActAgent agent = ReActAgent.builder()
.name("Assistant")
.model(model)
.memory(new InMemoryMemory())
.build();
// 消息自动存储
agent.call(msg1).block();
agent.call(msg2).block();
// 访问历史
List<Msg> history = agent.getMemory().getAllMessages();
System.out.println("消息总数: " + history.size());
使用 mem0¶
import io.agentscope.core.ReActAgent;
import io.agentscope.core.memory.LongTermMemoryMode;
import io.agentscope.core.memory.mem0.Mem0LongTermMemory;
Mem0LongTermMemory longTermMemory =
Mem0LongTermMemory.builder()
.agentName("SmartAssistant")
.userId("static-control01126")
.apiBaseUrl(mem0BaseUrl)
.apiKey(System.getenv("MEM0_API_KEY"))
.build();
ReActAgent agent =
ReActAgent.builder()
.name("Assistant")
.model(
DashScopeChatModel.builder()
.apiKey(dashscopeApiKey)
.modelName("qwen-plus")
.build())
.longTermMemory(longTermMemory)
.longTermMemoryMode(LongTermMemoryMode.STATIC_CONTROL)
.build();
查看完整的 Mem0 示例:
examples/src/main/java/io/agentscope/examples/Mem0Example.java
运行示例:
需要配置 MEM0_API_KEY 环境变量
cd examples
mvn exec:java -Dexec.mainClass="io.agentscope.examples.Mem0Example"
使用 ReMe¶
import io.agentscope.core.ReActAgent;
import io.agentscope.core.memory.LongTermMemoryMode;
import io.agentscope.core.memory.reme.ReMeLongTermMemory;
ReMeLongTermMemory longTermMemory =
ReMeLongTermMemory.builder()
.userId("example_user")
.apiBaseUrl("http://localhost:8002")
.build();
ReActAgent agent =
ReActAgent.builder()
.name("Assistant")
.model(
DashScopeChatModel.builder()
.apiKey(dashscopeApiKey)
.modelName("qwen-plus")
.build())
.longTermMemory(longTermMemory)
.longTermMemoryMode(LongTermMemoryMode.STATIC_CONTROL)
.build();
查看完整的 ReMe 示例:
examples/advanced/src/main/java/io/agentscope/examples/advanced/ReMeExample.java
运行示例:
需要配置 REME_API_BASE_URL 环境变量(可选,默认为 http://localhost:8002)
cd examples/advanced
mvn exec:java -Dexec.mainClass="io.agentscope.examples.advanced.ReMeExample"