aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/aflow
Commit message (Collapse)AuthorAgeFilesLines
* pkg/aflow: ask LLM to call several tools at the same timeDmitry Vyukov2026-01-202-3/+10
| | | | This seems to help a bit with number of round-trips.
* pkg/aflow: cache disk usage in CacheDmitry Vyukov2026-01-201-10/+36
| | | | | | Calculating total disk usage of all cache entries can take very long time for large caches (needs to stat all files). This is especially problematic for tools/syz-aflow. Cache disk usage in the meta file.
* pkg/aflow/action/kernel: keep build files that codesearch will needDmitry Vyukov2026-01-201-6/+13
| | | | | We currently duplicate list of source extensions in the build action and codesearch tool. Unify the lists.
* pkg/aflow: add BadCallErrorDmitry Vyukov2026-01-205-42/+150
| | | | | | | | | | The error allows tools to communicate that an error is not an infrastructure error that must fail the whole workflow, but rather a bad tool invocation by an LLM (e.g. asking for a non-existent file contents). Previously in the codesearcher tool we used a separate Missing bool to communicate that. With the error everything just becomes cleaner and nicer. The errors also allows all other tools to communicate any errors to the LLM when the normal results cannot be provided and don't make sense.
* pkg/codesearch: add read-file commandDmitry Vyukov2026-01-201-0/+23
| | | | Just provides full file contents as last resort.
* pkg/codesearch: add dir-index commandDmitry Vyukov2026-01-201-0/+24
| | | | | dir-index provides a list of subdirectories and files in the given directory in the source tree.
* pkg/aflow: handle common LLM mis-behaviors wrt tool callingDmitry Vyukov2026-01-206-19/+302
| | | | | | | | | | | | | Gracefully handle (reply to LLM with error): - incorrect tool name - incorrect tool arg type - missing tool arg Silently handle: - more than one call to set-results - excessive tool args Fixes #6604
* pkg/aflow: handle model quota errorsDmitry Vyukov2026-01-205-1/+83
| | | | | | | | Detect model quota violations (assumed to be RPD). Make syz-agent not request jobs that use the model until the next quota reset time. Fixes #6573
* pkg/aflow: make LLM model per-agent rather than per-flowDmitry Vyukov2026-01-208-54/+94
| | | | | | 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: retry LLM requests on transient errorsDmitry Vyukov2026-01-191-1/+20
| | | | Update #6573
* pkg/aflow: add ability to generate several candidate replies for LLM agentsDmitry Vyukov2026-01-196-74/+497
| | | | | | | | | Add LLMAgent.Candidates parameter. If set to a value N>1, then the agent is invoked N times, and all outputs become slices. The results can be later aggregated by another agent, as shown in the test.
* pkg/aflow: add notion of flow errorsDmitry Vyukov2026-01-163-3/+28
| | | | | | | | | | Flow errors denote failure of the flow itself, rather than an infrastructure error. A flow errors mean an expected condition in the flow when it cannot continue, and cannot produce expected outputs. For example, if we are doing something with the kernel, but the kernel build fails. Flow errors shouldn't be flagged in Fixes #6610
* pkg/aflow: expect CitationMetadataDmitry Vyukov2026-01-151-3/+3
| | | | | | | | | | | | | | CitationMetadata may be present in replies sometimes. CitationMetadata is a specific field in the Gemini API's response object that alerts you when the model has directly quoted or closely derived content from a specific source, such as a book, website, or open-source code repository. We've got the following error: syz-agent: unexpected reply fields ({Content:0xc0058eb4a0 CitationMetadata:0xc0094009a8 FinishMessage: TokenCount:0 FinishReason:STOP AvgLogprobs:0 GroundingMetadata:<nil> Index:0 LogprobsResult:<nil> SafetyRatings:[] URLContextMetadata:<nil>})
* pkg/aflow: allow to specify model per-flowDmitry Vyukov2026-01-146-6/+21
| | | | | 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-132-7/+10
| | | | | Add race:harmful/benign label. Set it automatically by confirmed AI jobs.
* pkg/aflow/flow/assessment: add UAF moderation workflowDmitry Vyukov2026-01-123-1/+118
| | | | | | 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/action/kernel: fix removal on unneeded build filesDmitry Vyukov2026-01-091-4/+4
| | | | | Paths passed to filepath.WalkDir are absolute (include the dir prefix), account for that. Strings returned by filepath.Ext include the dot, account for that as well.
* pkg/aflow/action/kernel: keep few more files in build outputsDmitry Vyukov2026-01-091-2/+7
| | | | | Keep vmlinux for debug info/addr2line. Keep compile_commands.json, we need it for codesearch.
* 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
|
* pkg/aflow/action/kernel: add build actionDmitry Vyukov2026-01-091-0/+63
|
* pkg/aflow/action/kernel: add checkout actionDmitry Vyukov2026-01-091-0/+90
|
* pkg/aflow/action/crash: add crash repro toolDmitry Vyukov2026-01-091-0/+115
|
* pkg/aflow/tool/codesearcher: add packageDmitry Vyukov2026-01-091-0/+171
|
* pkg/aflow: add package for agentic workflowsDmitry Vyukov2026-01-0914-0/+2010
|
* pkg/aflow/ai: add packageDmitry Vyukov2026-01-051-0/+12
|
* pkg/aflow/trajectory: add packageDmitry Vyukov2026-01-051-0/+112