Skip to content

[Bug] Agent-to-Agent 对话无法清空,导致上下文超限 #526

@embedder1616

Description

@embedder1616

Pre-checks

Deployment Method

Docker

Steps to Reproduce

问题描述

Agent 之间(Agent-to-Agent)的对话历史无法清空,导致 LLM 上下文超出模型处理能力。

复现场景

  1. Agent A(LLM平台API) 使用 send_message_to_agent 向 Agent B (本地部署LLM)发送消息协作
  2. 多轮对话后,Agent B 的对话上下文超出限制
  3. 尝试清空对话,发现:
    • ❌ Web 界面没有删除对话按钮
    • ❌ 后端没有 DELETE /agents/{id}/sessions/{session_id} API
    • ❌ Agent 间对话(source_channel=agent)在「Other Users」管理界面中也看不到
Image

Expected vs Actual Behavior

预期行为

  1. 用户应该能够清空任意 Agent 的对话历史(包括 Agent 间对话)
  2. 或者平台提供自动截断机制,防止单个会话无限增长

实际影响

  • Agent 间通信变得不可用,无法响应任何请求
  • 用户只能通过数据库手动删除记录

建议方案

  1. 后端 API:添加 DELETE /api/agents/{agent_id}/sessions/{session_id} 接口
  2. 前端 UI:在 Agent 对话界面添加删除/清空按钮
  3. 自动截断:在 ChatMessage 模型添加自动清理逻辑,当消息数超过阈值时清理旧消息
  4. Agent 间对话管理:在管理后台的「Other Users」Tab 中显示 Agent 间对话,并支持删除

相关代码

  • backend/app/models/chat_session.py - 会话模型
  • backend/app/models/audit.py - ChatMessage 模型
  • backend/app/api/agents.py - Agent API(缺少删除 session)
  • frontend/src/pages/AgentDetail.tsx - 前端页面(缺少删除按钮)

相关 Issue


Environment: Clawith v1.9.2
Date: 2026-05-06

Logs / Screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions