feat: Implement AI Agent Workflow Binding functionality

- Added aiAgentWorkflowBindingRepository for managing workflow bindings associated with AI agents.
- Enhanced agentRevisionService to include workflow bindings in agent revisions.
- Updated aIAgentService to handle workflow bindings during agent creation and updates.
- Introduced ai_agent_workflow_binding_service for managing workflow binding logic.
- Created new API endpoints for fetching, creating, updating, and deleting AI workflows.
- Developed a new dashboard page for managing AI workflows.
- Updated frontend components to support workflow binding management in agent configuration.
- Added necessary tests for workflow binding functionality and updated existing tests for compatibility.
- Translated relevant UI texts and messages for workflow management.
This commit is contained in:
mlogclub
2026-07-25 15:24:49 +08:00
parent e4ad83dc20
commit 7b86fd1f09
21 changed files with 590 additions and 136 deletions
+16
View File
@@ -65,6 +65,7 @@ var Models = []any{
&AgentRunQualityFeedback{},
&AIWorkflow{},
&AIWorkflowVersion{},
&AIAgentWorkflowBinding{},
&AIWorkflowRun{},
&AIWorkflowNodeRun{},
&ConversationInterrupt{},
@@ -664,6 +665,21 @@ type AIWorkflowVersion struct {
AuditFields
}
// AIAgentWorkflowBinding binds an Agent to one immutable, published workflow
// version. Workflows are maintained independently and can be reused by many
// Agents; Agent publication snapshots the binding set for reproducible runs.
type AIAgentWorkflowBinding struct {
ID int64 `gorm:"primaryKey;autoIncrement"`
AIAgentID int64 `gorm:"type:bigint;not null;index;uniqueIndex:uk_agent_workflow_binding"`
WorkflowID int64 `gorm:"type:bigint;not null;index"`
WorkflowVersionID int64 `gorm:"type:bigint;not null;index;uniqueIndex:uk_agent_workflow_binding"`
ToolName string `gorm:"type:varchar(100);not null;default:''"`
TriggerInstruction string `gorm:"type:text"`
Priority int `gorm:"type:int;not null;default:0;index"`
Enabled bool `gorm:"not null;default:true;index"`
AuditFields
}
// AIWorkflowRun 表示一次会话 workflow 执行记录。
type AIWorkflowRun struct {
ID int64 `gorm:"primaryKey;autoIncrement"`