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:
2026-06-29 01:17:21 +08:00
parent 86b98865e3
commit beff3fac8d
1084 changed files with 117315 additions and 1281 deletions

View File

@@ -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 = []