aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/aflow/flow
Commit message (Collapse)AuthorAgeFilesLines
* syz-agent: systematically show verbose error messagesDmitry Vyukov7 days1-2/+1
| | | | | | | | | | | | | Currently we added custom code to kernel build action, and few others to expose verbose errors from executed binaries (notably make). But lots of other binary executions missing this logic, e.g. for git failure we currently see unuseful: failed to run ["git" "fetch" "--force" "--tags" exit status 128 Instead of adding more and more custom code to do the same, remove the custom code and always add verbose output in syz-agent and tools/syz-aflow.
* pkg/aflow: return syzkaller program as outputAlexander Potapenko8 days1-3/+1
| | | | | Requesting to return the program as one of the agent's outputs enforces its structure and prevents LLM from using garbage formatting.
* pkg/aflow: ensure we don't register MCP tools with duplicate namesDmitry Vyukov8 days1-1/+13
| | | | | | | If we have duplicate names, then only one of the duplicates will be used at random. Add a check that we don't have duplicate names. Currently it's only "crash-reproducer" (both action and a tool). Also ignore "set-results" tool, and all tools created in tests.
* pkg/aflow: add Flow.Consts instead of ProvideDmitry Vyukov8 days1-12/+7
| | | | | | | | | There is no point in using Provide more than once, and anywhere besides the first action of a flow. So it's not really an action, but more of a flow property. Add Flow.Consts field to handle this case better. Also provide slightly less verbose syntax by using a map instead of a struct, and add tests.
* pkg/aflow/flow/repro: give agent relevant docsDmitry Vyukov8 days1-2/+17
| | | | | | | LLM seems to have some knowledge about syzkaller program syntax, but presumably it's still useful to give it all details about syntax. Update #6878
* pkg/aflow/flow/repro: give agent codesearch toolsDmitry Vyukov8 days1-5/+12
| | | | | | | | | | It's useful to be able to look at the kernel source code when creating a reproducer for a bug. So give the agent codesearch tools. Also slightly refine prompt wording. Update #6878
* pkg/aflow/flow/repro: add `read-description` to the flowAlexander Potapenko9 days1-1/+4
| | | | | | Teach the repro flow about the `read-description` tool. Update #6878
* pkg/aflow: add Reproduce toolTaras Madan9 days1-0/+1
|
* pkg/aflow: add Tools functionDmitry Vyukov12 days3-5/+4
| | | | | | When we combine tool sets for agents, there is always a protential problem with aliasing existing slices and introducing subtle bugs. Add Tools function that can append tool/tool sets w/o aliasing problem.
* pkg/aflow/flow/repro: provide proper syzkaller commitDmitry Vyukov12 days1-5/+10
| | | | Update #6878
* pkg/aflow/tool/syzlang: provide list of description filesDmitry Vyukov12 days1-0/+6
| | | | Update #6878
* pkg/aflow: repro workflow skeletonTaras Madan13 days2-0/+59
|
* pkg/aflow: delete SyzkallerCommitTaras Madan14 days1-5/+4
| | | | It is not used.
* dashboard/app: apply actionable label after AI moderationDmitry Vyukov2026-02-241-7/+1
| | | | | | This allows auto-upstreamming of actionable bugs. Fixes #6779
* syz-agent: wipe codesearch binaryDmitry Vyukov2026-02-063-17/+14
| | | | Now it's compiled into the syz-agent binary itself.
* pkg/aflow/flow/assessment: mention adjacent races in the KCSAN promptDmitry Vyukov2026-02-031-0/+14
| | | | Update #6578
* pkg/aflow/tool/grepper: add the toolDmitry Vyukov2026-02-023-3/+6
| | | | | | Add a tool that executes git grep with the given expression. It can handle long tail of cases that codesearcher can't handle, while still providing less output than reading whole files.
* pkg/aflow/flow/patching: fix getting list of recent commitsDmitry Vyukov2026-02-022-10/+19
| | | | | We need to run git log in the master git repo b/c out KernelSrc/KernelScratchSrc are shallow checkouts that don't have history.
* pkg/aflow: abstract away LLM temperatureDmitry Vyukov2026-02-023-5/+5
| | | | | | | | | | Introduce abstract "task type" for LLM agents instead of specifying temperature explicitly for each agent. This has 2 advantages: - we don't hardcode it everywhere, and can change centrally as our understanding of the right temperature evolves - we can control other LLM parameters (topn/topk) using task type as well Update #6576
* pkg/aflow/flow/patching: use recent commit subjectsDmitry Vyukov2026-01-313-0/+98
| | | | | | | Give LLM the recent commit subjects when it generates description, so that it can use the same style. Add infrastrcuture to write end-to-end action tests to test it.
* pkg/aflow/flow/patching: improve promptsDmitry Vyukov2026-01-301-3/+33
| | | | | More instructions slightly more concrete, and add details about some bug types.
* pkg/aflow/flow/patching: move Outputs type to ai packagesDmitry Vyukov2026-01-302-24/+15
| | | | | | Move it so that it can be accessed by the dashboard as well. Add kernel branch to output (it's needed for gerrit), provide actual kernel commit hash instead of tag name.
* pkg/aflow: adding sliding window summary featureYulong Zhang2026-01-301-47/+60
| | | | | | | | | This adds a flow feature (and creates a new flow using it) called "sliding window summary". It works by asking the AI to always summarize the latest knowledge, and then we toss the old messages if they fall outside the context sliding window.
* pkg/aflow/flow/patching: find maintainers for patchesDmitry Vyukov2026-01-292-0/+49
| | | | Provide base kernel repo/commit and recipients (to/cc) for patches.
* pkg/aflow/flow/patching: provide some WARNING-specific instructionsDmitry Vyukov2026-01-283-2/+14
|
* pkg/aflow: provide reusable helpers to extract crash typeDmitry Vyukov2026-01-281-25/+1
| | | | | Lots of workflows may want to have special handling for particular bug types. Provide common helpers that make it easy to act on bug type.
* pkg/aflow/flow/patching: remove temp workaround for KernelScratchSrcDmitry Vyukov2026-01-271-1/+0
|
* pkg/aflow/flow/patching: harden against empty generated patchesDmitry Vyukov2026-01-271-4/+10
| | | | | | | | Make codeeditor error on nop changes that don't actually change the code. Make patch testing error on empty patch. Perhaps we need a notion of "mandatory" tools that must be called successfully at least once... not sure yet.
* pkg/aflow: add explicit DoWhile.MaxIterationsDmitry Vyukov2026-01-271-1/+2
| | | | | | Add DoWhile.MaxIterations and make it mandatory. I think it's useful to make workflow implementer to think explicitly about a reasonable cap on the number of iterations.
* pkg/aflow/flow/patching: use code editing/patch testingDmitry Vyukov2026-01-241-14/+51
| | | | | Add code editing tool, and patch testing action to the workflow. Add a loop that asks to fix/regenerate patch on test errors.
* pkg/aflow/action/kernel: add CheckoutScratch actionDmitry Vyukov2026-01-231-0/+2
| | | | The action checks out a temp dir for code edits and patch testing.
* pkg/aflow: unexport Pipeline typeDmitry Vyukov2026-01-233-74/+68
| | | | | | | I've added NewPipeline constructor for a bit nicer syntax, but failed to use it in actual workflows. Unexport Pipeline and rename NewPipeline to Pipeline. This slightly improves workflows definition syntax.
* pkg/aflow/tool/researcher: add researching LLM toolDmitry Vyukov2026-01-231-1/+2
| | | | | It can answer complex questions about kernel, and provide a concise answer to other LLMs.
* pkg/aflow: support setting a custom repositoryFlorent Revest2026-01-212-0/+5
| | | | | For situations where the user wants to reproduce bugs against a different repository than mainline.
* pkg/aflow: make LLM model per-agent rather than per-flowDmitry Vyukov2026-01-203-3/+5
| | | | | | 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: allow to specify model per-flowDmitry Vyukov2026-01-143-0/+3
| | | | | We may want to use a weaker model for some workflows. Allow to use different models for different workflows.
* dashboard/app: add race harmfullness labelDmitry Vyukov2026-01-131-7/+1
| | | | | Add race:harmful/benign label. Set it automatically by confirmed AI jobs.
* pkg/aflow/flow/assessment: add UAF moderation workflowDmitry Vyukov2026-01-122-1/+115
| | | | | | Add workflow that can be used for moderation of UAF bugs (consistent/actionable reports), such UAF bugs can be upstreammed automatically, even if they happened only once and don't have a reproducer.
* pkg/aflow/flow/assessment: refine KCSAN promptDmitry Vyukov2026-01-122-39/+34
| | | | | | | | | | | | | | Rephrase the prompt to be only about KCSAN, currently it has some leftovers from more generic assessment prompt that covered KASAN bugs as well (actionability). Also add Confident bool output. We may want to act on both benign/non-benign, so we need to know when LLM wasn't actually sure either way. This should also be useful for manual verification/statistics. If LLM is not confident and can can admit that, it's much better than giving a wrong answer. But we will likely want to track percent of non-confident answers.
* pkg/aflow/flow: add packageDmitry Vyukov2026-01-092-0/+15
|
* pkg/aflow/flow/patching: add bug fix patching workflowDmitry Vyukov2026-01-092-0/+195
|
* pkg/aflow/flow/assessment: add KCSAN bug assessment workflowDmitry Vyukov2026-01-092-0/+89