Lesson 4 of 6
Choosing a pattern for an external agent
9 min
Listen to this lesson
Theory meets reality when a business team asks for something specific. After go-live, Contoso's teams brought Theo, the integration lead, three requests. Each one maps to a different pattern. Working through them shows how MCP, A2A, the gateways and the API Policy combine.
- Name the jobRead data, write a document, or delegate a task?
- Find the endorsed routeMCP Gateway, Agent Gateway (when GA), Joule Studio, or no agent at all.
- Fix identityWhose authorizations apply on each call: the user's, or a narrowly scoped technical identity?
- Bound the actionsWhich tools exist, which are read-only, which need human approval?
- Prove itLogs, tests and a sign-off before production.
Request 1: an external agent reads data
Fleet Sales uses Microsoft Copilot Studio and wants an agent that answers "where is my order?" for Great Lakes Fleet Services, for example sales order 1000457 and its outbound delivery 80001234. This is read-only, user-facing and conversational: a good fit for MCP through the MCP Gateway. SAP's Architecture Center has a reference architecture for exactly this: Copilot Studio is the MCP client, connects to an MCP server in SAP Integration Suite over Streamable HTTP, and authenticates with the OAuth 2.0 authorization code flow. Microsoft Entra ID is federated with SAP Cloud Identity Services over OIDC, so each tool call runs under the signed-in user's own SAP authorizations, without a shared service account.
Theo builds the MCP server from the published sales order API artifact and exposes only two tools: get order status and list open orders for a customer. He refines the tool descriptions so the agent picks them correctly, publishes the server in Developer Hub, and registers the Copilot agent as the only subscriber.
Request 2: an agent creates a document
Procurement wants an agent that drafts purchase requisitions for rotor CMC-RTR-200 from Lakeside Components when stock runs low. Writes are where risk lives. SAP's architecture guidance warns that connecting MCP directly to raw transactional APIs, without semantic enrichment, can lower accuracy and risk incorrect business transactions. Theo's design keeps the agent in a narrow lane:
- One tool that creates a requisition draft, never one that releases or converts it.
- Contoso's existing controls stay in force: requisitions over $10,000 still need release, and purchase orders over $25,000 still go through flexible workflow approval.
- The tool validates material, plant (1710 Detroit) and quantity limits before calling the API, and rejects anything outside them.
- Every call is logged with the user, the agent, the parameters and the resulting document number.
Where an SAP-delivered Joule agent already covers the business task, delegating to it is often better than building write tools yourself, because SAP carries the business logic and semantic enrichment. That is the next request.
Request 3: delegate a task to a Joule agent
Supply chain planning wants its planning agent to ask an SAP Joule agent, "assess delivery risk for Lakeside Components next month," and get a report back. That is agent-to-agent delegation, which SAP routes through A2A via the Agent Gateway. Because the Agent Gateway isn't GA yet, Theo records the design as a target, keeps the current manual hand-off, and adds a re-verification date. SAP's guidance also describes A2A connectivity through SAP Integration Suite when you need API management, guaranteed delivery or monitoring in front of the gateway.
| Request | Pattern | Identity | Main control | Status |
|---|---|---|---|---|
| Read order status | MCP via MCP Gateway | User-delegated token, user's SAP roles | Two read-only tools, subscription in Developer Hub | Build now |
| Draft a requisition | MCP tool, narrow write | User-delegated; agent identity logged | Draft-only tool, existing release and approval thresholds | Pilot with approvals |
| Delegate risk assessment | A2A via Agent Gateway | IAS App2App token with named user | Joule agent owns the business logic | Target; gateway not GA |
What about Claude and other agents?
In May 2026 SAP and Anthropic announced plans to bring Claude into the SAP Business AI Platform and Joule, with agents coordinating across SAP applications via MCP. SAP's announcement describes plans, not available features, and gives no dates. For a customer's own Claude-based agent today, the architecture is the same as for any third-party agent: connect it as an MCP client to a governed MCP Gateway server, or (once available) as an A2A client to the Agent Gateway. SAP's Architecture Center pages reviewed for this course name Copilot Studio, Google Vertex AI and AWS Bedrock AgentCore, but don't describe a Claude-specific setup, so treat Claude as "a third-party MCP or A2A client" and apply the same checks.
What would you do?
A product manager asks Theo to "just give the Copilot agent every sales and delivery API, so it can figure things out." What is the best response?
- Read-only, user-facing questions fit MCP tools through the MCP Gateway with user-delegated tokens.
- Writes need narrow draft-style tools, existing approval thresholds and full logging; prefer SAP agents where they exist.
- Task delegation to Joule agents is A2A via the Agent Gateway, which is still a target until GA.
- Claude and other agents follow the same third-party patterns; SAP's Claude integration is announced, not GA.
Check your understanding · not graded
Lesson check
1. In SAP's Copilot Studio reference architecture, how do tool calls get the user's SAP authorizations?
2. Why does Theo expose a "create requisition draft" tool rather than "create and release"?
3. Which pattern fits delegating a delivery risk assessment to an SAP Joule agent?
4. What is the status of Claude in the SAP Business AI Platform as of this course's review?