From 7f5908e77ae0e7fef4b7901341b8c2c4bbb74b28 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 15 Jan 2026 20:53:57 +0100 Subject: pkg/aflow: make LLM model per-agent rather than per-flow Having LLM model per-agent is even more flexible than per-flow. We can have some more complex tasks during patch generation with the most elaborate model, but also some simpler ones with less elaborate models. --- pkg/aflow/flow/assessment/kcsan.go | 2 +- pkg/aflow/flow/assessment/moderation.go | 2 +- pkg/aflow/flow/patching/patching.go | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) (limited to 'pkg/aflow/flow') diff --git a/pkg/aflow/flow/assessment/kcsan.go b/pkg/aflow/flow/assessment/kcsan.go index 67d695eb9..6bfc7bb12 100644 --- a/pkg/aflow/flow/assessment/kcsan.go +++ b/pkg/aflow/flow/assessment/kcsan.go @@ -23,7 +23,6 @@ func init() { ai.WorkflowAssessmentKCSAN, "assess if a KCSAN report is about a benign race that only needs annotations or not", &aflow.Flow{ - Model: aflow.GoodBalancedModel, Root: &aflow.Pipeline{ Actions: []aflow.Action{ kernel.Checkout, @@ -31,6 +30,7 @@ func init() { codesearcher.PrepareIndex, &aflow.LLMAgent{ Name: "expert", + Model: aflow.GoodBalancedModel, Reply: "Explanation", Outputs: aflow.LLMOutputs[struct { Confident bool `jsonschema:"If you are confident in the verdict of the analysis or not."` diff --git a/pkg/aflow/flow/assessment/moderation.go b/pkg/aflow/flow/assessment/moderation.go index 8d9ac4a0b..b13ee1e7d 100644 --- a/pkg/aflow/flow/assessment/moderation.go +++ b/pkg/aflow/flow/assessment/moderation.go @@ -33,7 +33,6 @@ func init() { ai.WorkflowModeration, "assess if a bug report is consistent and actionable or not", &aflow.Flow{ - Model: aflow.GoodBalancedModel, Root: &aflow.Pipeline{ Actions: []aflow.Action{ aflow.NewFuncAction("extract-crash-type", extractCrashType), @@ -42,6 +41,7 @@ func init() { codesearcher.PrepareIndex, &aflow.LLMAgent{ Name: "expert", + Model: aflow.GoodBalancedModel, Reply: "Explanation", Outputs: aflow.LLMOutputs[struct { Confident bool `jsonschema:"If you are confident in the verdict of the analysis or not."` diff --git a/pkg/aflow/flow/patching/patching.go b/pkg/aflow/flow/patching/patching.go index 766cf089f..856962e6c 100644 --- a/pkg/aflow/flow/patching/patching.go +++ b/pkg/aflow/flow/patching/patching.go @@ -43,7 +43,6 @@ func init() { ai.WorkflowPatching, "generate a kernel patch fixing a provided bug reproducer", &aflow.Flow{ - Model: aflow.BestExpensiveModel, Root: &aflow.Pipeline{ Actions: []aflow.Action{ baseCommitPicker, @@ -54,6 +53,7 @@ func init() { codesearcher.PrepareIndex, &aflow.LLMAgent{ Name: "debugger", + Model: aflow.BestExpensiveModel, Reply: "BugExplanation", Temperature: 1, Instruction: debuggingInstruction, @@ -62,6 +62,7 @@ func init() { }, &aflow.LLMAgent{ Name: "diff-generator", + Model: aflow.BestExpensiveModel, Reply: "PatchDiff", Temperature: 1, Instruction: diffInstruction, @@ -70,6 +71,7 @@ func init() { }, &aflow.LLMAgent{ Name: "description-generator", + Model: aflow.BestExpensiveModel, Reply: "PatchDescription", Temperature: 1, Instruction: descriptionInstruction, -- cgit mrf-deployment