The more capable an agent becomes, the more I want to understand where its answer came from—and whether the next version actually makes it better.
Reading LangChain’s guide on production agents in financial services left me thinking about three connected product problems:
- Architecture: when should we split responsibilities?
- Visibility: how do people find useful information in a growing volume of logs?
- Evaluation: how do teams compare results across versions?
I would design the improvement process alongside the user experience—so the team can learn from failures and verify each change.
Let agent boundaries emerge through iteration
The guide’s line, “Multi-agent architectures emerge through iteration,” resonated with me. It describes Ask DAVID’s architecture evolving as earlier versions exposed limitations. [1]
Building small and testing quickly helps reveal where a useful boundary belongs. I would:
- Start with an observed failure. If source context disappears during analysis, investigate that specific loss.
- Try the smallest useful fix. Clearer inputs, a better tool, or a simpler workflow may be enough.
- Make specialization earn its place. Add a role when it improves a measured outcome or establishes a necessary control.
A failure helps reveal the next boundary
My proposed decision path—not a prescribed architecture.
- Define the task
- Record its inputs and outputs
- Compare with the baseline
- Check quality and coordination cost
For every specialist role, I would define:
- Responsibility: the task it owns and the tools it may use.
- Handoff: the evidence, assumptions, and unresolved questions the next step needs.
- Failure path: how it recovers, stops, or escalates.
Modularity can support transparency, but every additional handoff still needs to be tested.
Make traces usable for the people improving the product
The guide emphasizes inspecting prompts, retrieved context, tool calls, and outputs to diagnose agent behavior. [1] My next question is how easily people can find and use that information.
- Start from the problem. Link a failed answer or stakeholder comment directly to its run.
- Find patterns quickly. Filter by task, agent, version, and failure type.
- Open the relevant step. Highlight retries, missing evidence, and validation failures.
One run, several useful entry points
An illustrative review view—these are inspection questions, not captured logs.
- Which sources were selected?
- What context reached analysis?
- Which tools were called?
- Where did retries occur?
- Which checks passed or failed?
- What evidence supports the answer?
- Inspect tool errors
- Verify the repair
- Find recurring failures
- Prioritize the next change
- Check claims and sources
- Record unresolved gaps
For me, the useful measure is how quickly a team can find the cause and verify a fix. I would also:
- Capture observable actions and supporting evidence.
- Apply appropriate access, redaction, and retention controls.
- Treat the trace as an aid to review, not proof that the answer is correct.
Make evaluation easier to operate
This is the pain point I keep coming back to: how do we organize tests, results, and feedback so that comparing agent versions feels as approachable as comparing a UI experiment?
The guide describes Chime using concrete examples and legal-reviewer annotations to align evaluation across teams. It also reports longer evaluation cycles for Ask DAVID despite faster development. [1]
I would borrow the discipline of A/B testing:
- A clear hypothesis: state what the proposed change should improve.
- Comparable conditions: begin with paired offline tests on the same versioned cases, including held-out cases.
- Agreed measures: separate representative tasks, edge cases, and tool failures.
- A visible decision record: explain what changed and why it should move forward.
Compare versions on common ground
A proposed comparison framework—no performance results are implied.
- Same versioned test cases
- Same evaluation rubric
- Recorded data and tool conditions
- Current configuration
- Case-level results and traces
- Documented proposed change
- Case-level results and traces
- Which cases improved?
- Which cases regressed?
- How variable are the results?
- What changed in cost and latency?
Keep critical failures visible before deciding whether a version should advance.
- Repeat cases where variability matters. Compare the spread of results, not only the average.
- Inspect serious regressions separately. An overall gain may hide a consequential failure.
- Control any later live experiment. Match safeguards to the actions and risks involved.
A shared scorecard, with task-specific measures
I would define a rubric, thresholds, and reviewer for each task. These dimensions are proposed starting points, not results from the guide.
Six lenses for the same version
Choose task-specific measures within each dimension.
Task completion
Did it address the actual request?
- Task success against the rubric
- Omissions
Correctness & grounding
Are calculations and claims supported?
- Verified calculation checks
- Supported-claim rate
- Citation validity
Workflow reliability
Did tools and handoffs preserve context?
- Tool and handoff failures
- Recovery success
- Appropriate escalation
Safety & permissions
Did behavior stay within its boundaries?
- Policy-test outcomes
- Unauthorized actions
- Sensitive-data exposure
User usefulness
How much work remains before use?
- Reviewer edits
- Review time
- User feedback
Efficiency
What did a useful result require?
- Latency distribution
- Cost per successful task
- Retries
- Keep critical failures separate from aggregate quality. Better wording or lower cost should not outweigh an unauthorized action.
- Check components and the complete workflow. A good individual score does not establish a good final answer.
Connect feedback to the version it can improve
My ideal evaluation record would connect:
- The case: test input, expected behavior, and dataset version.
- The run: trace, result, and agent configuration.
- The environment: model, prompts, tools, and retrieval data.
- The review: evaluator rubric, stakeholder comments, and final decision.
Turn a confirmed issue into a regression case
Every step stays connected to the original run and version record.
- Link the trace and evidence
- Tag category and severity
- Agree on expected behavior
- Record reviewer resolution
- Document the change
- Link its configuration
- Check the regression case
- Compare with the baseline
- Structure stakeholder feedback. Capture category, severity, evidence, and suggested correction.
- Preserve disagreements. Calibrate the rubric and record how human or automated-review disagreements were resolved.
- Measure critic and revision loops. Check whether they fix verified errors, introduce new ones, or add delay.
- Bound retries and define escalation. Keep the improvement process controllable.
I want a team to move easily from a version comparison to the changed cases, then to their traces and feedback.
My product takeaway
My interest is in making improvement a repeatable part of the product.
Design the improvement process
Start small
- Establish responsibilities
- Test each new boundary
Make work visible
- Explain failures
- Trace claims to evidence
Compare and learn
- Share evaluation criteria
- Verify each change
I want the process of improving an agent to be as thoughtfully designed as the experience of using it.
Source & context
This reading reflection draws on LangChain’s vendor-published guide.
- The design proposals, diagrams, scorecard, and product takeaways are my interpretation.
- The organization examples are attributed to the guide.
- LangChain — Financial Services Agents in Production: Lessons building agents from J.P. Morgan, Chime, and Bridgewater. Relevant sections: Ask DAVID (page 7), Chime (pages 12–14), and iteration, observability, and evaluation (pages 16–17). Read the PDF.