Proposal
Add a new sample, samples/aml-alert-triage-agent: a LangGraph coded agent for a financial-services use case, triaging anti-money-laundering alerts.
What it demonstrates
- Splitting language work from decisions. The UiPath LLM Gateway reads the alert, extracts parties and amounts, does all arithmetic, and writes the rationale. An external decision model (TypeSafe Jev) makes every decision (5 red-flag probabilities, a risk level, a disposition) in one typed, calibrated call.
- Calling a third-party API from a serverless coded agent. The API key is read from an Orchestrator Asset at runtime, because
.env does not reach the serverless runtime. Verified with a published PythonCodedAgent run.
- Evaluating a coded agent. Includes a 12-alert synthetic eval set with ground truth, and
evaluate.py for schema, accuracy, and evidence-grounding checks.
- Switchable decider. A
decider input swaps the gateway LLM into the decision seat, so both models answer the same seven-question rubric for a like-for-like comparison.
- A documented gotcha:
uipath pack does not regenerate entry-points.json, so new Input fields are missing from the Orchestrator Start-job form until you re-run uipath init.
The sample is in a PR that references this issue. It follows the existing sample layout (main.py, langgraph.json, uipath.json, bindings.json, .env.example, README.md) and adds an entry to samples/README.md.
Happy to adjust scope, naming, or the README to fit the samples guidelines.
Proposal
Add a new sample,
samples/aml-alert-triage-agent: a LangGraph coded agent for a financial-services use case, triaging anti-money-laundering alerts.What it demonstrates
.envdoes not reach the serverless runtime. Verified with a publishedPythonCodedAgentrun.evaluate.pyfor schema, accuracy, and evidence-grounding checks.deciderinput swaps the gateway LLM into the decision seat, so both models answer the same seven-question rubric for a like-for-like comparison.uipath packdoes not regenerateentry-points.json, so newInputfields are missing from the Orchestrator Start-job form until you re-runuipath init.The sample is in a PR that references this issue. It follows the existing sample layout (
main.py,langgraph.json,uipath.json,bindings.json,.env.example,README.md) and adds an entry tosamples/README.md.Happy to adjust scope, naming, or the README to fit the samples guidelines.