aps-agent/server/agent_core/context.py

28 lines
1.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================================================
# 对话历史规范化(moduleId: core-context, 可重生 ✅)
# 只做纯数据整形:把网关收到的历史消息收敛成 {role, text}。
# 多轮语义理解统一交给 Pi Agent,本模块不做任何规则判断。
# ============================================================
from __future__ import annotations
from typing import Any
HistoryItem = dict[str, str] # {role: user|agent, text: str}
def normalize_history(raw: list[Any] | None, *, limit: int = 12) -> list[HistoryItem]:
out: list[HistoryItem] = []
for m in raw or []:
if not isinstance(m, dict):
continue
role = str(m.get("role") or "")
if role in ("assistant", "bot", "ai"):
role = "agent"
if role not in ("user", "agent"):
continue
text = str(m.get("text") or m.get("content") or "").strip()
if not text:
continue
out.append({"role": role, "text": text})
return out[-limit:]