Skip to content

Introduce AgentCore strands-agent sample - #360

Open
justinschoeff wants to merge 3 commits into
mainfrom
schoeff/strands-agent
Open

Introduce AgentCore strands-agent sample#360
justinschoeff wants to merge 3 commits into
mainfrom
schoeff/strands-agent

Conversation

@justinschoeff

@justinschoeff justinschoeff commented Sep 8, 2026

Copy link
Copy Markdown

What was changed

This sample includes a strands agent loop aimed to run on AWS AgentCore,
invoked by Temporal serverless workers. This utilizes the AWS AgentCore
CLI and related configuration for serverless workers.

Why?

AWS AgentCore has a unique interface and is a key service being marketed by AWS. This is in preparation for launch of serverless workers supporting AgentCore.

Checklist

  1. Closes

  2. How was this tested:
    Ran the commands in readme, verified it created runtime, started the workflow and watched the worker in AgentCore runtime trigger activities in CW logs and in workflow history.

  3. Any docs updates needed?
    @lennessyy is working on docs

@justinschoeff
justinschoeff force-pushed the schoeff/strands-agent branch 2 times, most recently from d74938a to cae7e6b Compare September 9, 2026 02:12
This sample includes a strands agent loop aimed to run on AWS AgentCore,
invoked by Temporal serverless workers. This utilizes the AWS AgentCore
CLI and related configuration for serverless workers.
@justinschoeff
justinschoeff marked this pull request as ready for review September 9, 2026 13:10
@justinschoeff
justinschoeff requested review from a team as code owners September 9, 2026 13:10
must set that version as current, or nothing will be routed to the Worker:

```bash

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment thread pyproject.toml
Comment on lines 133 to +140
[tool.ruff]
target-version = "py310"
extend-exclude = ["lambda_worker"]
extend-exclude = ["bedrock_agentcore", "lambda_worker"]

[tool.mypy]
ignore_missing_imports = true
namespace_packages = true
exclude = ["lambda_worker/"]
exclude = ["bedrock_agentcore/", "lambda_worker/"]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What's behind the decision not to lint/typecheck?

Comment thread README.md
* [activity_worker](activity_worker) - Use Python activities from a workflow in another language.
* [batch_sliding_window](batch_sliding_window) - Batch processing with a sliding window of child workflows.
* [bedrock](bedrock) - Orchestrate a chatbot with Amazon Bedrock.
* [bedrock_agentcore/strands-agent](bedrock_agentcore/strands-agent) - Run a AWS Strands Agent with Temporal Plugin on AgentCore Worker.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Use underscores for directory name consistency?

Suggested change
* [bedrock_agentcore/strands-agent](bedrock_agentcore/strands-agent) - Run a AWS Strands Agent with Temporal Plugin on AgentCore Worker.
* [bedrock_agentcore/strands_agent](bedrock_agentcore/strands_agent) - Run a AWS Strands Agent with Temporal Plugin on AgentCore Worker.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why do we have a strands-agent subdirectory in the first place? Planning on demoing other agent frameworks with AgentCore?

@app.entrypoint
@app.async_task # keeps /ping on "HealthyBusy" until this returns
async def invoke(payload: dict) -> dict:
"""Poll until idle, then drain. The payload is unused: every call is a new session and new worker."""

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Would it make sense to launch the Worker in a background task/thread, register it with add_async_task, and immediately return an acknowledgement?

interceptors=[tracker],
deployment_config=WorkerDeploymentConfig(
version=WorkerDeploymentVersion(
deployment_name=DEPLOYMENT_NAME, build_id=BUILD_ID

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Consider passing deployment name and build ID in the payload. Using environment variables as a second source of truth could cause version drift

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants