Skip to content

[Phase 1] ReportGenerationAgent (purely generative, no tools) #10

Description

@varun-polpakkara

Summary

LangGraph agent called by Stage 5 to synthesise the two-audience Markdown reports. Purely generative — receives structured data, produces narrative. No tools (no file reads, no web access).

Interface

class ReportGenerationAgent:
    def __init__(self, llm: BaseChatModel, *, max_iterations: int = 10): ...
    def generate(self, scan_data: ScanReportData) -> ReportOutput: ...

ScanReportData: snapshot metadata + all components + all findings (with reachability + exploit details) + all triage history.

ReportOutput: engineering_report: str + executive_summary: str.

Constraints

  • No tools — the agent only has access to the data it is passed
  • If either output is empty string, ReportGenerationError is raised by Stage 5
  • Must produce ISO 21434 and UNECE R155 framing in the executive summary

LLM provider

Same BaseChatModel instance injected by the CLI — configured via CYBERGUARD_LLM_PROVIDER env var.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Fields

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions