Table of Contents
    Get answers from the Community
    Join discussions

    Agentic development has enabled enterprises to accelerate the pace of innovation while freeing developers to focus on more strategic initiatives. But for many regulated organizations, the idea of sending source code and analysis prompts to vendor-managed LLM endpoints is a nonstarter.

    That’s why Black Duck Signal™ added support for agentic AppSec testing using your own LLM infrastructure in a BYO-LLM configuration. Black Duck Signal is an agentic AppSec solution that’s designed to secure application code as it’s being produced within agentic workflows. Organizations have the flexibility to use Black Duck’s managed LLM endpoints or their own LLM infrastructure to take advantage of existing enterprise agreements, meet compliance and data-residency requirements, and optimize costs.

    Key benefits

    • Compliance: Source code and analysis prompts are kept within your own cloud tenancy or on-premises network, so nothing leaves your perimeter.
    • Cost control: You can utilize existing enterprise LLM contracts, reserved capacity, or volume discounts instead of per-scan pricing.
    • Model preference: Specific model versions (e.g., GPT-4o, Claude Sonnet 4, Gemini 2.5 Pro) can be used to match your accuracy or latency requirements per agent.
    • Flexibility: Organizations can choose to utilize Black Duck’s default LLM configuration settings for all features and use cases or override those settings when desired.

    Signal uses an agent-based approach that lets you configure which LLM endpoint to use for each of Signal’s seven current agents. It provides granular control; each agent can be pointed at its own provider, model, and endpoint, giving you the flexibility to optimize based on model strengths and your organization’s existing contracts, compliance requirements, infrastructure capacity, and costs.

    Signal’s workflows take advantage of seven independent agents that are each responsible for a distinct stage of analysis.

    • Single-file SAST vulnerability scanning
    • Cross-file dataflow tracing
    • False-positive oversight / review
    • Exploit-narrative generation
    • Software composition analysis (SCA)
    • mergekey-embed-agent for deduplication of issues across scans
    • oversight-embed-agent to assist rule matching

    By configuring which infrastructure each agent uses, you can prioritize the characteristics that are most critical for your organization. For example, you could choose to run the highest-volume agent (single-file scanning) on GCP Vertex AI for cost reasons while routing the four lighter-reasoning agents through Azure OpenAI, all within a single scan.

    Supported providers

    Black Duck Signal can be configured to work with every major LLM host.

    • OpenAI: Direct API access
    • Azure OpenAI: Plus Azure AI Services with native Anthropic Claude support, including automatic detection of Claude vs. OpenAI-family models on the same Azure resource
    • AWS Bedrock: Used via lightweight IAM bearer-token auth rather than the full AWS SDK
    • GCP Vertex AI: Native service-account credential handling and automatic token refresh
    • Any OpenAI-compatible proxy: This includes any provider reachable through a LiteLLM proxy

    Signal automatically detects which provider a given agent should use based on the endpoint URL, credentials supplied, and model name to reduce the amount of manual configuration required.

    Configuring BYO-LLM

    BYO-LLM can be configured with a simple config file or using CLI flags, with a small number of global defaults (endpoint, key, timeout) that can be overridden with any individual agent. A built-in preflight check (via –check-llm) validates that every configured endpoint is reachable and authenticated before a real scan runs, and machine-readable JSON can be output for CI pipelines and other integrations.

    TLS verification is on by default for every agent, and private-CA or self-signed endpoints are handled by supplying your own CA bundle rather than by turning verification off. This can be disabled for on-prem endpoints when necessary.

    Within the config file, the [LLM] section acts as a parent, and any setting you place there becomes the default for all seven agent sections. Per-agent sections need only specify values that differ from the general defaults. This keeps configurations concise: If every agent shares the same endpoint and key, you set those once in [LLM] and specify only the model name in each agent section.

    [LLM] general settings

    The mode field on [LLM] is the config-file equivalent of using --llm-mode on the command line; you can set it here so that operators do not need to remember the flag. An explicit --llm-mode on the command line still wins.

    [LLM]

    mode = byo

    uri = https://your-endpoint.example.com/v1

    key = ${OPENAI_API_KEY}

    timeout = 600

    When using some providers, additional fields are required. For example, when using GCP Vertex AI (native integration), the fields below should be added to the [LLM] section:

    [LLM]

    mode = byo

    gcp_service_account_key = gcp-sa-key.json

    gcp_project = your-gcp-project-id

    Overriding agent defaults

    Each of the seven agents can be configured to override the default configurations for any of the five fields: model, uri, key, timeout, api_version. The example below shows how easy it is to override the model for each agent.

    [LLM_SINGLEFILESCAN_AGENT]

    model = gpt-4o

    timeout = 600

    [LLM_DATAFLOW_AGENT]

    model = gpt-4o-mini

    [LLM_OVERSIGHT_AGENT]

    model = gpt-4o-mini

    [LLM_EXPLOITATION_AGENT]

    model = gpt-4o-mini

    [LLM_SCA_AGENT]

    model = gpt-4o-mini

    [LLM_MERGEKEY_EMBED_AGENT]

    model = text-embedding-3-large

    [LLM_OVERSIGHT_EMBED_AGENT]

    model = text-embedding-3-small

    Not sure where to start?

    Black Duck has verified several model configurations to help make it easy to get up and running quickly.

    • Sample configuration: Anthropic Claude Sonnet paired with OpenAI’s GPT o3-mini. Sonnet performs the heaviest reasoning for the single-file vulnerability scanning agent while o3-mini covers the lighter, higher-volume agents (dataflow, oversight, exploitation, SCA). This provides a deliberately cost-efficient blend of accuracy and price as your starting point. Embeddings pair with OpenAI’s text-embedding-3-large for mergekey-embed, and text-embedding-3-small for oversight-embed. This is one of the combinations that Black Duck validates and tunes accuracy against.
    • Substitute similar models: Some teams may prefer to use other frontier models in similar classes (for example, GPT-4o and Gemini 2.5) and other embedding models. These run on the same connectivity and are fully functional, allowing you to configure your agents to your specific requirements.
    • Experimental configurations: Additional providers and open-weight/self-hosted models are reachable through the same OpenAI-compatible/LiteLLM path today, but they haven’t yet been vetted as part of the initial release. Teams may choose to experiment with these configurations, but should verify stability before relying on them.

    Get started with Black Duck Signal

    BYO-LLM capabilities are available today as part of Black Duck Signal, and will be added to Code Sight™ IDE Plug-in and the Black Duck Bridge CLI in the near future. To see the list of recommended models for each agent and more details about configuring this feature, review the product documentation.