CertSafari

    Free LangChain Certified Agent Engineer Sample Questions

    35 free sample questions from our bank of 400+, covering every exam domain, with answers and detailed explanations. Updated August 2026.

    Domain 1: Build

    Subdomain 1.1: Differences between create_agent and deepagents

    1.Which statement correctly describes the relationship between the deepagents package and create_agent?

    1. A.deepagents is a separate package built on top of create_agent's core building blocks, not a replacement for it.
    2. B.deepagents is a drop-in replacement that fully supersedes create_agent, which vendors now recommend avoiding for new projects.
    3. C.deepagents and create_agent are unrelated packages maintained by different organizations with no shared foundation or dependency.
    4. D.create_agent is an internal helper that deepagents exposes only after a project has already adopted the deepagents harness.
    Show answer & explanation

    Correct answer: Adeepagents is a separate package built on top of create_agent's core building blocks, not a replacement for it.

    • A. deepagents is documented as a separate package that layers additional capabilities on top of create_agent's foundational building blocks, rather than replacing that foundation.
    • B. There is no supersession relationship; create_agent remains the recommended choice for lightweight, low-level agent building and is not being phased out in favor of deepagents.
    • C. deepagents depends on and builds directly on create_agent's core loop, so the two are not unrelated packages from different organizations with no shared foundation.
    • D. create_agent is the standalone, lower-level builder function that exists independently of deepagents; deepagents consumes it as a foundation rather than exposing it only after adoption.

    Subdomain 1.1: Differences between create_agent and deepagents

    2.A platform team is building their own opinionated agent framework on top of LangChain and wants to assemble every component themselves rather than inherit a pre-built harness. Which builder aligns with that goal?

    1. A.create_agent, since it offers explicit low-level control with minimal defaults for teams that want to define each component themselves.
    2. B.deepagents, since its harness exposes every middleware and tool as fully optional, making it functionally equivalent to assembling components individually.
    3. C.create_agent, since it forces adoption of filesystem tools, skills loading, and sub-agent spawning that cannot be turned off.
    4. D.deepagents, since it is the only builder that supports customizing the underlying LangGraph runtime for a bespoke framework.
    Show answer & explanation

    Correct answer: Acreate_agent, since it offers explicit low-level control with minimal defaults for teams that want to define each component themselves.

    • A. create_agent's minimal defaults and low-level control are exactly suited to a platform team that wants to hand-assemble every component of its own opinionated framework.
    • B. deepagents is described as an opinionated harness with capabilities bundled in by default; that is a different design goal from a team wanting to assemble every piece itself from a minimal base.
    • C. create_agent does not force adoption of filesystem tools, skills loading, or sub-agent spawning; those are deepagents harness features layered on top, not mandatory parts of create_agent.
    • D. Both builders ultimately run on the same LangGraph runtime, and deepagents is not uniquely positioned to customize that runtime for a bespoke framework; create_agent's minimal defaults are what serve this goal.

    Subdomain 1.2: Middleware

    3.An agent is configured with two middleware instances, registered in the order `[AuthMiddleware, LoggingMiddleware]`, each implementing both `before_model` and `after_model` hooks. In what order do the `after_model` hooks execute relative to each other?

    1. A.`LoggingMiddleware.after_model` runs, then `AuthMiddleware.after_model` runs, the reverse of their registration order.
    2. B.`AuthMiddleware.after_model` runs, then `LoggingMiddleware.after_model` runs, matching their registration order.
    3. C.Both `after_model` hooks run simultaneously in parallel, since after hooks have no defined ordering guarantee.
    4. D.Only the last-registered middleware's `after_model` hook runs; earlier middleware hooks are skipped for that phase.
    Show answer & explanation

    Correct answer: A`LoggingMiddleware.after_model` runs, then `AuthMiddleware.after_model` runs, the reverse of their registration order.

    • A. This is correct because after hooks execute in reverse of the middleware registration order, so the last-registered middleware's `after_model` runs first and the first-registered runs last.
    • B. This is incorrect because that is the order for `before_model` hooks, which run in registration order; `after_model` hooks run in the opposite, reverse order.
    • C. This is incorrect because node-style hooks execute sequentially in a defined order, not concurrently, so there is no race between the two `after_model` calls.
    • D. This is incorrect because every registered middleware's `after_model` hook runs on each pass; none are skipped simply because another middleware is also registered.

    Subdomain 1.2: Middleware

    4.A fintech agent handles customer chats that may contain account numbers, executes a `wire_transfer` tool that should require human approval, and must not let a single conversation trigger unlimited transfer attempts. Which middleware components should the team combine to meet all three requirements? (Select all that apply.)(Select 3)

    1. A.`PIIMiddleware` configured to detect and redact account-number patterns in conversation messages.
    2. B.`HumanInTheLoopMiddleware` configured with `interrupt_on` scoped to the `wire_transfer` tool.
    3. C.`ToolCallLimitMiddleware` scoped to the `wire_transfer` tool with a `thread_limit`.
    4. D.`ModelFallbackMiddleware` configured with backup models for when the primary provider is unavailable.
    5. E.`LLMToolEmulator` configured to emulate the `wire_transfer` tool during production traffic.
    6. F.`TodoListMiddleware` configured to track the agent's task list across the conversation.
    Show answer & explanation

    Correct answers: A, B, C`PIIMiddleware` configured to detect and redact account-number patterns in conversation messages.; `HumanInTheLoopMiddleware` configured with `interrupt_on` scoped to the `wire_transfer` tool.; `ToolCallLimitMiddleware` scoped to the `wire_transfer` tool with a `thread_limit`.

    • A. This is correct because `PIIMiddleware` directly addresses protecting account numbers by detecting and redacting sensitive patterns in the conversation.
    • B. This is correct because scoping `HumanInTheLoopMiddleware`'s `interrupt_on` to the `wire_transfer` tool pauses that specific tool for human approval before it executes.
    • C. This is correct because a per-tool `thread_limit` on `ToolCallLimitMiddleware` caps how many times `wire_transfer` can be invoked within a single conversation, preventing unlimited attempts.
    • D. This is incorrect because `ModelFallbackMiddleware` addresses model provider outages, not PII protection, approval workflows, or capping tool invocation counts.
    • E. This is incorrect because `LLMToolEmulator` is meant for testing by replacing real tool execution with simulated responses, which would be unsafe and inappropriate for production wire transfers.
    • F. This is incorrect because `TodoListMiddleware` equips an agent with task planning and tracking, which does not address PII protection, approvals, or invocation limits.

    Subdomain 1.4: AGENTS.md and SKILL.md

    5.A team member creates a new skill directory named `pdf-summarizer` but writes `name: pdf_summarizer` in the SKILL.md frontmatter. At agent startup, the skill fails validation. What is the most likely cause?

    1. A.The `name` field must be lowercase alphanumeric with hyphens and exactly match the parent directory name, and underscores break that match.
    2. B.The `description` field is missing, so the skill can't register regardless of the `name` value that was chosen.
    3. C.Skill folders require a `scripts/` subdirectory before frontmatter parsing begins, and this skill omitted that required subfolder.
    4. D.The `allowed-tools` field becomes mandatory whenever a skill's `name` differs from its folder path, and this skill left it out.
    Show answer & explanation

    Correct answer: AThe `name` field must be lowercase alphanumeric with hyphens and exactly match the parent directory name, and underscores break that match.

    • A. The `name` field is defined as a lowercase alphanumeric identifier with hyphens that must exactly match the parent directory name; using an underscore instead of a hyphen produces a mismatch and fails validation.
    • B. Nothing in the scenario indicates the `description` field was omitted, so a missing description is not the cause of this particular failure.
    • C. There is no requirement that a skill folder contain a `scripts/` subdirectory; supporting folders like scripts, references, and assets are optional additions, not prerequisites for parsing.
    • D. There is no rule tying `allowed-tools` to whether `name` matches the folder path; `allowed-tools` is an independent, optional field for pre-approving tool access.

    Subdomain 1.4: AGENTS.md and SKILL.md

    6.To avoid bloating the system prompt when dozens of skills are configured, only two frontmatter fields are injected into the system prompt for every skill at agent startup, with the rest of each SKILL.md loaded only if that skill is triggered. Which two fields are these?

    1. A.`name` and `description`
    2. B.`name` and `allowed-tools`
    3. C.`description` and `compatibility`
    4. D.`name` and `license`
    Show answer & explanation

    Correct answer: A`name` and `description`

    • A. Only the `name` and `description` fields are injected into the system prompt for every configured skill at startup, which lets the agent discover skills without paying the token cost of every full body.
    • B. `allowed-tools` is not part of the startup metadata injection; it governs which tools a skill may call once it has been activated and its body has been read.
    • C. `compatibility` describes environment requirements and is not one of the two fields injected at startup for every skill.
    • D. `license` records licensing terms and is not part of the startup metadata; it is only relevant once the full skill body is loaded.

    Subdomain 1.3: Context engineering for long-running agents

    7.In LangChain's context-engineering guidance for long-running agents, what is the key architectural difference between message trimming and the `SummarizationMiddleware` summarization approach?

    1. A.Trimming drops older messages for one model call without touching state, while summarization permanently overwrites state with a generated summary.
    2. B.Trimming permanently deletes older messages from state entirely, while summarization only hides them briefly during a single isolated model call.
    3. C.Trimming needs an LLM to condense messages, while summarization discards messages using only token-count heuristics and never a model.
    4. D.Both approaches persist their changes to state in precisely the same way, differing only in which underlying model actually produces the replacement text.
    Show answer & explanation

    Correct answer: ATrimming drops older messages for one model call without touching state, while summarization permanently overwrites state with a generated summary.

    • A. Trimming is a transient, per-call adjustment that never writes back to state, while summarization is persistent — it replaces older messages in state with a generated summary so future turns see the summary instead of the originals.
    • B. This reverses the mechanics: trimming does not touch state at all, and summarization is the one that persists a permanent change, not a temporary one.
    • C. Trimming uses simple heuristics like keeping the most recent K messages and requires no LLM call; it is summarization that relies on a model to condense older turns.
    • D. Trimming never persists anything to state — only summarization writes a permanent replacement — so the two approaches do not behave identically with respect to state.

    Subdomain 1.3: Context engineering for long-running agents

    8.A team debugging a long-running support agent notices that after several summarization cycles, the agent contradicts facts stated at the very start of the conversation, while still performing well on tasks from recent turns. Which explanations are consistent with how `SummarizationMiddleware` operates? (Select 2)(Select 2)

    1. A.Once messages fall outside the `keep` window, only the generated summary represents them, so nuanced early details can be lost during condensation.
    2. B.The summary permanently replaces the original older messages in state, so any information the summarization step dropped is not recoverable from that state.
    3. C.The middleware re-reads the full original transcript from a separate log on every turn, so summarization cannot cause information loss like this.
    4. D.Recent messages inside the `keep` window are also condensed into the summary, which is why contradictions appear even in the latest turns.
    5. E.The summarization model always achieves perfect lossless compression, so any contradiction must come from a prompt or tool bug elsewhere.
    Show answer & explanation

    Correct answers: A, BOnce messages fall outside the `keep` window, only the generated summary represents them, so nuanced early details can be lost during condensation.; The summary permanently replaces the original older messages in state, so any information the summarization step dropped is not recoverable from that state.

    • A. Details outside the preserved window exist only through the generated summary, so any nuance the summarization step failed to capture is genuinely gone from the model's view.
    • B. Because summarization permanently overwrites state, once information is lost during condensation there is no original copy left in state to recover it from on later turns.
    • C. There is no separate always-consulted transcript log; the middleware relies on the summary once older messages are condensed, so it can indeed lose information this way.
    • D. Messages inside the `keep` window retain their original form and are not condensed, so contradictions on early facts are not explained by recent-turn messages being summarized.
    • E. Summarization is lossy by nature since it condenses content through a model, so assuming perfect lossless compression contradicts the observed behavior of losing early details.

    Subdomain 1.5: Sandboxing

    9.A security review of a sandboxed coding agent concludes that the sandbox successfully stops the agent from touching the host filesystem or host processes. The reviewer still flags a residual risk: a malicious document the agent reads during a task could instruct it to run destructive commands inside the sandbox itself. Why does sandboxing not eliminate this risk?

    1. A.Sandboxing isolates the agent from the host system but does not prevent context injection attacks that make the agent issue harmful commands within its own isolated environment
    2. B.Sandboxing only isolates network traffic, so file-based instructions in a document are never affected by it
    3. C.The `execute()` primitive automatically screens all commands for malicious intent before running them
    4. D.Context injection is impossible once a sandbox is configured, so the reviewer's concern does not apply
    Show answer & explanation

    Correct answer: ASandboxing isolates the agent from the host system but does not prevent context injection attacks that make the agent issue harmful commands within its own isolated environment

    • A. This is correct: sandboxes protect against direct filesystem and process interference with the host, but they do not prevent context injection — an adversary controlling agent inputs can still get the agent to run arbitrary commands within the isolated environment it has access to.
    • B. Sandboxing's protection is not limited to network traffic; its documented scope covers filesystem and process isolation from the host, and that scope still does not cover injected instructions driving in-sandbox commands.
    • C. The `execute()` primitive is a generic command-execution method with no built-in intent screening; it runs whatever script or command it is given and returns the output.
    • D. Context injection remains possible even with a sandbox configured, which is precisely why reviewers are advised to treat sandbox outputs as untrusted and add additional controls.

    Subdomain 1.5: Sandboxing

    10.An agent's sandbox integration is implemented as a subclass that only overrides `execute()`, relying on `BaseSandbox` for everything else, yet the agent still gets working `ls`, `grep`, and `edit_file` tools. Which explanation accounts for this?

    1. A.`BaseSandbox` constructs the scripts for each filesystem operation and runs them through the subclass's `execute()` implementation
    2. B.Those tools are unrelated to the sandbox subclass and are wired in separately by the model provider
    3. C.`ls`, `grep`, and `edit_file` are implemented as no-op stubs that always return empty results in any sandbox
    4. D.The subclass must also separately override each filesystem method for them to function, contradicting the premise
    Show answer & explanation

    Correct answer: A`BaseSandbox` constructs the scripts for each filesystem operation and runs them through the subclass's `execute()` implementation

    • A. This is correct: `BaseSandbox` builds the scripts needed for operations like `ls`, `grep`, and `edit_file` and runs them through the single `execute()` method, so a subclass only needs to implement `execute()` for all of these filesystem tools to work.
    • B. These filesystem tools are part of the sandbox backend abstraction itself, implemented on top of `execute()`, not something wired in independently by a model provider.
    • C. These tools run real generated scripts against the sandbox and return actual results; they are not stub implementations that always return empty output.
    • D. This contradicts how `BaseSandbox` is designed: it deliberately implements filesystem operations on top of a single `execute()` primitive precisely so subclasses do not need to reimplement each filesystem method individually.

    Domain 2: Test

    Subdomain 2.2: Online vs. offline evaluators

    11.Which statement most accurately distinguishes offline evaluation from online evaluation in LangSmith?

    1. A.Offline evaluation scores a curated dataset with reference outputs, typically pre-deployment, while online evaluation scores production traces without reference outputs.
    2. B.Offline evaluation scores production traces without reference outputs, while online evaluation scores curated datasets that always include reference outputs.
    3. C.Offline evaluation and online evaluation both require reference outputs, differing only in whether they run before or after deployment.
    4. D.Offline evaluation runs continuously on live traffic, while online evaluation only runs once against a fixed dataset before release.
    Show answer & explanation

    Correct answer: AOffline evaluation scores a curated dataset with reference outputs, typically pre-deployment, while online evaluation scores production traces without reference outputs.

    • A. Offline evaluation is defined by running against a curated dataset that pairs inputs with reference outputs, typically before deployment, while online evaluation scores production traces that carry only inputs and outputs, without a ground truth to compare against.
    • B. This reverses the actual definitions: production trace scoring without reference outputs describes online evaluation, and curated datasets with reference outputs describe offline evaluation, not the other way around.
    • C. Online evaluation specifically operates without reference outputs on production traces, so claiming both modes always require them misstates a defining difference between the two.
    • D. This also reverses the definitions: continuous scoring of live traffic describes online evaluation, while a single run against a fixed dataset before release describes offline evaluation.

    Subdomain 2.2: Online vs. offline evaluators

    12.An engineer is configuring an online evaluator's automation rule and wants it to be both selective and cost-aware. Which settings should they configure on the rule itself? Select all that apply.(Select 3)

    1. A.A filter that scopes the rule to runs matching specific criteria, such as unsatisfactory feedback or a particular tool call.
    2. B.A sampling rate that controls what percentage of matching traces get scored.
    3. C.A weekly LLM cost cap on the evaluator, overridable from an organization-wide default.
    4. D.A curated dataset of reference outputs that the rule pulls from to score each matching trace.
    5. E.An experiment comparison setting that ranks the rule against a prior offline run before scoring anything.
    Show answer & explanation

    Correct answers: A, B, CA filter that scopes the rule to runs matching specific criteria, such as unsatisfactory feedback or a particular tool call.; A sampling rate that controls what percentage of matching traces get scored.; A weekly LLM cost cap on the evaluator, overridable from an organization-wide default.

    • A. Correct: automation rules support filters that work like trace filtering, letting the rule target only runs matching chosen criteria rather than everything.
    • B. Correct: sampling rate is a standard automation rule setting that limits scoring to a percentage of matching traces to manage cost.
    • C. Correct: online evaluators support a weekly LLM cost cap, settable per evaluator or falling back to an organization-wide default, directly addressing cost-awareness.
    • D. Incorrect: online evaluators score traces without needing a reference-output dataset; pulling reference outputs to score each trace describes offline evaluation instead.
    • E. Incorrect: comparing against a prior offline run's experiment is not a setting on an online automation rule, and no such ranking step gates whether the rule scores a trace.

    Subdomain 2.1: Code-based evaluators vs. LLM-as-judge

    13.A team needs a judge that scores agent responses against a rubric specific to their internal compliance policy, which no prebuilt template covers. They write a Python function that returns a configured judge with their own prompt and scoring schema. What are they building?

    1. A.A custom judge factory function that produces an LLM-as-judge evaluator tailored to their compliance rubric
    2. B.A code-based evaluator function that checks compliance keywords using regular expression pattern matching rules
    3. C.An automation rule that filters production traces by a compliance tag and also sets a sampling rate
    4. D.A pairwise comparative evaluator that ranks two compliance-review prompts against each other for scoring
    Show answer & explanation

    Correct answer: AA custom judge factory function that produces an LLM-as-judge evaluator tailored to their compliance rubric

    • A. Writing a function that returns a configured judge with a custom prompt and scoring schema is the definition of a custom judge factory function for an LLM-as-judge evaluator.
    • B. Regular expression keyword matching is a deterministic code-based check and does not involve returning a configured model-backed judge with its own rubric.
    • C. An automation rule filters and samples production traffic for online scoring and is unrelated to authoring a judge's prompt and scoring schema.
    • D. Ranking two prompts against each other describes a comparative evaluator, not a factory function that produces a rubric-based judge for a single output.

    Subdomain 2.4: Evaluator alignment

    14.What does the alignment score in the Evaluator Playground represent?

    1. A.The percentage of labeled examples where the evaluator's judgment matches the human expert's label
    2. B.The percentage of production traces that received a feedback score from any reviewer
    3. C.The average latency difference between the evaluator's LLM call and the traced application run
    4. D.The proportion of dataset examples that include a reference output alongside the model input
    Show answer & explanation

    Correct answer: AThe percentage of labeled examples where the evaluator's judgment matches the human expert's label

    • A. The alignment score is defined as the share of labeled examples where the judge's output agrees with the human-assigned label. It is the core metric alignment work is trying to raise.
    • B. Coverage of production traces by reviewers describes labeling throughput, not whether the judge's decisions match those labels. That is a different, unrelated statistic.
    • C. Latency differences describe timing performance between calls, not judgment accuracy. Alignment work is concerned with agreement, not speed.
    • D. Whether a dataset example carries a reference output describes dataset composition, not how well the judge's verdicts match human labels. It is unrelated to the alignment metric itself.

    Subdomain 2.4: Evaluator alignment

    15.A team maintains two workflows: one evaluator scores runs from a fixed dataset with reference outputs, and another scores live traces without reference outputs. When sending each to human labeling, what should they expect?

    1. A.The UI offers different paths for sending dataset evaluators versus tracing project evaluators to an annotation queue
    2. B.Only tracing project evaluators can be sent to an annotation queue; dataset evaluators must be labeled offline
    3. C.Both evaluator types must first be merged into a single dataset before any labeling can occur
    4. D.Dataset evaluators bypass the annotation queue entirely and write labels directly to the reference dataset
    Show answer & explanation

    Correct answer: AThe UI offers different paths for sending dataset evaluators versus tracing project evaluators to an annotation queue

    • A. Because dataset-based experiments and tracing-project runs are surfaced in different parts of the UI, sending each to an annotation queue follows a different path even though both end up as human-labeled examples for alignment.
    • B. Dataset evaluators can also be sent to an annotation queue for labeling; offline labeling is not a requirement, so this restriction does not hold.
    • C. Merging the two workflows into a single dataset before labeling is not a required step, and doing so would conflate outputs with and without reference outputs unnecessarily.
    • D. Dataset evaluators still go through human labeling before examples are committed to a reference dataset; there is no direct write path that skips the annotation queue.

    Subdomain 2.3: Running and interpreting experiments

    16.A team runs the same agent configuration twice on an identical dataset and gets noticeably different pass rates between the two runs, even though nothing was changed in the code or prompt. What most plausibly explains this?

    1. A.Inherent sampling variance in LLM generations means repeated runs of an unchanged configuration can still differ in score
    2. B.The dataset must have been silently modified between the two runs, since identical configurations always produce identical scores
    3. C.LangSmith caches and reuses the first run's outputs, so any difference indicates a caching bug that must be reported
    4. D.The evaluator itself is non-deterministic by design and always assigns a random score regardless of the output quality
    Show answer & explanation

    Correct answer: AInherent sampling variance in LLM generations means repeated runs of an unchanged configuration can still differ in score

    • A. LLM generations are inherently stochastic, so even an unchanged configuration can produce different outputs, and therefore different scores, across repeated runs on the same dataset.
    • B. Assuming the dataset changed is an unnecessary leap when normal generation variance is a simpler and far more common explanation for score differences between repeats.
    • C. There is no such caching behavior that forces identical outputs across runs, and treating a normal variance result as a caching bug would be misdiagnosing the situation.
    • D. A well-built evaluator scores based on the actual output content; describing it as assigning purely random scores mischaracterizes evaluators as unreliable rather than pointing at the real source of variance, which is generation sampling.

    Subdomain 2.5: Adding examples to a dataset

    17.A team is auditing why their evaluator keeps passing cases it should be failing, and traces the issue back to how the underlying dataset was built. Which dataset-building mistakes are plausible contributors to this problem? (Select all that apply)(Select 3)

    1. A.Most examples were drawn only from traces where the application already succeeded fully.
    2. B.Reference outputs were copied without verifying they reflect the actually correct answer.
    3. C.The dataset includes a mix of manually written and imported examples from a CSV file.
    4. D.Some examples were organized into named splits for training and validation use.
    5. E.Nearly identical near-duplicate inputs make up a large share of the example set.
    Show answer & explanation

    Correct answers: A, B, EMost examples were drawn only from traces where the application already succeeded fully.; Reference outputs were copied without verifying they reflect the actually correct answer.; Nearly identical near-duplicate inputs make up a large share of the example set.

    • A. Sourcing examples mostly from already-successful traces skews the dataset toward the happy path and gives the evaluator little exposure to failure cases it should catch.
    • B. If reference outputs are copied without verifying correctness, the dataset's ground truth is unreliable, which directly undermines the evaluator's ability to grade correctly.
    • C. Mixing manually written and imported examples is a normal, supported way to build a dataset and is not inherently a source of evaluator blind spots.
    • D. Organizing examples into splits is an organizational feature for structuring experiments and does not itself cause an evaluator to miss failing cases.
    • E. A dataset dominated by near-duplicate inputs lacks diversity, so it fails to exercise the range of behavior needed to reveal cases the evaluator should be failing.

    Subdomain 2.5: Adding examples to a dataset

    18.Which of the following statements accurately describe how dataset versioning and organization work in LangSmith? (Select all that apply)(Select 4)

    1. A.A new dataset version is generated automatically whenever examples are added or edited.
    2. B.Version tags can mark milestones so a CI pipeline can target a specific historical version.
    3. C.Splits are named subsets used to organize examples, separate from per-example metadata tags.
    4. D.Every example in a dataset must belong to exactly one split before it can be used in an evaluation.
    5. E.Metadata key/value pairs can be used to filter examples by group without creating a split.
    Show answer & explanation

    Correct answers: A, B, C, EA new dataset version is generated automatically whenever examples are added or edited.; Version tags can mark milestones so a CI pipeline can target a specific historical version.; Splits are named subsets used to organize examples, separate from per-example metadata tags.; Metadata key/value pairs can be used to filter examples by group without creating a split.

    • A. Dataset editing triggers automatic versioning, so changes to examples produce a new version without a separate manual step.
    • B. Tagging a version marks a meaningful point in the dataset's history, and CI pipelines can target that tag to run against a fixed, known example set.
    • C. Splits are a distinct organizational feature from per-example metadata, used to group examples into named subsets such as training or validation groups.
    • D. Splits are optional; an example does not need to belong to any split to be included in an experiment or evaluation run.
    • E. Metadata key/value pairs support filtering and grouping examples by tag without requiring the more structural step of assigning them to a split.

    Domain 3: Deploy

    Subdomain 3.1: Deployment terminology: graph, deployment, revision, assistant, thread, run

    19.A platform team is documenting how graphs and deployments relate to each other in Agent Server. Which of the following statements are accurate? (Select all that apply.)(Select 3)

    1. A.A deployment is created by taking a graph and running it with a specific configuration.
    2. B.A single graph's code can be used as the basis for more than one deployment.
    3. C.A deployment provides the control plane and data plane infrastructure the graph runs on.
    4. D.A graph cannot exist until at least one deployment has been created from it.
    5. E.A deployment and its graph must always share the exact same version number.
    6. F.Only one deployment may ever reference a given graph across its entire lifetime.
    Show answer & explanation

    Correct answers: A, B, CA deployment is created by taking a graph and running it with a specific configuration.; A single graph's code can be used as the basis for more than one deployment.; A deployment provides the control plane and data plane infrastructure the graph runs on.

    • A. A deployment is created by taking a graph's code and running it under a specific configuration, which is precisely what turns a workflow definition into a running instance.
    • B. The same graph's code can serve as the basis for multiple deployments, such as separate staging and production instances, each with its own configuration.
    • C. A deployment supplies the control plane and data plane infrastructure that lets the graph actually run, handle configuration, and execute requests.
    • D. A graph is a code-level workflow definition that exists on its own before any deployment is created from it, so it does not require a deployment to exist first.
    • E. A deployment's revision history tracks its own version number independently, and there is no requirement that it match a version number on the graph's source code.
    • F. Nothing restricts a graph to a single deployment; the same graph code can be reused across staging, production, or any number of separate deployments.

    Subdomain 3.3: Secret handling

    20.Which of the following are recommended practices for handling API keys and tokens used by a deployed LangGraph agent? (Select all that apply.)(Select 3)

    1. A.Load credentials from environment variables or a secret management service rather than embedding them in code.
    2. B.Configure production secrets through the deployment platform's settings so they are scoped per revision.
    3. C.Commit a `.env` file containing production keys to the repository so the whole team can access it.
    4. D.Rotate a credential and redeploy whenever there is any indication that the value may have been exposed.
    5. E.Print credential values to application logs during startup so operators can confirm they loaded correctly.
    6. F.Paste credential values into chat messages when a teammate needs temporary access for testing.
    Show answer & explanation

    Correct answers: A, B, DLoad credentials from environment variables or a secret management service rather than embedding them in code.; Configure production secrets through the deployment platform's settings so they are scoped per revision.; Rotate a credential and redeploy whenever there is any indication that the value may have been exposed.

    • A. Loading credentials from environment variables or a secret management service is the core recommended pattern for keeping sensitive values out of source code.
    • B. Configuring production secrets through deployment platform settings scoped per revision keeps credential changes tracked and applied through a controlled redeploy process.
    • C. Committing a `.env` file with production keys exposes those credentials to everyone with repository access and permanently to the commit history.
    • D. Rotating a credential and redeploying once exposure is suspected limits the window during which a compromised key remains usable.
    • E. Printing credential values to logs exposes them to anyone with log access, turning a routine startup check into a credential leak.
    • F. Pasting credential values into chat messages creates an unmanaged, unauditable copy of the secret outside any access-controlled system.

    Subdomain 3.3: Secret handling

    21.Which statements about how LangGraph Platform handles secrets across deployment revisions are accurate? (Select all that apply.)(Select 3)

    1. A.Secrets can be set independently for each revision, so a new revision can introduce or change a credential value.
    2. B.Rotating a credential typically requires creating a new revision through a redeploy rather than a live in-place edit.
    3. C.Every revision automatically inherits any change made to a later revision's secrets without additional configuration.
    4. D.Runs and threads created under an earlier revision continue to reflect the environment that revision was deployed with.
    5. E.Secret values configured in the deployment settings are stored in plaintext inside the checked-in `langgraph.json`.
    Show answer & explanation

    Correct answers: A, B, DSecrets can be set independently for each revision, so a new revision can introduce or change a credential value.; Rotating a credential typically requires creating a new revision through a redeploy rather than a live in-place edit.; Runs and threads created under an earlier revision continue to reflect the environment that revision was deployed with.

    • A. Secrets are scoped per revision, so each new revision can introduce a new credential or change an existing one independently of prior revisions.
    • B. Because secret changes apply to a new revision rather than being live-patched onto a running one, rotating a credential normally requires triggering a redeploy.
    • C. Revisions do not automatically inherit later secret changes; each revision keeps the environment it was created with unless it is itself redeployed.
    • D. Runs and threads tied to an earlier revision keep using that revision's environment, which is why an older run can still reflect a since-rotated credential.
    • E. Secrets configured through deployment settings are managed by the platform separately from `langgraph.json`, not stored in plaintext inside the checked-in configuration file.

    Subdomain 3.2: Multi-region serving

    22.A healthcare company deploys separate Agent Server instances in the US and EU to satisfy data-residency rules for each region's patients. A support engineer asks whether a US patient's thread history will appear when querying the EU deployment. What should the engineer be told?

    1. A.No — threads, runs, and checkpoints are persisted in the PostgreSQL backing store of the specific deployment that created them, so the EU deployment has no visibility into US deployment data.
    2. B.Yes — LangSmith Deployment maintains one logical thread store shared across every deployment tied to the same organization, regardless of region.
    3. C.No — thread data is deleted immediately after each run completes, so neither deployment retains any history to query.
    4. D.Yes — checkpoints are asynchronously mirrored between same-organization deployments every five minutes to support disaster recovery.
    Show answer & explanation

    Correct answer: ANo — threads, runs, and checkpoints are persisted in the PostgreSQL backing store of the specific deployment that created them, so the EU deployment has no visibility into US deployment data.

    • A. Runs, threads, assistants, and checkpoints are stored in PostgreSQL scoped to the deployment that produced them, so a separate EU deployment has its own independent backing store and cannot see the US deployment's thread history.
    • B. There is no shared logical thread store spanning all deployments in an organization; each deployment persists its own resources independently, which is exactly why separate regional deployments can satisfy data-residency separation.
    • C. Thread and checkpoint data is explicitly persisted for durability and later retrieval, not deleted right after a run finishes, so this explanation misstates how the storage layer behaves.
    • D. No cross-deployment checkpoint mirroring on any interval is part of the documented architecture; each deployment's checkpoints stay within its own backing store.

    Subdomain 3.2: Multi-region serving

    23.A platform architect evaluating region options asks which statement correctly describes how LangSmith Deployment's Cloud offering differs from Self-Hosted or Standalone options with respect to region selection.

    1. A.Cloud deployments are confined to the regions LangChain operates on AWS/GCP (default plus EU opt-in), whereas Self-Hosted and Standalone Server let the customer pick any region their own infrastructure runs in.
    2. B.Cloud deployments allow the customer to select any AWS or GCP region worldwide, whereas Self-Hosted deployments are restricted to a single LangChain-designated region.
    3. C.Region selection is identical across all deployment types because every Agent Server, regardless of hosting model, connects to the same global PostgreSQL cluster.
    4. D.Cloud, Self-Hosted, and Standalone Server deployments all require the customer to specify a region via `LANGGRAPH_HOST_URL`, since none of them have a default region.
    Show answer & explanation

    Correct answer: ACloud deployments are confined to the regions LangChain operates on AWS/GCP (default plus EU opt-in), whereas Self-Hosted and Standalone Server let the customer pick any region their own infrastructure runs in.

    • A. Cloud deployments are limited to whatever regions LangChain has actually stood up infrastructure in — a default region plus an EU opt-in — while Self-Hosted and Standalone Server deployments run on customer-operated infrastructure, so their region is simply wherever that infrastructure lives.
    • B. This reverses the actual constraint — it is Cloud deployments that are limited to LangChain's supported regions, while Self-Hosted setups are the ones with full freedom over where the customer's own cluster runs.
    • C. There is no shared global PostgreSQL cluster across deployment types; each deployment, whether Cloud, Self-Hosted, or Standalone, persists to its own backing PostgreSQL instance.
    • D. Cloud deployments have a documented default hosting region and only require `LANGGRAPH_HOST_URL` when opting into the EU endpoint; Self-Hosted and Standalone Server region placement is determined by where the customer deploys their infrastructure, not by that variable at all.

    Subdomain 3.4: Authentication vs. authorization

    24.In the context of a LangSmith Deployment (Agent Server), what is the core conceptual distinction between authentication and authorization?

    1. A.Authentication confirms who is making a request, while authorization decides what that already-identified caller may do.
    2. B.Authentication decides what a caller may do, while authorization confirms that the caller's credentials are not expired.
    3. C.Authentication filters which threads a caller can list, while authorization only validates the caller's network origin.
    4. D.Authentication and authorization both verify identity, differing only in whether the check runs before or after a run completes.
    Show answer & explanation

    Correct answer: AAuthentication confirms who is making a request, while authorization decides what that already-identified caller may do.

    • A. This matches the platform's model: an authentication handler establishes identity on every request, and separate authorization handlers then gate what that identified caller can do to threads, assistants, and crons.
    • B. This reverses the roles; permission decisions belong to authorization, while confirming credential validity is part of authentication, not the other way around.
    • C. Filtering which threads are visible is an authorization concern handled by resource-level handlers, not a description of authentication, and authorization is not limited to network origin checks.
    • D. Authorization does not re-verify identity at all; it consumes the identity already established by authentication and applies permission logic to resources instead.

    Subdomain 3.4: Authentication vs. authorization

    25.Which of the following resources are scoped by returning a metadata filter dictionary (e.g. `{"owner": ctx.user.identity}`) from an `@auth.on` search or list handler? (Select all that apply)(Select 3)

    1. A.Threads
    2. B.Assistants
    3. C.Crons
    4. D.Store
    5. E.Deployment revisions
    6. F.Docker build logs
    Show answer & explanation

    Correct answers: A, B, CThreads; Assistants; Crons

    • A. Threads are scoped through the standard metadata-filter pattern, where a search or list handler returns a dictionary matched against thread metadata.
    • B. Assistants are also scoped through the standard metadata-filter pattern used by resource search and list handlers.
    • C. Crons follow the same metadata-filter pattern as threads and assistants for scoping search and list results.
    • D. The Store resource is authorized differently: its handlers rewrite the mutable `namespace` field to scope access, rather than returning a metadata filter dictionary.
    • E. Deployment revisions are managed through the deployment platform's own release process and are not one of the resources exposed to `@auth.on` handlers.
    • F. Docker build logs are an infrastructure artifact from the build pipeline and are not a resource type that authorization handlers can scope access to.

    Subdomain 3.5: Storage durability

    26.During local development a team configures their agent with `durability="sync"` and `InMemorySaver` to test crash recovery. After killing and restarting the process, the thread's prior state is gone. Why?

    1. A.`InMemorySaver` keeps checkpoints only in process memory, so restarting the process discards them regardless of the durability mode chosen.
    2. B.`durability="sync"` was configured incorrectly, since sync mode requires `PostgresSaver` to function at all and silently falls back to no persistence.
    3. C.The thread's `thread_id` was not passed on the restart call, which is the only reason `InMemorySaver` would appear to lose state.
    4. D.Synchronous checkpoint writes are disabled by default for development builds, so no state was ever written in the first place.
    Show answer & explanation

    Correct answer: A`InMemorySaver` keeps checkpoints only in process memory, so restarting the process discards them regardless of the durability mode chosen.

    • A. The durability mode only controls the timing of writes relative to graph execution; it does not change where the checkpointer stores data. An in-memory backend never survives a process restart no matter how synchronously it writes.
    • B. Sync mode works with any checkpointer implementation, including `InMemorySaver`; it does not require Postgres or silently disable itself when a different backend is used.
    • C. Even with the correct `thread_id` supplied, an in-memory backend has nothing to look up after a restart because the underlying process memory holding the checkpoints was cleared.
    • D. Durability modes are not disabled based on build type; the checkpoint writes did occur, they simply landed in memory that did not survive the process restart.

    Subdomain 3.5: Storage durability

    27.What does the checkpointer in LangGraph persist by default, and at what granularity does it write during a run?

    1. A.A snapshot of graph state scoped to a thread, written at superstep boundaries as nodes complete their scheduled work.
    2. B.Only the final output message of a run, written as one record once the entire graph execution finishes.
    3. C.The full conversation across all of a user's threads, written any time any thread belonging to that user changes state.
    4. D.The graph's static definition and configuration, written once at deployment time rather than during execution.
    Show answer & explanation

    Correct answer: AA snapshot of graph state scoped to a thread, written at superstep boundaries as nodes complete their scheduled work.

    • A. This is correct: a checkpointer captures thread-scoped graph state snapshots and writes them at superstep boundaries, which is the core mechanism enabling resumption and fault tolerance.
    • B. The checkpointer persists intermediate state throughout the run, not just a final output message, which is what allows recovery from mid-run failures rather than only capturing the end result.
    • C. This describes the store's cross-thread scope, not the checkpointer, which is deliberately scoped to a single thread rather than aggregating across a user's threads.
    • D. The graph's code definition is not what the checkpointer persists; it persists runtime execution state, which changes throughout a run rather than being fixed at deployment.

    Domain 4: Monitor

    Subdomain 4.1: Reading traces

    28.A developer notices that a nested tool-call run inside a trace shows no latency value, while its parent chain run and sibling LLM run both show latency normally. What is the most likely explanation?

    1. A.The tool call's run was not properly closed with an end time, so LangSmith cannot compute the duration between start and end.
    2. B.Latency is only ever recorded for the root run of a trace, and nested runs never display their own duration.
    3. C.The tool call exceeded the 25,000 run cap for the trace, which removes its latency display but keeps its inputs and outputs.
    4. D.Latency display is disabled for any run type other than LLM, since only model calls are timed by design.
    Show answer & explanation

    Correct answer: AThe tool call's run was not properly closed with an end time, so LangSmith cannot compute the duration between start and end.

    • A. Latency is computed from a run's recorded start and end timestamps, so a run that never receives an end event (for example, due to an unhandled exception in the tool wrapper) will show no computable duration.
    • B. Nested runs are timed independently of the root run; per-run latency at every level of the tree is a core part of what the trace UI displays, not something reserved for the root alone.
    • C. The run cap limits how many runs a trace can capture in total, but it does not selectively strip the latency field from an individual run while leaving its other data intact.
    • D. Latency tracking applies to any run type, including tool and retriever runs, since duration is measured from timestamps rather than being restricted to LLM calls.

    Subdomain 4.1: Reading traces

    29.A data scientist is using `list_runs` with `load_child_runs=True` while also applying a server-side `run_type` filter, in order to inspect nested payloads for only the tool runs that match. What does enabling `load_child_runs` add to this query?

    1. A.It fetches the nested run payloads under each matched run so the local traversal can access child-run detail alongside the server-side filter results.
    2. B.It replaces the server-side `run_type` filter, causing the query to instead return every run in the project regardless of type.
    3. C.It converts the query from run-level results into a single project-wide cost summary with no per-run detail.
    4. D.It restricts the query to only root runs, discarding any run that has a parent within its trace.
    Show answer & explanation

    Correct answer: AIt fetches the nested run payloads under each matched run so the local traversal can access child-run detail alongside the server-side filter results.

    • A. `load_child_runs` fetches nested run payloads so that after the server narrows results with a filter like `run_type`, the caller can traverse into child-run detail locally, combining server-side filtering with local access to nested data.
    • B. Enabling `load_child_runs` does not override or disable the `run_type` filter; the two work together, with the filter narrowing results and this flag adding nested detail to what's returned.
    • C. The query still returns run-level records; it does not collapse into an aggregate project-wide cost summary, which is a separate reporting view entirely.
    • D. This flag does the opposite of restricting to root runs only; it is specifically for accessing child-run payloads nested beneath matched runs.

    Subdomain 4.2: Grouping traces into threads

    30.A team runs `list_threads` against a project to review conversations from a marketing campaign that ran two weeks ago, but the call returns no results even though the traces clearly exist. What is the most likely explanation?

    1. A.`list_threads` defaults to the last 24 hours, so the `start_time` parameter must be widened to cover two weeks ago.
    2. B.`list_threads` only returns threads created in the current calendar month regardless of any parameters supplied.
    3. C.Threads older than 48 hours are automatically archived and become permanently unqueryable through the SDK.
    4. D.The project must be re-indexed manually before `list_threads` can surface any conversation older than a day.
    Show answer & explanation

    Correct answer: A`list_threads` defaults to the last 24 hours, so the `start_time` parameter must be widened to cover two weeks ago.

    • A. `list_threads` defaults to a start time of the last 24 hours, so conversations from two weeks ago are excluded unless `start_time` is explicitly widened to cover that window.
    • B. There is no calendar-month restriction on `list_threads`; the actual default window is the last 24 hours, controlled by the `start_time` parameter.
    • C. Threads are not automatically archived after 48 hours or made permanently unqueryable; the missing results stem from the default `start_time` window, not archival.
    • D. No manual re-indexing step is required to query older threads; simply adjusting `start_time` on the query resolves the issue.

    Subdomain 4.2: Grouping traces into threads

    31.Which metadata keys does LangSmith recognize when grouping traces into a thread? (Select all that apply.)(Select 2)

    1. A.thread_id
    2. B.session_id
    3. C.conversation_id
    4. D.trace_id
    5. E.correlation_id
    6. F.run_id
    Show answer & explanation

    Correct answers: A, Bthread_id; session_id

    • A. `thread_id` is the primary metadata key LangSmith looks for when grouping related traces into a single thread.
    • B. `session_id` is recognized as a fallback metadata key, used to group traces into a thread when `thread_id` is not present.
    • C. `conversation_id` is not a metadata key LangSmith looks for when assembling threads, even though it sounds semantically similar to conversation grouping.
    • D. `trace_id` identifies an individual trace, not the higher-level thread that groups multiple traces together, so it is not used for thread grouping.
    • E. `correlation_id` is a common pattern in distributed tracing generally, but it is not one of the keys LangSmith checks for thread grouping.
    • F. `run_id` identifies a single run within a trace, not the conversation-level grouping that thread metadata provides.

    Subdomain 4.3: Tracking costs and user sentiment

    32.A team wants total prompt-token spend across a project for the past 30 days, ignoring completion costs entirely. In a custom Dashboard chart, which token-type filter and aggregation combination should they select?

    1. A.Filter to Input, aggregated with Sum
    2. B.Filter to Output, aggregated with Sum
    3. C.Filter to Total, aggregated with Average
    4. D.Filter to Input, aggregated with Percentile
    Show answer & explanation

    Correct answer: AFilter to Input, aggregated with Sum

    • A. Filtering the token metric to Input isolates prompt-side spend, and summing across the 30-day window produces the total prompt-token cost the team wants, excluding completion costs.
    • B. Output isolates completion-side token spend, which is exactly what the team wants to exclude, so this combination measures the wrong side of the cost.
    • C. Filtering to Total mixes prompt and completion spend together instead of isolating prompt tokens, and Average returns a per-period mean rather than a running total for the month.
    • D. Input does isolate prompt-side spend, but Percentile reports a distribution value like p95 rather than the cumulative total the team is asking for.

    Subdomain 4.3: Tracking costs and user sentiment

    33.After each agent response, users can click a thumbs-up or thumbs-down icon in the product UI. When that click is forwarded to LangSmith, what does it become?

    1. A.A feedback score attached to the corresponding run or trace, usable as a binary sentiment signal
    2. B.A new automation rule that reruns the online evaluator on every future trace in the project
    3. C.A cost adjustment applied automatically to the run's Input/Output cost breakdown
    4. D.A tag appended to the project name so filtered dashboards separate satisfied from dissatisfied users
    Show answer & explanation

    Correct answer: AA feedback score attached to the corresponding run or trace, usable as a binary sentiment signal

    • A. Thumbs-up/thumbs-down clicks are logged as feedback scores attached directly to the run or trace they refer to, giving a simple binary signal of user sentiment that can feed dashboards and alerts.
    • B. Forwarding a feedback click does not create or modify an automation rule; automation rules are configured separately and can optionally use feedback as a filter condition, but the click itself is just a feedback score.
    • C. Feedback clicks do not alter the run's cost breakdown; cost figures come from token usage and pricing data, which is unrelated to user sentiment signals.
    • D. Feedback is recorded against the specific run or trace, not appended as a tag on the project's name, so project-level tagging is not how this signal is stored.

    Subdomain 4.4: Online Evals vs. Insights

    34.A customer-support agent runs as a multi-turn conversation, and the team wants an online evaluator that judges the overall quality of the entire conversation thread rather than any single LLM call in isolation. What should they configure?

    1. A.A multi-turn evaluator, built to assess an entire conversation thread at once.
    2. B.A run-level evaluator, which scores each individual run as it completes.
    3. C.An Insights report, which summarizes traces without an evaluator prompt.
    4. D.An alerting rule on latency, which aggregates metrics over a defined time window.
    Show answer & explanation

    Correct answer: AA multi-turn evaluator, built to assess an entire conversation thread at once.

    • A. LangSmith online evaluations distinguish multi-turn evaluators, which handle entire conversation threads, from run-level evaluators for single runs, so a whole-thread quality check calls for the multi-turn option.
    • B. Run-level evaluators assess a single run in isolation, such as one LLM call, which does not capture quality across an entire multi-turn conversation.
    • C. An Insights report surfaces aggregate usage patterns and failure modes across many traces, but it is a distinct capability from configuring an evaluator to score conversation quality.
    • D. A latency alert monitors a numeric performance metric over time, not the semantic quality of an entire conversation thread.

    Subdomain 4.5: Alerting

    35.A team ships a new prompt version and wants an automatic notification if average user thumbs-down ratings on the `answer_helpfulness` feedback key start trending down. What must they configure for this alert to work correctly?

    1. A.A Feedback Score alert that specifies `answer_helpfulness` as the feedback key, since this metric type requires naming which feedback score to monitor.
    2. B.An Errors alert filtered by a tag named `answer_helpfulness`, since error filters are documented as the only way to reference a specific feedback key value.
    3. C.A Run Count alert using Percentage aggregation, since feedback trends are inferred indirectly from changes in overall run volume.
    4. D.A Latency alert with the `<=` comparison operator, since slower runs are treated as a proxy signal for lower helpfulness scores.
    Show answer & explanation

    Correct answer: AA Feedback Score alert that specifies `answer_helpfulness` as the feedback key, since this metric type requires naming which feedback score to monitor.

    • A. Feedback Score alerts require specifying which feedback key to monitor, so naming `answer_helpfulness` is necessary for the alert to average that specific rating and detect a downward trend.
    • B. The Errors metric tracks run failure status, and its filters scope by status, run type, tag, or error type, not by feedback key, so it cannot monitor a feedback score this way.
    • C. Run Count reflects traffic volume rather than sentiment, so a percentage of run counts carries no information about whether users are rating responses as helpful.
    • D. Latency measures execution speed and has no established relationship to user helpfulness ratings, so it cannot substitute for directly monitoring the feedback key.

    Want the full experience?

    These are just samples. Practice the full LangChain Certified Agent Engineer question bank in quiz mode — free, no signup, with domain practice and exam simulation.