@camunda/e2e-test-suite 0.0.1365 → 0.0.1367
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/resources/agentic_ai/v1/ai-agent-subprocess-with-tools_aws_key.bpmn +115 -0
- package/dist/tests/8.9/agentic-ai-user-flows.spec.js +2 -3
- package/dist/tests/SM-8.10/identity-user-flows.spec.js +0 -6
- package/package.json +1 -1
- package/resources/agentic_ai/v1/ai-agent-subprocess-with-tools_aws_key.bpmn +115 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
|
|
3
|
+
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
|
|
4
|
+
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
|
|
5
|
+
xmlns:zeebe="http://camunda.org/schema/zeebe/1.0"
|
|
6
|
+
xmlns:modeler="http://camunda.org/schema/modeler/1.0"
|
|
7
|
+
xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1"
|
|
8
|
+
targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler"
|
|
9
|
+
exporterVersion="eb83922" modeler:executionPlatform="Camunda Cloud"
|
|
10
|
+
modeler:executionPlatformVersion="8.9.0">
|
|
11
|
+
<bpmn:process id="ai-agent-sub-process-with-tools-aws-key"
|
|
12
|
+
name="AI Agent Sub Process With Tools AWS Key" isExecutable="true">
|
|
13
|
+
<bpmn:endEvent id="Event_16luwcp">
|
|
14
|
+
<bpmn:incoming>Flow_08u9aut</bpmn:incoming>
|
|
15
|
+
</bpmn:endEvent>
|
|
16
|
+
<bpmn:startEvent id="Event_02uvz35">
|
|
17
|
+
<bpmn:outgoing>Flow_1as80ip</bpmn:outgoing>
|
|
18
|
+
</bpmn:startEvent>
|
|
19
|
+
<bpmn:adHocSubProcess id="Activity_1u44499"
|
|
20
|
+
zeebe:modelerTemplate="io.camunda.connectors.agenticai.aiagent.jobworker.v1"
|
|
21
|
+
zeebe:modelerTemplateVersion="6"
|
|
22
|
+
zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiNBNTZFRkYiLz4KPG1hc2sgaWQ9InBhdGgtMi1vdXRzaWRlLTFfMTg1XzYiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQiIHk9IjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iYmxhY2siPgo8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iNCIgeT0iNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC4wMTA1IDEyLjA5ODdDMTguNDkgMTAuNTg5NCAxNy4xNTk0IDguMTA4MTQgMTYuMTc5OSA2LjAxMTAzQzE2LjE1MiA2LjAwNDUxIDE2LjExNzYgNiAxNi4wNzk0IDZDMTYuMDQxMSA2IDE2LjAwNjYgNi4wMDQ1MSAxNS45Nzg4IDYuMDExMDRDMTQuOTk5NCA4LjEwODE0IDEzLjY2OTcgMTAuNTg4OSAxMi4xNDgxIDEyLjA5ODFDMTAuNjI2OSAxMy42MDcxIDguMTI1NjggMTQuOTI2NCA2LjAxMTU3IDE1Ljg5ODFDNi4wMDQ3NCAxNS45MjYxIDYgMTUuOTYxMSA2IDE2QzYgMTYuMDM4NyA2LjAwNDY4IDE2LjA3MzYgNi4wMTE0NCAxNi4xMDE0QzguMTI1MTkgMTcuMDcyOSAxMC42MjYyIDE4LjM5MTkgMTIuMTQ3NyAxOS45MDE2QzEzLjY2OTcgMjEuNDEwNyAxNC45OTk2IDIzLjg5MiAxNS45NzkxIDI1Ljk4OUMxNi4wMDY4IDI1Ljk5NTYgMTYuMDQxMSAyNiAxNi4wNzkzIDI2QzE2LjExNzUgMjYgMTYuMTUxOSAyNS45OTU0IDE2LjE3OTYgMjUuOTg5QzE3LjE1OTEgMjMuODkyIDE4LjQ4ODggMjEuNDExIDIwLjAwOTkgMTkuOTAyMU0yMC4wMDk5IDE5LjkwMjFDMjEuNTI1MyAxOC4zOTg3IDIzLjk0NjUgMTcuMDY2OSAyNS45OTE1IDE2LjA4MjRDMjUuOTk2NSAxNi4wNTkzIDI2IDE2LjAzMSAyNiAxNS45OTk3QzI2IDE1Ljk2ODQgMjUuOTk2NSAxNS45NDAzIDI1Ljk5MTUgMTUuOTE3MUMyMy45NDc0IDE0LjkzMjcgMjEuNTI1OSAxMy42MDEgMjAuMDEwNSAxMi4wOTg3IiBzdHJva2U9IiM0OTFEOEIiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgbWFzaz0idXJsKCNwYXRoLTItb3V0c2lkZS0xXzE4NV82KSIvPgo8L3N2Zz4K">
|
|
23
|
+
<bpmn:extensionElements>
|
|
24
|
+
<zeebe:taskDefinition type="io.camunda.agenticai:aiagent-job-worker:1" retries="3" />
|
|
25
|
+
<zeebe:ioMapping>
|
|
26
|
+
<zeebe:input source="bedrock" target="provider.type" />
|
|
27
|
+
<zeebe:input source="{{secrets.IDP_AWS_REGION}}" target="provider.bedrock.region" />
|
|
28
|
+
<zeebe:input source="apiKey" target="provider.bedrock.authentication.type" />
|
|
29
|
+
<zeebe:input source="{{secrets.AI_AGENT_AWS_KEY}}"
|
|
30
|
+
target="provider.bedrock.authentication.apiKey" />
|
|
31
|
+
<zeebe:input source="global.anthropic.claude-sonnet-4-5-20250929-v1:0"
|
|
32
|
+
target="provider.bedrock.model.model" />
|
|
33
|
+
<zeebe:input
|
|
34
|
+
source="="You are **TaskAgent**, a helpful, generic chat agent that can handle a wide variety of customer requests using your own domain knowledge **and** any tools explicitly provided to you at runtime. If tools are provided, you should prefer them instead of guessing an answer. You can call the same tool multiple times by providing different input values. Don't guess any tools which were not explicitly configured. If no tool matches the request, try to generate an answer. If you're not able to find a good answer, return with a message stating why you're not able to. 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.""
|
|
35
|
+
target="data.systemPrompt.prompt" />
|
|
36
|
+
<zeebe:input
|
|
37
|
+
source="="Generate a single sentence in the following exact format, always using a new random city and country each time: The current date and time in {City, Country}, is approximately {h:mm AM/PM} on {Month day, year}. But only with the sentence/format as above, nothing else""
|
|
38
|
+
target="data.userPrompt.prompt" />
|
|
39
|
+
<zeebe:input target="agentContext" />
|
|
40
|
+
<zeebe:input source="in-process" target="data.memory.storage.type" />
|
|
41
|
+
<zeebe:input source="=20" target="data.memory.contextWindowSize" />
|
|
42
|
+
<zeebe:input source="=10" target="data.limits.maxModelCalls" />
|
|
43
|
+
<zeebe:input source="WAIT_FOR_TOOL_CALL_RESULTS" target="data.events.behavior" />
|
|
44
|
+
<zeebe:input source="text" target="data.response.format.type" />
|
|
45
|
+
<zeebe:input source="=false" target="data.response.format.parseJson" />
|
|
46
|
+
<zeebe:input source="=false" target="data.response.includeAssistantMessage" />
|
|
47
|
+
<zeebe:input source="=false" target="data.response.includeAgentContext" />
|
|
48
|
+
<zeebe:output source="=agent" target="agent" />
|
|
49
|
+
</zeebe:ioMapping>
|
|
50
|
+
<zeebe:taskHeaders>
|
|
51
|
+
<zeebe:header key="elementTemplateVersion" value="6" />
|
|
52
|
+
<zeebe:header key="elementTemplateId"
|
|
53
|
+
value="io.camunda.connectors.agenticai.aiagent.jobworker.v1" />
|
|
54
|
+
<zeebe:header key="retryBackoff" value="PT0S" />
|
|
55
|
+
</zeebe:taskHeaders>
|
|
56
|
+
<zeebe:adHoc outputCollection="toolCallResults"
|
|
57
|
+
outputElement="={ id: toolCall._meta.id, name: toolCall._meta.name, content: toolCallResult }" />
|
|
58
|
+
</bpmn:extensionElements>
|
|
59
|
+
<bpmn:incoming>Flow_1as80ip</bpmn:incoming>
|
|
60
|
+
<bpmn:outgoing>Flow_0zkcbw0</bpmn:outgoing>
|
|
61
|
+
<bpmn:scriptTask id="GetDateAndTime" name="Get Date And Time">
|
|
62
|
+
<bpmn:extensionElements>
|
|
63
|
+
<zeebe:script expression="=now()" resultVariable="toolCallResult" />
|
|
64
|
+
</bpmn:extensionElements>
|
|
65
|
+
</bpmn:scriptTask>
|
|
66
|
+
</bpmn:adHocSubProcess>
|
|
67
|
+
<bpmn:sequenceFlow id="Flow_1as80ip" sourceRef="Event_02uvz35" targetRef="Activity_1u44499" />
|
|
68
|
+
<bpmn:sequenceFlow id="Flow_0zkcbw0" sourceRef="Activity_1u44499" targetRef="Activity_09igvpy" />
|
|
69
|
+
<bpmn:userTask id="Activity_09igvpy" name="User Feedback">
|
|
70
|
+
<bpmn:extensionElements>
|
|
71
|
+
<zeebe:userTask />
|
|
72
|
+
<zeebe:formDefinition formId="ai-agent-chat-user-feedback" />
|
|
73
|
+
<zeebe:ioMapping>
|
|
74
|
+
<zeebe:input source="=agent.responseText" target="agent.responseText" />
|
|
75
|
+
</zeebe:ioMapping>
|
|
76
|
+
</bpmn:extensionElements>
|
|
77
|
+
<bpmn:incoming>Flow_0zkcbw0</bpmn:incoming>
|
|
78
|
+
<bpmn:outgoing>Flow_08u9aut</bpmn:outgoing>
|
|
79
|
+
</bpmn:userTask>
|
|
80
|
+
<bpmn:sequenceFlow id="Flow_08u9aut" sourceRef="Activity_09igvpy" targetRef="Event_16luwcp" />
|
|
81
|
+
</bpmn:process>
|
|
82
|
+
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
|
83
|
+
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="ai-agent-sub-process-with-tools-aws-key">
|
|
84
|
+
<bpmndi:BPMNShape id="Event_16luwcp_di" bpmnElement="Event_16luwcp">
|
|
85
|
+
<dc:Bounds x="942" y="172" width="36" height="36" />
|
|
86
|
+
</bpmndi:BPMNShape>
|
|
87
|
+
<bpmndi:BPMNShape id="Event_02uvz35_di" bpmnElement="Event_02uvz35">
|
|
88
|
+
<dc:Bounds x="152" y="172" width="36" height="36" />
|
|
89
|
+
</bpmndi:BPMNShape>
|
|
90
|
+
<bpmndi:BPMNShape id="Activity_0xva5vz_di" bpmnElement="Activity_1u44499" isExpanded="true">
|
|
91
|
+
<dc:Bounds x="270" y="80" width="350" height="200" />
|
|
92
|
+
</bpmndi:BPMNShape>
|
|
93
|
+
<bpmndi:BPMNShape id="Activity_1cyou11_di" bpmnElement="GetDateAndTime">
|
|
94
|
+
<dc:Bounds x="400" y="140" width="100" height="80" />
|
|
95
|
+
<bpmndi:BPMNLabel />
|
|
96
|
+
</bpmndi:BPMNShape>
|
|
97
|
+
<bpmndi:BPMNShape id="Activity_0qxhgfa_di" bpmnElement="Activity_09igvpy">
|
|
98
|
+
<dc:Bounds x="730" y="150" width="100" height="80" />
|
|
99
|
+
<bpmndi:BPMNLabel />
|
|
100
|
+
</bpmndi:BPMNShape>
|
|
101
|
+
<bpmndi:BPMNEdge id="Flow_1as80ip_di" bpmnElement="Flow_1as80ip">
|
|
102
|
+
<di:waypoint x="188" y="190" />
|
|
103
|
+
<di:waypoint x="270" y="190" />
|
|
104
|
+
</bpmndi:BPMNEdge>
|
|
105
|
+
<bpmndi:BPMNEdge id="Flow_0zkcbw0_di" bpmnElement="Flow_0zkcbw0">
|
|
106
|
+
<di:waypoint x="620" y="190" />
|
|
107
|
+
<di:waypoint x="730" y="190" />
|
|
108
|
+
</bpmndi:BPMNEdge>
|
|
109
|
+
<bpmndi:BPMNEdge id="Flow_08u9aut_di" bpmnElement="Flow_08u9aut">
|
|
110
|
+
<di:waypoint x="830" y="190" />
|
|
111
|
+
<di:waypoint x="942" y="190" />
|
|
112
|
+
</bpmndi:BPMNEdge>
|
|
113
|
+
</bpmndi:BPMNPlane>
|
|
114
|
+
</bpmndi:BPMNDiagram>
|
|
115
|
+
</bpmn:definitions>
|
|
@@ -80,7 +80,7 @@ const dbVectorTestCases = [
|
|
|
80
80
|
const aiAgentSubProcessTestCases = [
|
|
81
81
|
{
|
|
82
82
|
provider: 'AWS Key',
|
|
83
|
-
bpmnPath: './resources/agentic_ai/ai-agent-subprocess-with-tools_aws_key.bpmn',
|
|
83
|
+
bpmnPath: './resources/agentic_ai/v1/ai-agent-subprocess-with-tools_aws_key.bpmn',
|
|
84
84
|
},
|
|
85
85
|
];
|
|
86
86
|
const regexTestCases = [
|
|
@@ -150,8 +150,7 @@ _8_9_1.test.describe('Agentic Orchestation User Flows', () => {
|
|
|
150
150
|
});
|
|
151
151
|
_8_9_1.test.describe('AI Agent sub process - provider user tests flow', () => {
|
|
152
152
|
for (const params of aiAgentSubProcessTestCases) {
|
|
153
|
-
|
|
154
|
-
_8_9_1.test.skip(`AI agent sub process with tools provides feedback to user - ${params.provider}`, async ({ appsPage, operateHomePage, operateProcessInstancePage, operateProcessesPage, taskPanelPage, taskDetailsPage, }) => {
|
|
153
|
+
(0, _8_9_1.test)(`AI agent sub process with tools provides feedback to user - ${params.provider}`, async ({ appsPage, operateHomePage, operateProcessInstancePage, operateProcessesPage, taskPanelPage, taskDetailsPage, }) => {
|
|
155
154
|
_8_9_1.test.slow();
|
|
156
155
|
const processKey = await (0, apiHelpers_1.deployProcess)(params.bpmnPath, authToken);
|
|
157
156
|
if (processKey == null) {
|
|
@@ -76,12 +76,6 @@ SM_8_10_1.test.describe('Identity User Flow Tests', () => {
|
|
|
76
76
|
});
|
|
77
77
|
if (node_process_1.default.env.IS_OPTIMIZE !== 'false') {
|
|
78
78
|
await SM_8_10_1.test.step('Ensure Optimize is not Accessible', async () => {
|
|
79
|
-
// Skipped due to bug #60317: https://github.com/camunda/camunda/issues/60317
|
|
80
|
-
// Still reproduces on 8.10.1-SNAPSHOT, which carries the fix attempt
|
|
81
|
-
// camunda/camunda#63400: a user whose Optimize role was removed gets
|
|
82
|
-
// the full dashboard (run 37296183382). Remove this skip once the issue
|
|
83
|
-
// is closed; the step then verifies the denial again.
|
|
84
|
-
SM_8_10_1.test.skip(true, 'Optimize grants full access to a user without the Optimize role -- camunda/camunda#60317');
|
|
85
79
|
await navigationPage.goToOptimizeWithoutAccess(credentials);
|
|
86
80
|
await (0, test_1.expect)(page.getByText('User has no authorization to access Optimize. Please check your Identity configuration')).toBeVisible({
|
|
87
81
|
timeout: 60000,
|
package/package.json
CHANGED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
|
|
3
|
+
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
|
|
4
|
+
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
|
|
5
|
+
xmlns:zeebe="http://camunda.org/schema/zeebe/1.0"
|
|
6
|
+
xmlns:modeler="http://camunda.org/schema/modeler/1.0"
|
|
7
|
+
xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1"
|
|
8
|
+
targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler"
|
|
9
|
+
exporterVersion="eb83922" modeler:executionPlatform="Camunda Cloud"
|
|
10
|
+
modeler:executionPlatformVersion="8.9.0">
|
|
11
|
+
<bpmn:process id="ai-agent-sub-process-with-tools-aws-key"
|
|
12
|
+
name="AI Agent Sub Process With Tools AWS Key" isExecutable="true">
|
|
13
|
+
<bpmn:endEvent id="Event_16luwcp">
|
|
14
|
+
<bpmn:incoming>Flow_08u9aut</bpmn:incoming>
|
|
15
|
+
</bpmn:endEvent>
|
|
16
|
+
<bpmn:startEvent id="Event_02uvz35">
|
|
17
|
+
<bpmn:outgoing>Flow_1as80ip</bpmn:outgoing>
|
|
18
|
+
</bpmn:startEvent>
|
|
19
|
+
<bpmn:adHocSubProcess id="Activity_1u44499"
|
|
20
|
+
zeebe:modelerTemplate="io.camunda.connectors.agenticai.aiagent.jobworker.v1"
|
|
21
|
+
zeebe:modelerTemplateVersion="6"
|
|
22
|
+
zeebe:modelerTemplateIcon="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiNBNTZFRkYiLz4KPG1hc2sgaWQ9InBhdGgtMi1vdXRzaWRlLTFfMTg1XzYiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjQiIHk9IjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iYmxhY2siPgo8cmVjdCBmaWxsPSJ3aGl0ZSIgeD0iNCIgeT0iNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIvPgo8L21hc2s+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMDEwNSAxMi4wOTg3QzE4LjQ5IDEwLjU4OTQgMTcuMTU5NCA4LjEwODE0IDE2LjE3OTkgNi4wMTEwM0MxNi4xNTIgNi4wMDQ1MSAxNi4xMTc2IDYgMTYuMDc5NCA2QzE2LjA0MTEgNiAxNi4wMDY2IDYuMDA0NTEgMTUuOTc4OCA2LjAxMTA0QzE0Ljk5OTQgOC4xMDgxNCAxMy42Njk3IDEwLjU4ODkgMTIuMTQ4MSAxMi4wOTgxQzEwLjYyNjkgMTMuNjA3MSA4LjEyNTY4IDE0LjkyNjQgNi4wMTE1NyAxNS44OTgxQzYuMDA0NzQgMTUuOTI2MSA2IDE1Ljk2MTEgNiAxNkM2IDE2LjAzODcgNi4wMDQ2OCAxNi4wNzM2IDYuMDExNDQgMTYuMTAxNEM4LjEyNTE5IDE3LjA3MjkgMTAuNjI2MiAxOC4zOTE5IDEyLjE0NzcgMTkuOTAxNkMxMy42Njk3IDIxLjQxMDcgMTQuOTk5NiAyMy44OTIgMTUuOTc5MSAyNS45ODlDMTYuMDA2OCAyNS45OTU2IDE2LjA0MTEgMjYgMTYuMDc5MyAyNkMxNi4xMTc1IDI2IDE2LjE1MTkgMjUuOTk1NCAxNi4xNzk2IDI1Ljk4OUMxNy4xNTkxIDIzLjg5MiAxOC40ODg4IDIxLjQxMSAyMC4wMDk5IDE5LjkwMjFNMjAuMDA5OSAxOS45MDIxQzIxLjUyNTMgMTguMzk4NyAyMy45NDY1IDE3LjA2NjkgMjUuOTkxNSAxNi4wODI0QzI1Ljk5NjUgMTYuMDU5MyAyNiAxNi4wMzEgMjYgMTUuOTk5N0MyNiAxNS45Njg0IDI1Ljk5NjUgMTUuOTQwMyAyNS45OTE1IDE1LjkxNzFDMjMuOTQ3NCAxNC45MzI3IDIxLjUyNTkgMTMuNjAxIDIwLjAxMDUgMTIuMDk4NyIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC4wMTA1IDEyLjA5ODdDMTguNDkgMTAuNTg5NCAxNy4xNTk0IDguMTA4MTQgMTYuMTc5OSA2LjAxMTAzQzE2LjE1MiA2LjAwNDUxIDE2LjExNzYgNiAxNi4wNzk0IDZDMTYuMDQxMSA2IDE2LjAwNjYgNi4wMDQ1MSAxNS45Nzg4IDYuMDExMDRDMTQuOTk5NCA4LjEwODE0IDEzLjY2OTcgMTAuNTg4OSAxMi4xNDgxIDEyLjA5ODFDMTAuNjI2OSAxMy42MDcxIDguMTI1NjggMTQuOTI2NCA2LjAxMTU3IDE1Ljg5ODFDNi4wMDQ3NCAxNS45MjYxIDYgMTUuOTYxMSA2IDE2QzYgMTYuMDM4NyA2LjAwNDY4IDE2LjA3MzYgNi4wMTE0NCAxNi4xMDE0QzguMTI1MTkgMTcuMDcyOSAxMC42MjYyIDE4LjM5MTkgMTIuMTQ3NyAxOS45MDE2QzEzLjY2OTcgMjEuNDEwNyAxNC45OTk2IDIzLjg5MiAxNS45NzkxIDI1Ljk4OUMxNi4wMDY4IDI1Ljk5NTYgMTYuMDQxMSAyNiAxNi4wNzkzIDI2QzE2LjExNzUgMjYgMTYuMTUxOSAyNS45OTU0IDE2LjE3OTYgMjUuOTg5QzE3LjE1OTEgMjMuODkyIDE4LjQ4ODggMjEuNDExIDIwLjAwOTkgMTkuOTAyMU0yMC4wMDk5IDE5LjkwMjFDMjEuNTI1MyAxOC4zOTg3IDIzLjk0NjUgMTcuMDY2OSAyNS45OTE1IDE2LjA4MjRDMjUuOTk2NSAxNi4wNTkzIDI2IDE2LjAzMSAyNiAxNS45OTk3QzI2IDE1Ljk2ODQgMjUuOTk2NSAxNS45NDAzIDI1Ljk5MTUgMTUuOTE3MUMyMy45NDc0IDE0LjkzMjcgMjEuNTI1OSAxMy42MDEgMjAuMDEwNSAxMi4wOTg3IiBzdHJva2U9IiM0OTFEOEIiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgbWFzaz0idXJsKCNwYXRoLTItb3V0c2lkZS0xXzE4NV82KSIvPgo8L3N2Zz4K">
|
|
23
|
+
<bpmn:extensionElements>
|
|
24
|
+
<zeebe:taskDefinition type="io.camunda.agenticai:aiagent-job-worker:1" retries="3" />
|
|
25
|
+
<zeebe:ioMapping>
|
|
26
|
+
<zeebe:input source="bedrock" target="provider.type" />
|
|
27
|
+
<zeebe:input source="{{secrets.IDP_AWS_REGION}}" target="provider.bedrock.region" />
|
|
28
|
+
<zeebe:input source="apiKey" target="provider.bedrock.authentication.type" />
|
|
29
|
+
<zeebe:input source="{{secrets.AI_AGENT_AWS_KEY}}"
|
|
30
|
+
target="provider.bedrock.authentication.apiKey" />
|
|
31
|
+
<zeebe:input source="global.anthropic.claude-sonnet-4-5-20250929-v1:0"
|
|
32
|
+
target="provider.bedrock.model.model" />
|
|
33
|
+
<zeebe:input
|
|
34
|
+
source="="You are **TaskAgent**, a helpful, generic chat agent that can handle a wide variety of customer requests using your own domain knowledge **and** any tools explicitly provided to you at runtime. If tools are provided, you should prefer them instead of guessing an answer. You can call the same tool multiple times by providing different input values. Don't guess any tools which were not explicitly configured. If no tool matches the request, try to generate an answer. If you're not able to find a good answer, return with a message stating why you're not able to. 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.""
|
|
35
|
+
target="data.systemPrompt.prompt" />
|
|
36
|
+
<zeebe:input
|
|
37
|
+
source="="Generate a single sentence in the following exact format, always using a new random city and country each time: The current date and time in {City, Country}, is approximately {h:mm AM/PM} on {Month day, year}. But only with the sentence/format as above, nothing else""
|
|
38
|
+
target="data.userPrompt.prompt" />
|
|
39
|
+
<zeebe:input target="agentContext" />
|
|
40
|
+
<zeebe:input source="in-process" target="data.memory.storage.type" />
|
|
41
|
+
<zeebe:input source="=20" target="data.memory.contextWindowSize" />
|
|
42
|
+
<zeebe:input source="=10" target="data.limits.maxModelCalls" />
|
|
43
|
+
<zeebe:input source="WAIT_FOR_TOOL_CALL_RESULTS" target="data.events.behavior" />
|
|
44
|
+
<zeebe:input source="text" target="data.response.format.type" />
|
|
45
|
+
<zeebe:input source="=false" target="data.response.format.parseJson" />
|
|
46
|
+
<zeebe:input source="=false" target="data.response.includeAssistantMessage" />
|
|
47
|
+
<zeebe:input source="=false" target="data.response.includeAgentContext" />
|
|
48
|
+
<zeebe:output source="=agent" target="agent" />
|
|
49
|
+
</zeebe:ioMapping>
|
|
50
|
+
<zeebe:taskHeaders>
|
|
51
|
+
<zeebe:header key="elementTemplateVersion" value="6" />
|
|
52
|
+
<zeebe:header key="elementTemplateId"
|
|
53
|
+
value="io.camunda.connectors.agenticai.aiagent.jobworker.v1" />
|
|
54
|
+
<zeebe:header key="retryBackoff" value="PT0S" />
|
|
55
|
+
</zeebe:taskHeaders>
|
|
56
|
+
<zeebe:adHoc outputCollection="toolCallResults"
|
|
57
|
+
outputElement="={ id: toolCall._meta.id, name: toolCall._meta.name, content: toolCallResult }" />
|
|
58
|
+
</bpmn:extensionElements>
|
|
59
|
+
<bpmn:incoming>Flow_1as80ip</bpmn:incoming>
|
|
60
|
+
<bpmn:outgoing>Flow_0zkcbw0</bpmn:outgoing>
|
|
61
|
+
<bpmn:scriptTask id="GetDateAndTime" name="Get Date And Time">
|
|
62
|
+
<bpmn:extensionElements>
|
|
63
|
+
<zeebe:script expression="=now()" resultVariable="toolCallResult" />
|
|
64
|
+
</bpmn:extensionElements>
|
|
65
|
+
</bpmn:scriptTask>
|
|
66
|
+
</bpmn:adHocSubProcess>
|
|
67
|
+
<bpmn:sequenceFlow id="Flow_1as80ip" sourceRef="Event_02uvz35" targetRef="Activity_1u44499" />
|
|
68
|
+
<bpmn:sequenceFlow id="Flow_0zkcbw0" sourceRef="Activity_1u44499" targetRef="Activity_09igvpy" />
|
|
69
|
+
<bpmn:userTask id="Activity_09igvpy" name="User Feedback">
|
|
70
|
+
<bpmn:extensionElements>
|
|
71
|
+
<zeebe:userTask />
|
|
72
|
+
<zeebe:formDefinition formId="ai-agent-chat-user-feedback" />
|
|
73
|
+
<zeebe:ioMapping>
|
|
74
|
+
<zeebe:input source="=agent.responseText" target="agent.responseText" />
|
|
75
|
+
</zeebe:ioMapping>
|
|
76
|
+
</bpmn:extensionElements>
|
|
77
|
+
<bpmn:incoming>Flow_0zkcbw0</bpmn:incoming>
|
|
78
|
+
<bpmn:outgoing>Flow_08u9aut</bpmn:outgoing>
|
|
79
|
+
</bpmn:userTask>
|
|
80
|
+
<bpmn:sequenceFlow id="Flow_08u9aut" sourceRef="Activity_09igvpy" targetRef="Event_16luwcp" />
|
|
81
|
+
</bpmn:process>
|
|
82
|
+
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
|
83
|
+
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="ai-agent-sub-process-with-tools-aws-key">
|
|
84
|
+
<bpmndi:BPMNShape id="Event_16luwcp_di" bpmnElement="Event_16luwcp">
|
|
85
|
+
<dc:Bounds x="942" y="172" width="36" height="36" />
|
|
86
|
+
</bpmndi:BPMNShape>
|
|
87
|
+
<bpmndi:BPMNShape id="Event_02uvz35_di" bpmnElement="Event_02uvz35">
|
|
88
|
+
<dc:Bounds x="152" y="172" width="36" height="36" />
|
|
89
|
+
</bpmndi:BPMNShape>
|
|
90
|
+
<bpmndi:BPMNShape id="Activity_0xva5vz_di" bpmnElement="Activity_1u44499" isExpanded="true">
|
|
91
|
+
<dc:Bounds x="270" y="80" width="350" height="200" />
|
|
92
|
+
</bpmndi:BPMNShape>
|
|
93
|
+
<bpmndi:BPMNShape id="Activity_1cyou11_di" bpmnElement="GetDateAndTime">
|
|
94
|
+
<dc:Bounds x="400" y="140" width="100" height="80" />
|
|
95
|
+
<bpmndi:BPMNLabel />
|
|
96
|
+
</bpmndi:BPMNShape>
|
|
97
|
+
<bpmndi:BPMNShape id="Activity_0qxhgfa_di" bpmnElement="Activity_09igvpy">
|
|
98
|
+
<dc:Bounds x="730" y="150" width="100" height="80" />
|
|
99
|
+
<bpmndi:BPMNLabel />
|
|
100
|
+
</bpmndi:BPMNShape>
|
|
101
|
+
<bpmndi:BPMNEdge id="Flow_1as80ip_di" bpmnElement="Flow_1as80ip">
|
|
102
|
+
<di:waypoint x="188" y="190" />
|
|
103
|
+
<di:waypoint x="270" y="190" />
|
|
104
|
+
</bpmndi:BPMNEdge>
|
|
105
|
+
<bpmndi:BPMNEdge id="Flow_0zkcbw0_di" bpmnElement="Flow_0zkcbw0">
|
|
106
|
+
<di:waypoint x="620" y="190" />
|
|
107
|
+
<di:waypoint x="730" y="190" />
|
|
108
|
+
</bpmndi:BPMNEdge>
|
|
109
|
+
<bpmndi:BPMNEdge id="Flow_08u9aut_di" bpmnElement="Flow_08u9aut">
|
|
110
|
+
<di:waypoint x="830" y="190" />
|
|
111
|
+
<di:waypoint x="942" y="190" />
|
|
112
|
+
</bpmndi:BPMNEdge>
|
|
113
|
+
</bpmndi:BPMNPlane>
|
|
114
|
+
</bpmndi:BPMNDiagram>
|
|
115
|
+
</bpmn:definitions>
|