Draft demo of all AWS AgentCore capabilities#6979
Draft
mathieu-stennier wants to merge 28 commits into
Draft
Conversation
Adds a new outbound connector for AWS Bedrock Knowledge Base Retrieve API. Enables semantic search over documents indexed in a Bedrock Knowledge Base. - BedrockAgentRuntimeClient-based implementation - Retrieve operation with query and numberOfResults parameters - Results returned as Camunda Document (JSON) - Error handling: throttling retry, KB errors, serialization errors - Element template with authentication, configuration, and operation groups - Unit tests: executor (2), input validation (3) — all passing
- Remove redundant @PropertyConstraints where @notblank is present - Remove unused REGION constant from BaseTest - Rename nextToken to paginationToken for clarity - Extract error codes into constants - Add retry backoff (3 retries, 5s) for throttling - Use generic createClient() pattern
… paginationToken test - Remove operationDiscriminator from inputVariables (nested inside operation object) - Add test assertion for paginationToken pass-through - Add test for null paginationToken when no more results
- Return documentReference + content per chunk (matching Vector DB RetrievedChunk) - Remove Document/ObjectMapper wrapping — return plain result entries - Remove ThrottlingException handling — rely on SDK built-in retry - Remove unused BedrockKnowledgeBaseResponse class - Add connector to default-bundle (bundle/pom.xml + default-bundle/pom.xml) - ObjectMapper no longer needed
- Filter out retrieval results without content - Add tests: KB ID and numberOfResults passed correctly - Add tests: S3 location present and absent - Add tests: metadata mapping - Add tests: chunks without content filtered out - Add tests: document created for every chunk - 11/11 tests passing
…tests - Use Document.unwrap() instead of toString() for clean metadata values - Change metadata type to Map<String, Object> to support unwrapped primitives - Assert document creation content matches chunk text - Import times() statically
- Execute Python code in AWS Bedrock AgentCore sandbox - 3-step API: start session, invoke (async streaming), stop session - Returns stdout, stderr, exitCode, executionTimeMs, images (base64 data URIs) - Session timeout configurable (default 900s) - Connector type: io.camunda:aws-bedrock-codeinterpreter:1
- Wrap code + sessionTimeoutSeconds into input DTO (input.code, input.sessionTimeoutSeconds) - Extract error codes and session name into constants - Add retry backoff (3 retries, 5s) for throttling exceptions - Lower default session timeout from 900s to 300s - Use Document API for images instead of base64 strings - Auto-retrieve generated files: listFiles + readFiles after execution - Image bytes read from resource.blob in readFiles response - Update element template bindings to use input. prefix - Update tests for multi-step invocation pattern
- Extract client creation into generic createClient() method - Introduce AutoCloseable CodeInterpreterSession for try-with-resources - Session name includes elementInstanceKey for AWS-side correlation - Use 'ignored' for unused lambda parameters - Extract listGeneratedFiles, readFiles, convertToDocuments methods - Return all generated files (not just images), renamed to 'files' - Handle text files via resource.text() in addition to resource.blob() - Diff file list before/after execution to detect new files only - Filter out hidden files/directories (dotfiles) - Read files individually for graceful error handling - Add max total size limit (10MB) alongside max file count (10) - LOG.warn on session stop failure - Default mimeType extracted to constant - engineVersion set to ^8.9 with TODO for ^8.10 - Template ID added to ignore-templates.json
- Make max files and max total bytes configurable via connector input - Refactor listGeneratedFiles and readFiles to use functional streams - Extract extractData and extractMimeType for improved readability - Add input validation for null/blank code with tests - Simplify retrieveNewFiles with extracted filterNewFiles and readFilesAndCheckSizeLimit
- Remove ThrottlingException handling — rely on SDK built-in retry - Remove unused retry constants and imports - Add connector to default-bundle (bundle/pom.xml + default-bundle/pom.xml)
- Avoid inline conditionals — use proper if/else blocks throughout - Rename extractFileName to extractFileNameFromListResult with javadoc - Use fileName parameter directly in convertToDocuments (no block.text() fallback) - Replace future.join() with future.get(5, MINUTES) to prevent indefinite hangs - Handle TimeoutException, InterruptedException, ExecutionException - Group extract methods together at bottom of class with section comments - Add javadoc to extraction helpers
…ge/CI ID, tests - Use Duration for sessionTimeout (ISO 8601, e.g. PT5M) - Rename maxTotalBytes to maxTotalFileSize - Add language dropdown (Python, JavaScript, TypeScript) - Make Code Interpreter ID configurable (default aws.codeinterpreter.v1) - Change readFileBlocks to accept single path - Null-safe doc.metadata().getSize() - Validate maxFiles > 0 with Math.max - Rename jobKey to elementInstanceKey - Session carries codeInterpreterIdentifier for consistent usage - Add Session Settings property group - Add tests: language, CI ID, Duration timeout, element instance key - 10/10 tests passing
- Language field is now an enum (Python, JavaScript, TypeScript) - Language selection comes before code field in template - Remove 'Python' from code field description - Add @min(1) bean validation on maxFiles and maxTotalFileSize - Align invocation timeout with session timeout - Remove redundant @PropertyConstraints(notEmpty = true)
Adds a new outbound connector for invoking external agents running in AWS Bedrock AgentCore Runtime. Uses sync client with invokeAgentRuntimeAsBytes() for simple request/response pattern. - Connector type: io.camunda:aws-bedrock-agentcore-runtime:1 - Supports agentRuntimeArn, prompt, and optional sessionId - Returns agent response text, sessionId, and statusCode - 4/4 unit tests passing - Element template generated
Invoke external agents deployed on AWS Bedrock AgentCore Runtime. - Sync client with invokeAgentRuntimeAsBytes() - Input DTO wrapper (agentRuntimeArn, prompt with FEEL, optional sessionId) - Generic createClient() with endpoint override support - Error handling with ConnectorException for BedrockAgentCoreException - Added to default-bundle for SaaS/runtime availability - Template ID in ignore-templates.json (pending 8.10) - Official AWS Bedrock SVG icon - 5/5 unit tests passing
…urable content type - Replace prompt (String) with payload (Object) for flexible FEEL-based payloads - Use ObjectMapper for payload serialization, remove manual escapeJson() - Add configurable contentType field (defaults to application/json) - Deserialize JSON responses to Map for FEEL expression access - Fall back to String for non-JSON responses - ObjectMapper as static field in connector function - 7/7 tests passing
- Rename contentType to payloadContentType, move after payload field - Remove @feel from agentRuntimeArn - Blank payloadContentType falls back to application/json - Only parse JSON response when accept content type contains 'json' - Deserialize to Object.class instead of Map.class for arrays/primitives - Use ObjectMapperSupplier.getMapperInstance() for AWS consistency - Add documentationRef to @ElementTemplate - Fix test ARN to 12-digit account ID - Update parent version to 8.10.0-SNAPSHOT
Implements outbound connector for retrieving persistent knowledge from AWS Bedrock AgentCore Long-Term Memory (issue #6853). Operations: - Retrieve Memory Records: semantic search across extracted memories - List Memory Records: browse/filter stored memory records Both operations return memory record summaries with content, score, metadata, namespaces, and pagination support. closes #6853
|
|
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Related issues
closes #
Checklist
release, as this branch will be rebased onto main before the next release. Example backport labels:
backport stable/8.8: for changes that should be included in the next 8.8.x release.backport release-8.8.7: for changes that should be included in the specific release 8.8.7, and thisrelease has already been created. The release branch will be merged back into stable/8.8 later, so the change
will be included in future 8.8.x releases as well.