refactor: 将客服后端重构为宿主可嵌入模块

- 注入数据库、运行时配置、统一响应、文件存储和平台 AI 能力,补充业务读写工具与客户快捷操作契约。

- 移除模块内重复的组织、客户、工单、标签、技能、旧工作流、MCP 和迁移实现,将身份权限与业务主体交由宿主管理。

- 使用 libSQL 重构向量存储,并完善图片消息、访客身份、排队调度、企业微信和支持聊天页面。

- 统一 HTTP、DTO 与 WebSocket 的 snake_case 协议,补齐模块初始化、业务动作和公共载荷等回归测试。
This commit is contained in:
t
2026-08-28 22:23:13 +08:00
parent 6845c728f8
commit 18c9354095
377 changed files with 13199 additions and 22881 deletions
+39 -41
View File
@@ -4,62 +4,60 @@ import "code.tczkiot.com/wlw/ai-agent/internal/pkg/enums"
type AgentRunResponse struct {
ID int64 `json:"id"`
ConversationID int64 `json:"conversationId"`
AIAgentID int64 `json:"aiAgentId"`
AgentRevisionID int64 `json:"agentRevisionId"`
SourceMessageID int64 `json:"sourceMessageId"`
WorkflowRunID int64 `json:"workflowRunId"`
ConversationID int64 `json:"conversation_id"`
AIAgentID int64 `json:"ai_agent_id"`
AgentRevisionID int64 `json:"agent_revision_id"`
SourceMessageID int64 `json:"source_message_id"`
Status string `json:"status"`
PromptTokens int `json:"promptTokens"`
CompletionTokens int `json:"completionTokens"`
StartedAt string `json:"startedAt"`
EndedAt string `json:"endedAt"`
DurationMS int64 `json:"durationMs"`
ErrorMessage string `json:"errorMessage"`
TraceData string `json:"traceData"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
PromptTokens int `json:"prompt_tokens"`
CompletionTokens int `json:"completion_tokens"`
StartedAt string `json:"started_at"`
EndedAt string `json:"ended_at"`
DurationMS int64 `json:"duration_ms"`
ErrorMessage string `json:"error_message"`
TraceData string `json:"trace_data"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
Steps []AgentStepResponse `json:"steps,omitempty"`
ToolCalls []AgentToolCallResponse `json:"toolCalls,omitempty"`
QualityFeedback *AgentRunQualityFeedbackResponse `json:"qualityFeedback,omitempty"`
ToolCalls []AgentToolCallResponse `json:"tool_calls,omitempty"`
QualityFeedback *AgentRunQualityFeedbackResponse `json:"quality_feedback,omitempty"`
}
type AgentRunQualityFeedbackResponse struct {
ID int64 `json:"id"`
AgentRunID int64 `json:"agentRunId"`
ResolutionStatus enums.AgentRunResolutionStatus `json:"resolutionStatus"`
EvidenceStatus enums.AgentRunEvidenceStatus `json:"evidenceStatus"`
AgentRunID int64 `json:"agent_run_id"`
ResolutionStatus enums.AgentRunResolutionStatus `json:"resolution_status"`
EvidenceStatus enums.AgentRunEvidenceStatus `json:"evidence_status"`
Comment string `json:"comment"`
UpdateUserName string `json:"updateUserName"`
UpdatedAt string `json:"updatedAt"`
UpdateUserName string `json:"update_user_name"`
UpdatedAt string `json:"updated_at"`
}
type AgentStepResponse struct {
ID int64 `json:"id"`
AgentRunID int64 `json:"agentRunId"`
WorkflowRunID int64 `json:"workflowRunId"`
StepType string `json:"stepType"`
StepCode string `json:"stepCode"`
AgentRunID int64 `json:"agent_run_id"`
StepType string `json:"step_type"`
StepCode string `json:"step_code"`
Status string `json:"status"`
InputPreview string `json:"inputPreview"`
OutputPreview string `json:"outputPreview"`
ErrorMessage string `json:"errorMessage"`
StartedAt string `json:"startedAt"`
EndedAt string `json:"endedAt"`
DurationMS int `json:"durationMs"`
InputPreview string `json:"input_preview"`
OutputPreview string `json:"output_preview"`
ErrorMessage string `json:"error_message"`
StartedAt string `json:"started_at"`
EndedAt string `json:"ended_at"`
DurationMS int `json:"duration_ms"`
}
type AgentToolCallResponse struct {
ID int64 `json:"id"`
AgentRunID int64 `json:"agentRunId"`
AgentStepID int64 `json:"agentStepId"`
ToolCode string `json:"toolCode"`
RiskLevel string `json:"riskLevel"`
RequireConfirm bool `json:"requireConfirm"`
AgentRunID int64 `json:"agent_run_id"`
AgentStepID int64 `json:"agent_step_id"`
ToolCode string `json:"tool_code"`
RiskLevel string `json:"risk_level"`
RequireConfirm bool `json:"require_confirm"`
Status string `json:"status"`
ArgumentsPreview string `json:"argumentsPreview"`
ResultPreview string `json:"resultPreview"`
ErrorMessage string `json:"errorMessage"`
DurationMS int `json:"durationMs"`
CreatedAt string `json:"createdAt"`
ArgumentsPreview string `json:"arguments_preview"`
ResultPreview string `json:"result_preview"`
ErrorMessage string `json:"error_message"`
DurationMS int `json:"duration_ms"`
CreatedAt string `json:"created_at"`
}