Skip to content

Add SAP Integration Suite Copilot agent - #6363

Open
rameshvaranganti wants to merge 4 commits into
github:mainfrom
rameshvaranganti:add-sap-integration-suite-copilot-agent
Open

rameshvaranganti wants to merge 4 commits into
github:mainfrom
rameshvaranganti:add-sap-integration-suite-copilot-agent

Conversation

@rameshvaranganti

@rameshvaranganti rameshvaranganti commented Nov 11, 2026 •

Copy link
Copy Markdown

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, workflow, or canvas extension file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, workflow, or canvas extension with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the main branch for this pull request.

Description

Summary

Adds the sap-cloud-integration skill (SAP Cloud Integration / CPI runtime knowledge) and the SAP Integration Suite Copilot agent, which delegates CPI questions to it.

This reworks the submission after the feedback on #6364, which said the earlier version was "a short persona prompt and broad checklist" with no example of what it gets right that a capable model would miss. The new version is a skill with four reference files of CPI runtime behavior:

  • Groovy script API: streaming body access, MPL properties vs. custom header properties vs. gated attachments, SecureStoreService, ValueMappingApi
  • Header vs. exchange property scope: ProcessDirect, JMS (Transfer Exchange Properties, 4 MB limit), HTTP receiver Request Headers (none by default), Allowed Header(s), SAP_* / Camel* names the runtime reads
  • Exception Subprocess outcomes: End → Completed, Error End → Failed, Escalation End → Escalated; SAP_MessageProcessingLogCustomStatus; CamelExceptionCaught with AhcOperationFailedException / OsciException; JMS retry with SAPJMSRetries (Non-Exclusive queues)
  • MPL error → cause → check: SFTP, HTTP/OAuth/certificates (including SAP_DisableMonitoringHeaders for unexplained HTTP 400), Cloud Connector, IDoc, OData, SOAP, AS2

Every behavior claim is cross-checked against the SAP Help Portal source in SAP-docs/btp-integration-suite. references/sap-documentation-index.md links each topic to the SAP page it comes from. Author: SAP integration architect with 20+ years on SAP PI/PO and Integration Suite.

Evaluation: same model, with and without the skill

Environment: VS Code 1.145.3, GitHub Copilot Chat 0.33.1, Agent mode, model Copilot Fusion (auto-routed to gpt-6-luna). Each prompt ran in a new chat, first in an empty workspace (plain), then in a workspace containing only .github/skills/sap-cloud-integration (skill). Screenshots below.

# Prompt Without skill With skill
1 "In the Exception Subprocess I need the receiver's HTTP status and error body." ❌ Checks for org.apache.camel.component.http.HttpOperationFailedException with instanceof. CPI's HTTP receiver throws org.apache.camel.component.ahc.AhcOperationFailedException (SAP script example), so the script never matches and always throws. ✅ Reads CamelExceptionCaught, compares by class name to AhcOperationFailedException as SAP's example does, extracts getStatusCode(), getStatusText(), getResponseBody(), and notes the OData V2 difference. Copilot shows it read error-handling-reliability.md.
2 "Write a Groovy script that logs the full payload for every message to the MPL." ⚠️ Attaches the payload unconditionally to every message's MPL, with a general caution only. ✅ Same script, but the attachment is gated by a property fed from an externalized LOG_PAYLOAD flag, with a tenant test (flag off → no attachment) and storage/PII guidance.
3 "My Exception Subprocess … ends with an End event. Support says failed messages don't show up as failed. Why?" ⚠️ Correct main fix (Error End). ✅ Also: Escalation End for status Escalated, CamelHttpResponseCode so synchronous callers don't get HTTP 200, and SAP_MessageProcessingLogCustomStatus when the error is handled on purpose, so support can filter by Custom Status.

Where the skill did not add much: for "property lost over JMS", both answers proposed copying it into a header (the skill only added the Transfer Exchange Properties caution). For "IDoc status 56", the plain answer was already good. That test exposed an overly narrow line in the skill, which I corrected before this submission.

Screenshots: with and without the skill (click to expand)

Without skill — #1 HTTP status in Exception Subprocess

Screenshot 2026-11-11 215948

With skill — #1 HTTP status in Exception Subprocess

Screenshot 2026-11-11 221031

Without skill — #2 Payload logging

Screenshot 2026-11-11 215640

With skill — #2 Payload logging

Screenshot 2026-11-11 220835

Without skill — #3 End event in Exception Subprocess

Screenshot 2026-11-11 215456

With skill — #3 End event in Exception Subprocess

Screenshot 2026-11-11 220637

Without skill — Property lost over JMS

Screenshot 2026-11-11 215541

With skill — Property lost over JMS

Screenshot 2026-11-11 220738

Without skill — IDoc status 56

Screenshot 2026-11-11 215841

With skill — IDoc status 56 (before the IDoc correction)

Screenshot 2026-11-11 220939

Changes since the first review

  • Agent prompt no longer contains an author line; generated code carries no attribution.
  • Status note requires a confirmed successful tenant test; deployment alone is not enough.
  • Agent reduced to a thin entry point; CPI knowledge moved into the skill.

@rameshvaranganti
rameshvaranganti requested review from a team as code owners November 11, 2026 04:29
Copilot AI auto review requested due to automatic review settings November 11, 2026 04:29
@github-actions github-actions Bot added agent PR touches agents new-submission PR adds at least one new contribution labels Nov 11, 2026
@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

🔍 Vally Lint Results

⚠️ Warnings or advisories found

Scope Checked
Skills 1
Agents 1
Total 2
Severity Count
❌ Errors 0
⚠️ Warnings 0
ℹ️ Advisories 1

Summary

Level Finding
ℹ️ Vally currently lints SKILL.md content. Agent files were detected but skipped:
Full linter output
### Linting skills/sap-cloud-integration
✅ sap-cloud-integration (2/2 checks passed)
    ✓ [spec-compliance] All 1 skill(s) are spec-compliant.
        ✓ spec-compliance: All spec checks passed.
    ✓ [valid-refs] All file references across 1 skill(s) are valid.
        ✓ valid-refs: All file references resolve to existing files within the skill directory.

1 skill(s) linted, 1 passed

### Agent files detected (not linted by vally)
ℹ️ Vally currently lints SKILL.md content. Agent files were detected but skipped:
agents/sap-integration-suite-copilot.agent.md

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

🔒 PR Risk Scan Results

Scanned 8 changed file(s).

Severity Count
🔴 High 0
🟠 Medium 0
ℹ️ Info 0

✅ No matching risk patterns were detected in changed files.

This is an automated soft-gate report. Findings indicate review targets and do not block merge by themselves.

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

🚦 Submission status: 👀 Ready for review

Risk tier: merge-risk:medium — New or substantially changed resource without privileged execution
Required to merge: passing submission-gate checks plus 1 approval from reviewers with write access.

Why this tier
  • Adds 8 file(s), e.g. agents/sap-integration-suite-copilot.agent.md
  • Changes 442 lines (low-risk limit is 40)

Automated checks

Check Status Details
Line endings ✅ Passed Passed · logs
Spelling ✅ Passed Passed · logs
Generated README consistency ✅ Passed Passed · logs
Skill validation ✅ Passed Passed · logs
Skill lint (vally) ✅ Passed Passed · logs
Risk scan ✅ Passed Passed · logs
Contributor reputation ✅ Passed Passed · logs
Duplicate resource scan ✅ Passed Passed · logs
PR quality signal ⏭️ Skipped Skipped by its workflow · logs

Review

  • Approvals: 0/1
  • Assigned reviewer: not assigned yet — comment /request-review to ask for one
  • Review target date: not set
  • Still needed: 1 more approval(s)
  • No staffed reviewer pool owns these files yet; any reviewer with write access counts as the domain reviewer.

Commands

Command Who What it does
/rerun-checks PR author, maintainers Re-runs failed or incomplete checks and re-evaluates this gate
/request-review PR author, maintainers Asks the review rotation to assign a reviewer (adds needs-reviewer)

Updated for ebc5862 · gate run · This comment is maintained automatically — see submission gate docs.

@github-actions github-actions Bot added ready-for-review Submission passed intake validation and is ready for maintainer review and removed awaiting-automation labels Nov 11, 2026
@github-actions github-actions Bot added awaiting-automation and removed ready-for-review Submission passed intake validation and is ready for maintainer review labels Nov 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The agent requires generated scripts to credit its author and promote their website, creating misleading provenance in unrelated user code.

2 open issues
What changed in this PR

Adds an SAP Integration Suite agent to the repository’s Copilot agent collection, with guidance for integration development, review, and troubleshooting.

Changes:

  • Defines SAP-focused scope, working practices, accuracy rules, and handoffs for reviews and test generation.
  • Adds the agent to the catalog with VS Code and VS Code Insiders installation links.
File Description
docs/​README.agents.md Lists the new agent and installation links.
agents/​sap-integration-suite-copilot.agent.md Defines the SAP Integration Suite agent and its workflows.

Review effort: Balanced (auto)

@github-actions github-actions Bot added ready-for-review Submission passed intake validation and is ready for maintainer review and removed awaiting-automation labels Nov 11, 2026
Thanks, agreed. Generated code no longer includes author credit or URLs; existing authorship/license notices are preserved. Resource-level author credit (line 19) is unchanged.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI auto review requested due to automatic review settings November 11, 2026 04:36
@github-actions github-actions Bot added awaiting-automation and removed ready-for-review Submission passed intake validation and is ready for maintainer review labels Nov 11, 2026
@github-actions github-actions Bot added ready-for-review Submission passed intake validation and is ready for maintainer review and removed awaiting-automation labels Nov 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The agent’s SAP-specific guidance remains too limited, with generic capability lists and checklists needing replacement by a concrete CPI workflow, runtime constraints, and expected results.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Low severity Replace the PR template with Copilot evaluation evidence

agents/​sap-integration-suite-copilot.agent.md:17

The PR description is still an unfilled template and provides no realistic usage scenario or evaluation results, so maintainers cannot assess whether this agent works in Copilot as intended. The repository's review criteria ask for validation evidence; please document a representative CPI request, the Copilot environment, and expected versus observed results, including the review and test-case handoffs. A manual evaluation is sufficient; tenant deployment is not required.

2 resolved since last review

Review effort: Balanced (auto)

@rameshvaranganti rameshvaranganti left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please review

Copilot AI auto review requested due to automatic review settings November 11, 2026 16:41
@github-actions github-actions Bot added awaiting-automation and removed ready-for-review Submission passed intake validation and is ready for maintainer review labels Nov 11, 2026
@github-actions github-actions Bot added ready-for-review Submission passed intake validation and is ready for maintainer review and removed awaiting-automation labels Nov 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The handoff may hide the validation caveat when deployment is reported without confirmed tenant execution or successful testing, leaving verification evidence insufficient.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Medium severity Do not treat deployment as verified tenant execution

agents/​sap-integration-suite-copilot.agent.md:54

The handoff can suppress the only explicit validation caveat merely because the user says the artifact was deployed, even when no tenant execution or successful test is confirmed. Deployment alone does not establish that the iFlow was exercised; please distinguish deployment from tenant testing and keep the status note (or report the test evidence) until execution is verified.

Review effort: Lite (auto)

@rameshvaranganti
rameshvaranganti force-pushed the add-sap-integration-suite-copilot-agent branch from 37ec1be to 3011d68 Compare November 11, 2026 17:33
@github-actions github-actions Bot added awaiting-automation ready-for-review Submission passed intake validation and is ready for maintainer review and removed ready-for-review Submission passed intake validation and is ready for maintainer review awaiting-automation labels Nov 11, 2026
@rameshvaranganti

Copy link
Copy Markdown
Author

Addressed the review: removed the author line from the agent prompt (it caused attribution in generated code), added explicit generated-code rules and a structured output format, and added manual Copilot evaluation evidence (3 test cases) to the description. Ready for review.

@rameshvaranganti rameshvaranganti left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please review

@rameshvaranganti
rameshvaranganti marked this pull request as draft November 12, 2026 02:42
@github-actions github-actions Bot added skills PR touches skills awaiting-automation ready-for-review Submission passed intake validation and is ready for maintainer review and removed ready-for-review Submission passed intake validation and is ready for maintainer review awaiting-automation labels Nov 12, 2026
@rameshvaranganti

Copy link
Copy Markdown
Author

Ready for review.

@rameshvaranganti rameshvaranganti left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please review as i have added required info

@rameshvaranganti
rameshvaranganti marked this pull request as ready for review November 12, 2026 03:39
Copilot AI auto review requested due to automatic review settings November 12, 2026 03:39

@rameshvaranganti rameshvaranganti left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have updated with required info , please review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The agent assumes a skill omitted by button-based installation, while its reference guidance overstates duplicate prevention and specifies an incompatible batch payload format for the OData V2 receiver adapter.

3 open issues

Review effort: Balanced (auto)


# SAP Integration Suite Copilot

You are an SAP Integration Suite specialist. For SAP Cloud Integration (CPI) work, apply the `sap-cloud-integration` skill and read its references before answering. They hold the runtime behavior this agent relies on: header and property scope, Exception Subprocess status, JMS retry, the Groovy script API, and adapter error mapping.

- Errors arrive as `OsciException`. Read the OData error payload from the body inside the Exception Subprocess.
- For large reads, use **Process in Pages** and `$select`, rather than one unrestricted query.
- For `$batch`, build the multipart batch structure the adapter expects, and inspect per-operation responses. A batch can return HTTP 202 while single operations failed.
|---|---|
| Caller waits for the result | Synchronous Request-Reply. **No runtime retry**: the caller must retry, and the receiver call must be safe to repeat. |
| Fire-and-forget with retry | iFlow A: sender → **JMS receiver** (queue), returns immediately. iFlow B: **JMS sender** → processing → receiver. The JMS sender retries failed messages. |
| No duplicates at a receiver that is not idempotent | **Idempotent Process Call** around the receiver call. Use a stable business key as Message ID (`${header.SAP_ApplicationID}` or a payload key). |

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent PR touches agents merge-risk:medium new-submission PR adds at least one new contribution ready-for-review Submission passed intake validation and is ready for maintainer review skills PR touches skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants