fix: delete agent 500 error + dynamic personality + deployment guide
- Fix delete agent 500: clean up FK records (agent_llm_logs, permissions, schedules, executions, team_members) and unbind goals/tasks before delete - Remove hardcoded personality templates in Android, replace with dynamic system prompt generation from name + description - Set promptSectionsEnabled=false to bypass PromptComposer for personality - Add Tencent Cloud Linux deployment guide (Docker Compose) - Accumulated backend service updates, frontend UI fixes, Android app changes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,43 @@ class AgentContext:
|
||||
if not self._messages:
|
||||
self._system_prompt = prompt
|
||||
|
||||
# ──────────────────── 消息操作(为 Compaction 提供) ────────────────────
|
||||
|
||||
@property
|
||||
def raw_messages(self) -> List[Dict[str, Any]]:
|
||||
"""获取原始消息列表(不含自动 prepend 的 system prompt)。
|
||||
|
||||
用于 CompactionEngine 直接操作 _messages,避免 system prompt 重复。
|
||||
"""
|
||||
return self._messages
|
||||
|
||||
def replace_internal_messages(self, new_messages: List[Dict[str, Any]]) -> None:
|
||||
"""替换全部内部消息(CompactionEngine 用)。"""
|
||||
self._messages = new_messages
|
||||
|
||||
def remove_messages_before(self, index: int) -> None:
|
||||
"""移除指定索引之前的所有消息(保留 system prompt 在首位时的位置)。
|
||||
|
||||
注意:不修改 _system_prompt;调用方通过 messages 属性获取时会自动 prepend。
|
||||
"""
|
||||
if index > 0:
|
||||
self._messages = self._messages[index:]
|
||||
|
||||
def replace_message_range(
|
||||
self, start: int, end: int, new_messages: List[Dict[str, Any]]
|
||||
) -> None:
|
||||
"""替换消息列表中 [start, end) 区间的消息。"""
|
||||
self._messages[start:end] = new_messages
|
||||
|
||||
def estimate_tokens(self, token_counter=None) -> int:
|
||||
"""估算当前消息列表的总 token 数(含 system prompt)。"""
|
||||
from app.core.token_counter import TokenCounter
|
||||
if token_counter is None:
|
||||
token_counter = TokenCounter()
|
||||
return token_counter.count_messages(self.messages)
|
||||
|
||||
# ──────────────────── 生命周期 ────────────────────
|
||||
|
||||
def reset(self) -> None:
|
||||
"""重置上下文(保留 system prompt 和 session_id)。"""
|
||||
self._messages = []
|
||||
|
||||
Reference in New Issue
Block a user