LLaDAR
Guide

Run an existing Agent

Send a dataset to an Agent through the way users or other programs normally use it.

Choose a project, service URL, or page URL

All three paths collect Agent answers into actual_response; they differ in how LLaDAR learns to send a question.

What you haveOptionsHow it works
Project source and sufficient runtime setup--project PATHInspect the public workflow; start a service in the isolated project copy when needed.
Project source and an already running test service--project PATH --service-url URLLearn the API contract from the project; call the service at the supplied base address without starting or stopping it.
A normal question webpage, without project source--page-url URLSign in and calibrate in the browser, record the request for replay, and extract answers with the model.

--project tells LLaDAR where to learn how to call the Agent; --service-url tells it which already running service to call. The latter is optional, not a startup command or a substitute for an API contract.

--page-url cannot be combined with --project or --service-url. If neither target option is supplied, project mode uses the current directory (.). The option is named --service-url, not --service-api.

What project mode automates

  1. Copy and inspect the target project without changing its source.
  2. Find a likely public way to send a question to the Agent.
  3. Try that route first, then use it for all scheduled questions.
  4. Save each answer and the execution record.

Finding an internal function is not enough. LLaDAR first checks that the selected route can actually be replayed.

Path A: let LLaDAR handle a local project

lladar run-agent dataset.jsonl --project PATH_TO_AGENT --output responses.jsonl

A project alone can be enough. LLaDAR inspects the README, startup scripts and public interface definitions. When the required runtime, dependencies and configuration are available, it can start the original service in an isolated project copy, wait for readiness, test it, and stop only the service it started. You do not need to provide --service-url in this case.

If startup, authentication, or request/response details are missing, LLaDAR pauses for clarification rather than inventing them. An interactive run can ask you to choose among plausible public interfaces.

Path B: use an existing test service

lladar run-agent dataset.jsonl --project PATH_TO_AGENT --service-url http://127.0.0.1:8000 --output responses.jsonl

Use --service-url when you already run a controlled test service. LLaDAR uses that exact base address and the API routes discovered in the project; it does not start or stop the existing service. The project is still required to understand the HTTP method, route, payload, authentication requirements, and response format.

For example, if the project defines POST /ask with a JSON question body, http://127.0.0.1:8000 supplies the base address; it does not describe /ask or the body schema. A bare API URL is not enough to discover an arbitrary contract. Supply required credentials through the configured environment, not the URL; the URL must use HTTP(S) and must not contain credentials, a query, or a fragment.

Path C: provide a question page and sign in

Use this when you know the normal question page but not its API method, payload, or Cookie. Project source is not required. Request recording remains necessary to learn how to send questions; the model extracts answers from the responses, not the request contract. First run python -m playwright install chromium, then:

lladar run-agent dataset.jsonl --page-url https://example.test/chat --output responses.jsonl

--page-url always uses the guided sign-in, calibration, consent and MATCH workflow. Omit --interactive and --no-interactive; these project-only options are rejected in browser mode. Run directly in a terminal with stdin and stderr attached. Piped input or redirected stderr stops the CLI before opening the browser, even with both approval flags.

Browser answers are extracted directly by a tool-free model, default gemini:gemini-3.8-flash. There is no generated Python, built-in answer-rule mode, Monty, or parser cache. Configure GEMINI_API_KEY or GOOGLE_API_KEY in the environment or --env-file; credentials are initialized only after calibration and approval.

  1. Sign in yourself in the visible LLaDAR browser and submit the exact calibration question.
  2. Wait for completion, then press Enter. Review website requests, model destination and budgets together. One YES approves both website requests and sending real response content, including internal answers, to https://generativelanguage.googleapis.com. Check your organization's data policy first.
  3. Compare the newly extracted verification answer against its complete recording in the terminal (stderr); type MATCH only when faithful and complete. Then dataset execution begins.

No HTML review tab opens. Cyan source headings, magenta extracted-answer headings and yellow notices identify sections, not correctness. NO_COLOR or TERM=dumb selects plain text. Full content is quoted, not truncated; backslashes and control/format characters are escaped for display without changing saved answers. Terminal scrollback or recording may retain private content. Redirected review output is refused. Chromium is still required for sign-in/capture; there is no new browser-free mode or per-dataset-answer MATCH.

--confirm-browser-run and --allow-response-model-transfer approve only their own scopes for this run. Neither bypasses independent review or the CLI terminal requirement. A valid model result or one successful review does not guarantee later extraction fidelity or answer correctness; evaluate separately.

Browser startup, initial navigation and reload each allow 5 minutes (300 seconds), independently of --timeout. Website answers still default to 60 minutes (--timeout 3600); automatic replay is also capped by the remaining shared deadline.

N scheduled trials, including repeats, permit at most N+2 model calls: calibration, verification, then one per trial. Each call has at most 8,192 output tokens; all calls and intervening verification share 60 minutes after approval. No automatic retries, redirects, answer caching or hidden website replay. Provider usage is recorded when available, otherwise unknown; charges may apply.

Text, JSON/+json, NDJSON, GraphQL-over-HTTP JSON and SSE are model inputs. Capture is limited to 1 MiB of decoded bytes; model input is separately limited to 120 KiB of UTF-8 JSON including framing, reserving fixed-prompt space under a local 128 KiB byte budget. This is not a tokenizer guarantee. No truncation, summarization or automatic chunking. The host does not select answer fields or terminal events. Open automatic streams time out rather than producing partial answers.

Credentials, request headers/body, profile data and expected answers are excluded from model input. Known echoed credentials or credential-like response fields block transfer; detection cannot guarantee that all private content is found. No raw streams, prompts, provider diagnostics or thoughts are written to normal artifacts. Final text remains actual_response in responses/trials; safe run metadata records model/prompt version, counts, usage and status.

Reuse the dedicated local .lladar/browser-profiles session, or choose --fresh-browser-profile for a temporary signed-out profile; ordinary Chrome/Edge profiles are never imported. On 401/403 or extraction failure, later requests stop and completed answers remain. Sign in and approve a new run; no authentication retry is sent. Removed parser flags are rejected, and old private caches are left unused and untouched.

--page-url cannot be combined with --project or --service-url. Use the target selection table if you also have project source.

Project mode: interactive and unattended runs

If more than one public route seems plausible, an interactive terminal can ask you to choose. Use --no-interactive only when the intended route is clear. These interaction options apply only to project mode; website testing always follows its guided terminal workflow.

What to inspect afterwards

FileWhat it shows
responses.jsonlCompleted questions and actual responses.
responses.jsonl.trials.jsonlThe records and repeats that were scheduled.
responses.jsonl.run.jsonDiscovery, selected route, replay, and run status.

If browser calibration, confirmation, or verification stops before dataset execution, LLaDAR writes only a redacted .run.json blocker record; it does not create responses or trials files.

Important: verified means replay succeeded. It is not a judgment about answer quality.