-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAgentic Process.bpmn
More file actions
164 lines (164 loc) · 18.1 KB
/
Copy pathAgentic Process.bpmn
File metadata and controls
164 lines (164 loc) · 18.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:modeler="http://camunda.org/schema/modeler/1.0" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler" exporterVersion="7ecf289" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.8.0">
<bpmn:process id="MessageDelivery" name="Message Delivery Service" isExecutable="true">
<bpmn:extensionElements>
<zeebe:versionTag value="1.1" />
</bpmn:extensionElements>
<bpmn:exclusiveGateway id="Gateway_10fw0q0" name="Do we need to run some tools?">
<bpmn:incoming>Flow_0dw3zlh</bpmn:incoming>
<bpmn:outgoing>Flow_0jfut8p</bpmn:outgoing>
<bpmn:outgoing>Flow_0yw0f5f</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:endEvent id="Event_07im29j" name="Message Delivered">
<bpmn:incoming>Flow_0yw0f5f</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_03v5vkz" sourceRef="Gateway_0ktiraj" targetRef="Activity_1oa2mmy" />
<bpmn:sequenceFlow id="Flow_0dw3zlh" sourceRef="Activity_1oa2mmy" targetRef="Gateway_10fw0q0" />
<bpmn:sequenceFlow id="Flow_1aazek6" sourceRef="niallsTools" targetRef="Gateway_0ktiraj" />
<bpmn:sequenceFlow id="Flow_1mhncmd" sourceRef="StartEvent_1" targetRef="Gateway_0ktiraj" />
<bpmn:exclusiveGateway id="Gateway_0ktiraj">
<bpmn:incoming>Flow_1aazek6</bpmn:incoming>
<bpmn:incoming>Flow_1mhncmd</bpmn:incoming>
<bpmn:outgoing>Flow_03v5vkz</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:serviceTask id="Activity_1oa2mmy" name="AI Task Agent" zeebe:modelerTemplate="io.camunda.connectors.agenticai.aiagent.v1" zeebe:modelerTemplateVersion="1" zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiNBNTZFRkYiLz4KPG1hc2sgaWQ9InBhdGgtMi1vdXRzaWRlLTFfMTg1XzYiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQiIHk9IjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iYmxhY2siPgo8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iNCIgeT0iNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC4wMTA1IDEyLjA5ODdDMTguNDkgMTAuNTg5NCAxNy4xNTk0IDguMTA4MTQgMTYuMTc5OSA2LjAxMTAzQzE2LjE1MiA2LjAwNDUxIDE2LjExNzYgNiAxNi4wNzk0IDZDMTYuMDQxMSA2IDE2LjAwNjYgNi4wMDQ1MSAxNS45Nzg4IDYuMDExMDRDMTQuOTk5NCA4LjEwODE0IDEzLjY2OTcgMTAuNTg4OSAxMi4xNDgxIDEyLjA5ODFDMTAuNjI2OSAxMy42MDcxIDguMTI1NjggMTQuOTI2NCA2LjAxMTU3IDE1Ljg5ODFDNi4wMDQ3NCAxNS45MjYxIDYgMTUuOTYxMSA2IDE2QzYgMTYuMDM4NyA2LjAwNDY4IDE2LjA3MzYgNi4wMTE0NCAxNi4xMDE0QzguMTI1MTkgMTcuMDcyOSAxMC42MjYyIDE4LjM5MTkgMTIuMTQ3NyAxOS45MDE2QzEzLjY2OTcgMjEuNDEwNyAxNC45OTk2IDIzLjg5MiAxNS45NzkxIDI1Ljk4OUMxNi4wMDY4IDI1Ljk5NTYgMTYuMDQxMSAyNiAxNi4wNzkzIDI2QzE2LjExNzUgMjYgMTYuMTUxOSAyNS45OTU0IDE2LjE3OTYgMjUuOTg5QzE3LjE1OTEgMjMuODkyIDE4LjQ4ODggMjEuNDExIDIwLjAwOTkgMTkuOTAyMU0yMC4wMDk5IDE5LjkwMjFDMjEuNTI1MyAxOC4zOTg3IDIzLjk0NjUgMTcuMDY2OSAyNS45OTE1IDE2LjA4MjRDMjUuOTk2NSAxNi4wNTkzIDI2IDE2LjAzMSAyNiAxNS45OTk3QzI2IDE1Ljk2ODQgMjUuOTk2NSAxNS45NDAzIDI1Ljk5MTUgMTUuOTE3MUMyMy45NDc0IDE0LjkzMjcgMjEuNTI1OSAxMy42MDEgMjAuMDEwNSAxMi4wOTg3IiBzdHJva2U9IiM0OTFEOEIiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgbWFzaz0idXJsKCNwYXRoLTItb3V0c2lkZS0xXzE4NV82KSIvPgo8L3N2Zz4K">
<bpmn:extensionElements>
<zeebe:taskDefinition type="io.camunda.agenticai:aiagent:1" retries="3" />
<zeebe:ioMapping>
<zeebe:input source="bedrock" target="provider.type" />
<zeebe:input source="{{secrets.AWS_REGION}}" target="provider.bedrock.region" />
<zeebe:input source="credentials" target="provider.bedrock.authentication.type" />
<zeebe:input source="{{secrets.AWS_ACCESS_KEY}}" target="provider.bedrock.authentication.accessKey" />
<zeebe:input source="{{secrets.AWS_SECRET_KEY}}" target="provider.bedrock.authentication.secretKey" />
<zeebe:input source="anthropic.claude-3-5-sonnet-20240620-v1:0" target="provider.bedrock.model.model" />
<zeebe:input source="=0.2" target="provider.bedrock.model.parameters.temperature" />
<zeebe:input source="=0.1" target="provider.bedrock.model.parameters.topP" />
<zeebe:input source="You are **Message Delivery Agent**, a helpful, generic agent that is given a message to be delivered and attmpts to both improve the tone, spelling and grammar of the message as well as deciding how it should best be delivered. To acheive this use your own domain knowledge **and** any tools explicitly provided to you at runtime. ──────────────────────────────── # 0. CONTEXT — WHO IS “USER”? ──────────────────────────────── • **Every incoming user message is from the customer.** • Treat “user” and “customer” as the same person throughout the conversation. • Internal staff or experts communicate only through the expert-communication tool(s). ──────────────────────────────── # 1. MANDATORY TOOL-DRIVEN WORKFLOW ──────────────────────────────── For **every** customer request, follow this exact sequence: 1. **Inspect** the full list of available tools. 2. **Evaluate** each tool’s relevance. 3. **Invoke at least one relevant tool** *before* replying to the customer. • Call the same tool multiple times with different inputs if useful. • If no domain-specific tool fits, you **must** a. call a generic search / knowledge-retrieval tool **or** b. escalate via the expert-communication tool (e.g. `ask_expert`, `escalate_expert`). • Only if the expert confirms that no tool can help may you answer from general knowledge. • Any decision to skip a potentially helpful tool must be justified inside `<reflection>`. 4. **Communication mandate**: • To gather more information from the **customer**, call the *customer-communication tool* (e.g. `ask_customer`, `send_customer_msg`). • To seek guidance from an **expert**, call the *expert-communication tool*. 5. **Never** invent or call tools that are not in the supplied list. 6. After exhausting every relevant tool—and expert escalation if required—if you still cannot help, reply exactly with `ERROR: <brief explanation>`. ──────────────────────────────── # 2. DATA PRIVACY & LOOKUPS ──────────────────────────────── When real-person data or contact details are involved, do **not** fabricate information. Use the appropriate lookup tools; if data cannot be retrieved, reply with the standard error message above. ──────────────────────────────── # 3. CHAIN-OF-THOUGHT FORMAT (MANDATORY BEFORE EVERY TOOL CALL) ──────────────────────────────── Wrap minimal, inspectable reasoning in *exactly* this XML template: <thinking> <context>…briefly state the customer’s need and current state…</context> <reflection>…list candidate tools, justify which you will call next and why…</reflection> </thinking> Reveal **no** additional private reasoning outside these tags. ──────────────────────────────── # 4. SATISFACTION CONFIRMATION, FINAL EMAIL & TASK RESOLUTION ──────────────────────────────── A. When you believe the request is fulfilled, end your reply with a confirmation question such as “Does this fully resolve your issue?” B. If the customer answers positively (e.g. “yes”, “that’s perfect”, “thanks”): 1. **Immediately call** the designated email-delivery tool (e.g. `send_email`, `send_customer_msg`) with an appropriate subject and body that contains the final solution. 2. After that tool call, your *next* chat message must contain **only** this word: RESOLVED C. If the customer’s very next message already expresses satisfaction without the confirmation question, do step B immediately. D. Never append anything after “RESOLVED”. E. If no email-delivery tool exists, escalate to the expert-communication tool; if the expert confirms none exists, reply with an error as described in §1-6." target="data.systemPrompt.prompt" />
<zeebe:input source="=sender + " wants to send a message to " + person + " and they want to say " + message " target="data.userPrompt.prompt" />
<zeebe:input source="niallsTools" target="data.tools.containerElementId" />
<zeebe:input source="=toolCallResults" target="data.tools.toolCallResults" />
<zeebe:input source="=agent.context" target="data.context" />
<zeebe:input source="in-process" target="data.memory.storage.type" />
<zeebe:input source="=20" target="data.memory.contextWindowSize" />
<zeebe:input source="=if is defined(data.memory.contextWindowSize) then data.memory.contextWindowSize else 20" target="data.memory.maxMessages" />
<zeebe:input source="=10" target="data.limits.maxModelCalls" />
<zeebe:input source="text" target="data.response.format.type" />
<zeebe:input source="=false" target="data.response.format.parseJson" />
<zeebe:input source="=false" target="data.response.includeAssistantMessage" />
</zeebe:ioMapping>
<zeebe:taskHeaders>
<zeebe:header key="elementTemplateVersion" value="1" />
<zeebe:header key="elementTemplateId" value="io.camunda.connectors.agenticai.aiagent.v1" />
<zeebe:header key="resultVariable" value="agent" />
<zeebe:header key="retryBackoff" value="PT0S" />
</zeebe:taskHeaders>
</bpmn:extensionElements>
<bpmn:incoming>Flow_03v5vkz</bpmn:incoming>
<bpmn:outgoing>Flow_0dw3zlh</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:adHocSubProcess id="niallsTools" name="NIall's Tools">
<bpmn:extensionElements>
<zeebe:adHoc activeElementsCollection="=[toolCall._meta.name]" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0jfut8p</bpmn:incoming>
<bpmn:outgoing>Flow_1aazek6</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics>
<bpmn:extensionElements>
<zeebe:loopCharacteristics inputCollection="=agent.toolCalls" inputElement="toolCall" outputCollection="toolCallResults" outputElement="={ id: toolCall._meta.id, name: toolCall._meta.name, content: toolCallResult }" />
</bpmn:extensionElements>
</bpmn:multiInstanceLoopCharacteristics>
<bpmn:userTask id="Activity_0i203ut" name="Deliver message by Hand">
<bpmn:documentation>This tool is used to deliver a message to someone by asking a human to pass along the message</bpmn:documentation>
<bpmn:extensionElements>
<zeebe:userTask />
<zeebe:formDefinition formId="deliver-message-by-hand-04yz38d" />
<zeebe:ioMapping>
<zeebe:input source="=fromAi(toolCall.message, "This is the message that needs to be delivered", "string")" target="message" />
<zeebe:output source="={ "wasMessageDelivered" : messageDelivered }" target="toolCallResult" />
</zeebe:ioMapping>
</bpmn:extensionElements>
</bpmn:userTask>
</bpmn:adHocSubProcess>
<bpmn:sequenceFlow id="Flow_0yw0f5f" name="No" sourceRef="Gateway_10fw0q0" targetRef="Event_07im29j">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=agent.toolCalls = null or count(agent.toolCalls) = 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:startEvent id="StartEvent_1" name="Message Needs to be Delivered">
<bpmn:extensionElements>
<zeebe:formDefinition formId="Form_0f0pmmg" />
</bpmn:extensionElements>
<bpmn:outgoing>Flow_1mhncmd</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_0jfut8p" name="Yes" sourceRef="Gateway_10fw0q0" targetRef="niallsTools">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=not(agent.toolCalls = null) and count(agent.toolCalls) > 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="MessageDelivery">
<bpmndi:BPMNShape id="Gateway_10fw0q0_di" bpmnElement="Gateway_10fw0q0" isMarkerVisible="true">
<dc:Bounds x="975" y="93" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="955" y="63" width="90" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_07im29j_di" bpmnElement="Event_07im29j">
<dc:Bounds x="1162" y="100" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1156" y="143" width="48" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0ktiraj_di" bpmnElement="Gateway_0ktiraj" isMarkerVisible="true">
<dc:Bounds x="455" y="93" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0pd9up5_di" bpmnElement="Activity_1oa2mmy">
<dc:Bounds x="683" y="78" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_19u6hqs_di" bpmnElement="niallsTools" isExpanded="true">
<dc:Bounds x="560" y="250" width="375" height="240" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tv4hdy_di" bpmnElement="Activity_0i203ut">
<dc:Bounds x="680" y="330" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="292" y="100" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="269" y="143" width="83" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_03v5vkz_di" bpmnElement="Flow_03v5vkz">
<di:waypoint x="505" y="118" />
<di:waypoint x="683" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0dw3zlh_di" bpmnElement="Flow_0dw3zlh">
<di:waypoint x="783" y="118" />
<di:waypoint x="975" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1aazek6_di" bpmnElement="Flow_1aazek6">
<di:waypoint x="560" y="366" />
<di:waypoint x="480" y="366" />
<di:waypoint x="480" y="143" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1mhncmd_di" bpmnElement="Flow_1mhncmd">
<di:waypoint x="328" y="118" />
<di:waypoint x="455" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0yw0f5f_di" bpmnElement="Flow_0yw0f5f">
<di:waypoint x="1025" y="118" />
<di:waypoint x="1162" y="118" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1054" y="100" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0jfut8p_di" bpmnElement="Flow_0jfut8p">
<di:waypoint x="1000" y="143" />
<di:waypoint x="1000" y="366" />
<di:waypoint x="935" y="366" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1006" y="254" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>