Joule Studio Part 7: Evaluation, Managed Runtime and Observability
Operate agents responsibly: evaluating agent behavior (not just single LLM calls) against realistic multi-step scenarios, the managed runtime SAP provides versus the operational responsibility of Bring Your Own Agent, and observability into what an agent actually did — which tools it called, in what order, and why.
Explanation
📌 KEY POINTS
✅ Evaluating an agent means testing multi-step scenarios end to end, not just individual LLM responses — an agent can reason correctly at each step yet still reach the wrong overall outcome.
✅ Agents built and deployed within Joule Studio's low-code path run on SAP's managed runtime; Bring Your Own Agent means you operate the runtime yourself (scaling, patching, availability).
✅ Observability for agents means tracing which tools were called, in what order, with what inputs, and why the agent chose that path — plain request/response logging isn't enough to debug agentic behavior.
✅ Retrying an unresolved failure without understanding why it failed can compound problems — an agent that keeps calling the same failing tool needs its failure-handling logic examined, not just more retries.
⚠️ Treating agent evaluation the same as evaluating a single generative AI hub prompt misses the failure modes unique to multi-step orchestration — plan/tool-selection errors that a single-call evaluation would never surface.
━━━━━━━━━━━━━━━━━━━━
▶ WHERE WE ARE
Part 6 covered business context. Now running agents responsibly in production.
━━━━━━━━━━━━━━━━━━━━
▶ 1. MULTI-STEP EVALUATION
- Test full scenarios, not single calls.
━━━━━━━━━━━━━━━━━━━━
▶ 2. MANAGED VS SELF-MANAGED RUNTIME
- Low-code path is managed; Bring Your Own Agent is not.
━━━━━━━━━━━━━━━━━━━━
▶ 3. OBSERVABILITY
- Tool call tracing, decision logging.
━━━━━━━━━━━━━━━━━━━━
▶ 4. FAILURE HANDLING
- Understand why before retrying.
━━━━━━━━━━━━━━━━━━━━
▶ 5. OPERATIONAL OWNERSHIP
- Know which runtime you're responsible for.
━━━━━━━━━━━━━━━━━━━━
▶ STEP BY STEP
- Write a multi-step evaluation scenario for a real agent use case.
- Run it and trace exactly which tools were called, in order.
- Identify whether managed or self-managed runtime applies, and check the relevant operational responsibilities.
✅ CHECKPOINT: you can show the full tool-call trace for a scenario, not just its final answer.
Code example
===== MULTI-STEP EVALUATION (conceptual) =====Scenario: "Employee requests a refund for a returned item."Expected trace: LookupOrderSkill → VerifyReturnEligibilitySkill → (if eligible) CreateRefundSkill → NotifyUserSkillEvaluate: correct tools called? correct order? correct final outcome? any unnecessary/looped calls? ===== RUNTIME RESPONSIBILITY =====Joule Studio low-code path → SAP managed runtime (SAP operates it)Bring Your Own Agent → your own BTP subaccount (you operate it: scaling, patching, availability) ===== FAILURE HANDLING =====Agent kept retrying the same unresolved failure → check idempotency and failure-handling logic, not just retry countReal project scenario
An agent kept retrying the same unresolved purchase-order lookup failure five times before giving up, each retry adding latency without changing the outcome. Tracing the tool calls showed the underlying skill was failing for a data reason no retry would fix; adding a distinct error path (rather than blind retries) and fixing the root cause in the skill resolved it.
Common mistakes
- Evaluating only single LLM calls, missing multi-step orchestration failures.
- Confusing managed and self-managed runtime responsibilities.
- Debugging with plain logs instead of tool-call traces.
- Retrying a failure blindly without understanding its cause.
- Not checking idempotency before allowing retries on consequential tools.
Best practices
- Evaluate full multi-step scenarios, not isolated calls.
- Know which runtime (managed vs self-managed) you're responsible for.
- Use tool-call tracing for observability, not just request/response logs.
- Diagnose failure causes before adding retry logic.
- Verify idempotency for any tool subject to retries.
Interview angle
Questions: "How is evaluating an agent different from evaluating a single LLM prompt?", "What's the difference in operational responsibility between the managed runtime and Bring Your Own Agent?", "What does good observability look like for a multi-step agent?"
Strong answer: multi-step scenario evaluation, managed vs self-managed operational ownership, tool-call tracing observability, failure diagnosis before retry.
Practice this lesson
Quick check
1. Which pattern is risky when evaluating an agent before production?
2. Before relying on an agent's evaluation results in production, what should you confirm?
3. An agent kept retrying the same unavailable back-end API and eventually caused a timeout cascade. What should be fixed?
Interview questions
1. Explain the architecture and key design decisions in "Joule Studio Evaluation, Managed Runtime and Observability".
Answer it in your own words first, then compare.
2. A production Joule implementation has a failure related to "Joule Studio Evaluation, Managed Runtime and Observability". How would you isolate the issue and decide the safest corrective action?
Answer it in your own words first, then compare.
Reference-verified: the steps are checked against official SAP documentation and tutorials, and object and field names in the sample code are checked for consistency. The code has not been compiled or run on an SAP system by ERPClimb. Syntax marked release-dependent varies by SAP release, so check it in your own system.
More lessons in this topic
- Joule Studio Part 1: Joule, Agents, Assistants and Joule Studio
- Joule Studio Part 2: Build Your First Custom Joule Agent
- Joule Studio Part 3: Joule Studio Tools, Joule Skills and MCP
- Joule Studio Part 4: Low-Code vs Pro-Code — Python, Frameworks and A2A
- Joule Studio Part 5: Workflows — Cross-System Orchestration and Approvals
- Joule Studio Part 6: Business Context — Knowledge Graph and Business Data Cloud
- Joule Studio Part 8: Governance — AI Agent Hub, LeanIX, Signavio and MCP