Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 4 of 6

Choosing a pattern for an external agent

9 min

Listen to this lesson

0:00 / 8:28

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.

  1. Name the jobRead data, write a document, or delegate a task?
  2. Find the endorsed routeMCP Gateway, Agent Gateway (when GA), Joule Studio, or no agent at all.
  3. Fix identityWhose authorizations apply on each call: the user's, or a narrowly scoped technical identity?
  4. Bound the actionsWhich tools exist, which are read-only, which need human approval?
  5. Prove itLogs, tests and a sign-off before production.
Five steps Theo uses for every agent request.
The Sign-Off Table · thesignofftable.com/academy/sap-ai-205

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.

Request 1: a read-only MCP tool through the MCP Gateway, running with the user's own SAP authorizations.
The Sign-Off Table · thesignofftable.com/academy/sap-ai-205

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.

RequestPatternIdentityMain controlStatus
Read order statusMCP via MCP GatewayUser-delegated token, user's SAP rolesTwo read-only tools, subscription in Developer HubBuild now
Draft a requisitionMCP tool, narrow writeUser-delegated; agent identity loggedDraft-only tool, existing release and approval thresholdsPilot with approvals
Delegate risk assessmentA2A via Agent GatewayIAS App2App token with named userJoule agent owns the business logicTarget; gateway not GA
Contoso's three requests and the pattern chosen for each.
The Sign-Off Table · thesignofftable.com/academy/sap-ai-205

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?

Key points
  • 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. 1. In SAP's Copilot Studio reference architecture, how do tool calls get the user's SAP authorizations?

  2. 2. Why does Theo expose a "create requisition draft" tool rather than "create and release"?

  3. 3. Which pattern fits delegating a delivery risk assessment to an SAP Joule agent?

  4. 4. What is the status of Claude in the SAP Business AI Platform as of this course's review?