feat: 实现 AgentScope ReAct Runner 两阶段执行并重构事件处理
This commit is contained in:
@@ -1,45 +0,0 @@
|
||||
# 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`
|
||||
|
||||
```python
|
||||
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 的消息
|
||||
- 限制返回数量
|
||||
|
||||
## 状态
|
||||
|
||||
- [ ] 待处理
|
||||
Reference in New Issue
Block a user