Files
aiagent/backend/app/models/execution.py
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

46 lines
2.0 KiB
Python
Raw 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.
"""
执行记录模型
"""
from sqlalchemy import Column, String, Text, Integer, DateTime, JSON, ForeignKey, Index, func
from sqlalchemy.dialects.mysql import CHAR
from sqlalchemy.orm import relationship
from app.core.database import Base
import uuid
class Execution(Base):
"""执行记录表"""
__tablename__ = "executions"
id = Column(CHAR(36), primary_key=True, default=lambda: str(uuid.uuid4()), comment="执行ID")
agent_id = Column(CHAR(36), ForeignKey("agents.id"), nullable=True, comment="智能体ID")
workflow_id = Column(CHAR(36), ForeignKey("workflows.id"), nullable=True, comment="工作流ID")
input_data = Column(JSON, comment="输入数据")
output_data = Column(JSON, comment="输出数据")
status = Column(
String(32),
nullable=False,
comment="状态: pending/running/completed/failed/awaiting_approval",
)
error_message = Column(Text, comment="错误信息")
execution_time = Column(Integer, comment="执行时间(ms)")
task_id = Column(String(100), comment="Celery任务ID")
schedule_id = Column(
CHAR(36), ForeignKey("agent_schedules.id"), nullable=True, comment="定时任务ID"
)
parent_execution_id = Column(
CHAR(36), ForeignKey("executions.id"), nullable=True, comment="父执行ID"
)
depth = Column(Integer, default=0, nullable=False, comment="执行深度根为0")
pause_state = Column(JSON, nullable=True, comment="挂起快照(审批节点 HITL恢复时消费")
goal_id = Column(CHAR(36), ForeignKey("goals.id"), nullable=True, comment="关联目标ID")
workspace_id = Column(CHAR(36), ForeignKey("workspaces.id"), nullable=True, comment="所属工作区ID")
created_at = Column(DateTime, default=func.now(), comment="创建时间")
# 关系
agent = relationship("Agent", backref="executions")
workflow = relationship("Workflow", backref="executions")
def __repr__(self):
return f"<Execution(id={self.id}, status={self.status})>"