Files
aiagent/docs/工作文档0629.md
renjianbo beff3fac8d 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>
2026-06-29 01:17:21 +08:00

3.1 KiB
Raw Blame History

工作文档 2026-06-29

一、修复删除智能体 500 错误

问题

Android 端删除智能体时返回 HTTP 500:DATABASE_ERROR: Unknown column 'tasks.blocks'

根因

  1. tasks 表缺少 blocks 和 owner 两个列(SQLAlchemy 模型已定义但数据库未同步)
  2. 删除 Agent 时 assigned_tasks backref 触发懒加载,查询了不存在的 tasks.blocks 列
  3. 修复列缺失后,7 个外键表(agent_llm_logs、agent_permissions、agent_schedules、executions、team_members、goals、tasks)FK 约束阻止删除

修复

数据库:手动添加缺失列

ALTER TABLE tasks ADD COLUMN owner VARCHAR(200);
ALTER TABLE tasks ADD COLUMN blocks JSON;

后端 backend/app/api/agents.py:

  • 删除前先清理关联表记录(agent_llm_logs、agent_permissions、agent_schedules、executions、team_members)
  • 解除分配关系(goals.main_agent_id、tasks.assigned_agent_id 设为 NULL)
  • 最后删除 Agent 自身

影响文件

  • backend/app/api/agents.py

二、修复不同人格 Agent 回复一模一样

问题

豆包(温暖陪伴风格)和 gpt(通用助手风格)对同一句话回复完全一致。

根因

后端 ChatRequest.prompt_sections_enabled 默认为 true,Python 端 PromptComposer 的英文通用段(capabilities、tool_instructions、safety_rules、output_style)覆盖了中文人格 system prompt,导致所有 Agent 回复趋同。

修复

Android ChatRequest.promptSectionsEnabled 默认值改为 false,绕过 PromptComposer,直接使用 Agent 原始 system prompt。

影响文件

  • android/.../data/remote/dto/Dtos.kt — ChatRequest.promptSectionsEnabled: Boolean = false

三、移除硬编码人格模板,改为动态生成

问题

CreateAgentRequest 中有 4 个硬编码模板(DOUBAO_TRAITS、CODER_TRAITS、ARCHITECT_TRAITS、GENERAL_TRAITS),通过 detectStyle() 关键词匹配选择模板。用户在移动端创建智能体时人格被写死,无法灵活定义。

修复

移除所有硬编码模板和 detectStyle(),buildSystemPrompt() 改为动态生成:

你是{name}。

{description}  ← 用户在创建时填写的描述直接成为人格

## 可用工具
...

## 安全边界
...

影响文件

  • android/.../data/remote/dto/Dtos.kt

测试验证

创建「豆包2号」(描述:温暖陪伴风格)和「gpt2号」(描述:专业高效风格),发送同一句话「我想休假了」:

  • 豆包2号:哎呀,想休假了呀~ 🏖️ 完全理解你!...说吧,我在听~ 😊
  • gpt2号:理解。休假是对长期压力的有效调节。...直接说你的情况。

风格差异明显,符合预设。


变更文件清单

文件 变更
backend/app/api/agents.py 删除 Agent 前清理关联表 + FK 解绑
android/.../data/remote/dto/Dtos.kt 移除硬编码模板,动态生成 system prompt;promptSectionsEnabled 默认 false
agent_db.tasks 表 添加 owner、blocks 列