refactor(storage): 统一消息存储到 Core 层
问题:Server 端只存储最终文本响应,工具调用的中间消息丢失。 解决方案: - Agent.chat() 返回 ChatResult,包含完整消息链 - Server SessionManager 简化为只管理会话元数据 - 消息 API 改为从 Core Storage 读取 - 移除 Server 端的消息存储和 addMessage 方法 影响范围: - core: Agent.chat() 返回类型变更 - server: SessionManager 接口变更,移除消息存储 - server: GET /sessions/:id/messages 从 Core 读取 - server: 移除 POST /sessions/:id/messages 端点
This commit is contained in:
+11
-16
@@ -106,24 +106,19 @@ export async function handleWebSocketMessage(
|
||||
case 'message': {
|
||||
// 用户发送消息
|
||||
const content = message.payload?.content || '';
|
||||
const userMessage = sessionManager.addMessage(sessionId, {
|
||||
role: 'user',
|
||||
content,
|
||||
|
||||
// 广播确认收到消息
|
||||
broadcastToSession(sessionId, {
|
||||
type: 'message_received',
|
||||
sessionId,
|
||||
payload: { content },
|
||||
});
|
||||
|
||||
if (userMessage) {
|
||||
// 广播用户消息
|
||||
broadcastToSession(sessionId, {
|
||||
type: 'message_received',
|
||||
sessionId,
|
||||
payload: userMessage,
|
||||
});
|
||||
|
||||
// 调用 Agent 处理消息(异步,不阻塞)
|
||||
processMessage(sessionId, content).catch((error) => {
|
||||
console.error('[WS] Agent processing error:', error);
|
||||
});
|
||||
}
|
||||
// 调用 Agent 处理消息(异步,不阻塞)
|
||||
// 消息存储由 Core Agent 负责
|
||||
processMessage(sessionId, content).catch((error) => {
|
||||
console.error('[WS] Agent processing error:', error);
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user