Files
social-app/docs/bugs/agent-history-messages.md
T

1.4 KiB

Agent 历史消息获取重构

Bug 描述

_build_recent_context_messages 函数需要重构。

问题

当前实现直接使用 SQL 查询 AgentChatMessage 模型,但存在以下问题:

  1. 数据格式复杂:落库后的消息包含多种角色(user/assistant/tool),content 可能是 dict 或 str
  2. 需要转换:需要将数据库模型正确转换为 Agent 可用的消息格式(符合 AG-UI Message 规范)
  3. Service 缺失:没有使用 Repository/Service 模式,直接操作数据库

当前代码(已清空)

位置:src/core/agentscope/runtime/tasks.py

async def _build_recent_context_messages(
    *,
    session: Any,
    thread_id: str,
    current_run_id: str,
    max_messages: int = 20,
) -> list[dict[str, Any]]:
    # TODO: 重新设计
    # 问题:落库后的消息包含多种角色(user/assistant/tool),需要正确转换为 Agent 可用的消息格式
    # 方案:使用 AgentRepository 或新建专门的 Service 方法来处理
    return []

预期方案

  1. AgentRepository 中添加 get_recent_messages 方法
  2. 或创建专门的 AgentMessageService
  3. 需要处理:
    • 消息角色转换(user/assistant/tool -> AG-UI 格式)
    • content 可能是 dict(包含 attachments 等)或 str
    • 排除当前 run 的消息
    • 限制返回数量

状态

  • 待处理