aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/aflow/tool/codeexpert/codeexpert.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2026-01-22 11:58:39 +0100
committerDmitry Vyukov <dvyukov@google.com>2026-01-23 09:36:05 +0000
commit8fb0f8fb04f74e0c849fb8e2ae236419ceae6fcf (patch)
tree252d5e60314e9a082289c2b135f196d8393c371b /pkg/aflow/tool/codeexpert/codeexpert.go
parent778c365cd9979cc5ab5eb7df8e7ec5d1ab834495 (diff)
pkg/aflow/tool/researcher: add researching LLM tool
It can answer complex questions about kernel, and provide a concise answer to other LLMs.
Diffstat (limited to 'pkg/aflow/tool/codeexpert/codeexpert.go')
-rw-r--r--pkg/aflow/tool/codeexpert/codeexpert.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/pkg/aflow/tool/codeexpert/codeexpert.go b/pkg/aflow/tool/codeexpert/codeexpert.go
new file mode 100644
index 000000000..62d9c6f5d
--- /dev/null
+++ b/pkg/aflow/tool/codeexpert/codeexpert.go
@@ -0,0 +1,44 @@
+// Copyright 2026 syzkaller project authors. All rights reserved.
+// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+package codeexpert
+
+import (
+ "github.com/google/syzkaller/pkg/aflow"
+ "github.com/google/syzkaller/pkg/aflow/tool/codesearcher"
+)
+
+var Tool = &aflow.LLMTool{
+ Name: "codeexpert",
+ Model: aflow.GoodBalancedModel,
+ Temperature: 1,
+ Description: description,
+ Instruction: instruction,
+ Tools: codesearcher.Tools,
+}
+
+const description = `
+The tool can answer complex questions about kernel source code,
+function behavior/pre-conditons/post-conditions, structs and their fields,
+assess vality of code snippets, verify various hypothesis, etc.
+It has access to more sources of information than you, use it to answer
+particularly complex questions that require lots of research, and looking
+at lots of data, and have a concrete concise answer.
+
+Formulate your question as concretly as possible, include concrete
+function/struct/field/variable names, line numbers, etc.
+Formulate what exactly you want to see in the answer and in what form.
+`
+
+const instruction = `
+You are a capable Linux kernel developer tasked with researching complex questions
+about kernel source code. You will be given a concrete question, and need to provide
+a concrete answer.
+Use tools extensively while researching the question. Don't make assumptions,
+or rely on your previous knowledge about the kernel source code, use available tools
+to access the actual source code.
+Use all available sources of information:
+ - kernel source code
+ - documentation in the Documentation dir in the source tree
+ - git commits descriptions, git blame
+`