fix: 대화 히스토리에서 embed 내용 유실 - clarify 맥락 보존

- _get_channel_history에서 embed title/description/fields 추출
- 봇의 clarify 질문이 히스토리에 포함되어 맥락 유지
- planner 프롬프트 강화: 불필요한 태스크 분할 방지
This commit is contained in:
2026-03-07 01:22:08 +09:00
parent 0fa62d24e9
commit 80a5560134
3 changed files with 355 additions and 4 deletions

View File

@@ -68,7 +68,26 @@ async def _get_channel_history(channel: discord.TextChannel, limit: int = 10) ->
messages = []
async for msg in channel.history(limit=limit + 1):
role = "assistant" if msg.author.bot else "user"
messages.append(f"[{role}] {msg.content[:300]}")
# 텍스트 내용
content = msg.content[:300] if msg.content else ""
# Embed 내용도 포함 (봇의 clarify 질문 등)
if msg.embeds:
embed_parts = []
for embed in msg.embeds:
if embed.title:
embed_parts.append(embed.title)
if embed.description:
embed_parts.append(embed.description[:200])
for field in embed.fields:
embed_parts.append(f"{field.name}: {field.value[:100]}")
if embed_parts:
embed_text = " | ".join(embed_parts)
content = f"{content} {embed_text}".strip() if content else embed_text
if content:
messages.append(f"[{role}] {content}")
messages.reverse()
if messages: