refactor: remove graph tools references and related logic from AIAgent and workflows

This commit is contained in:
mlogclub
2026-06-26 18:56:09 +08:00
parent 015b57bfe7
commit d4ff0980c4
14 changed files with 48 additions and 199 deletions
@@ -2,9 +2,7 @@ package runtime
import (
"encoding/json"
"strings"
"agent-desk/internal/ai/workflow/compiler"
"agent-desk/internal/ai/workflow/dsl"
"agent-desk/internal/models"
"agent-desk/internal/pkg/enums"
@@ -16,7 +14,6 @@ import (
type resolvedWorkflow struct {
Definition dsl.Definition
Compiled compiler.Result
WorkflowID int64
VersionID int64
}
@@ -35,7 +32,6 @@ func resolveAgentWorkflow(aiAgent models.AIAgent) (resolvedWorkflow, error) {
}
return resolvedWorkflow{
Definition: def,
Compiled: compiler.Compile(def),
WorkflowID: version.WorkflowID,
VersionID: version.ID,
}, nil
@@ -46,15 +42,5 @@ func prepareWorkflowAgent(aiAgent models.AIAgent) (models.AIAgent, resolvedWorkf
if err != nil {
return aiAgent, resolvedWorkflow{}, err
}
if strings.TrimSpace(workflow.Compiled.Appendix) == "" {
return aiAgent, workflow, nil
}
prompt := strings.TrimSpace(aiAgent.SystemPrompt)
appendix := strings.TrimSpace(workflow.Compiled.Appendix)
if prompt == "" {
aiAgent.SystemPrompt = appendix
return aiAgent, workflow, nil
}
aiAgent.SystemPrompt = prompt + "\n\n" + appendix
return aiAgent, workflow, nil
}
@@ -46,6 +46,40 @@ func TestToWorkflowSummaryPreservesInterruptCheckpoint(t *testing.T) {
}
}
func TestPrepareWorkflowAgentDoesNotInjectWorkflowAppendix(t *testing.T) {
db := setupWorkflowResumeTestDB(t)
definitionJSON := mustMarshalDefinition(t, dsl.Definition{
SchemaVersion: 1,
EntryNodeID: "start",
Nodes: []dsl.Node{
{ID: "start", Type: workflowregistry.NodeTypeStart, Name: "Start"},
{ID: "handoff", Type: workflowregistry.NodeTypeHandoffToHuman, Name: "Handoff"},
},
Edges: []dsl.Edge{{ID: "edge_start_handoff", Source: "start", Target: "handoff"}},
})
version := models.AIWorkflowVersion{
WorkflowID: 1,
Version: 1,
Status: enums.StatusOk,
Definition: definitionJSON,
}
if err := db.Create(&version).Error; err != nil {
t.Fatalf("create workflow version: %v", err)
}
agent, _, err := prepareWorkflowAgent(models.AIAgent{
ID: 1,
SystemPrompt: "保持简洁回答。",
WorkflowVersionID: version.ID,
})
if err != nil {
t.Fatalf("prepareWorkflowAgent() error = %v", err)
}
if agent.SystemPrompt != "保持简洁回答。" {
t.Fatalf("expected system prompt to stay unchanged, got %q", agent.SystemPrompt)
}
}
func TestServiceResumeUsesWorkflowCheckpointData(t *testing.T) {
db := setupWorkflowResumeTestDB(t)
def := runtimeHumanConfirmDefinition()