This repository is a small monorepo of AI agent examples built on AWS. It currently contains:
hr-agents/: resume evaluation systems implemented with multiple AWS agent architecturesrestaurant-agent/: a restaurant support agent for menu search and reservationsharness/: putting an agent inside a deterministic control path (Bedrock AgentCore harness)
The projects are independent. Each subdirectory has its own deployment flow, dependencies, and detailed documentation.
.
├── hr-agents/
│ ├── README.md
│ ├── stepfunctions-agent/
│ ├── bedrock-agent/
│ ├── strands-lambda-agent/
│ ├── strands-agentcore-agent/
│ └── samples/
├── restaurant-agent/
│ ├── README.md
│ ├── restaurant_agent.py
│ └── test_restaurant_agent.py
└── harness/
├── README.md
├── configs/ # one harness config per agent (instructions + output schema)
├── shared/ # harness_lib.py -- the seam helper
├── cloudformation/ # AWS::BedrockAgentCore::Harness + the three scenarios
├── scenario1-release-review/ # CodePipeline
├── scenario2-extract-judge/ # Step Functions
├── eventbridge-variants/ # EventBridge advisory agents
└── diagrams/ # AWS-icon, draw.io and Excalidraw diagrams
hr-agents/ contains several approaches to the same resume-processing problem:
stepfunctions-agent/: orchestrated workflow with AWS Step Functions and Lambdabedrock-agent/: Bedrock Agents-based multi-agent implementationstrands-lambda-agent/: Strands agents running in Lambdastrands-agentcore-agent/: Strands agents hosted on Bedrock AgentCore Runtime
Typical flow:
- Upload a job description to S3.
- Upload a resume to S3.
- Trigger automated evaluation.
- Store structured candidate results in DynamoDB.
Start here: hr-agents/README.md
restaurant-agent/ is a conversational restaurant assistant built around AWS Bedrock AgentCore and Strands. It supports:
- menu and dish discovery
- reservation creation, lookup, updates, and cancellation
- DynamoDB-backed persistence for reservation records
Start here: restaurant-agent/README.md
harness/ demonstrates how to put a non-deterministic agent inside a deterministic control path
safely, using the Amazon Bedrock AgentCore managed harness (native
AWS::BedrockAgentCore::Harness in CloudFormation) with Amazon Nova 2 Lite.
A surrounding AWS service hands the agent one well-scoped job. The agent does the fuzzy part and emits structured JSON validated against a schema. The AWS service owns control flow, retries, and any irreversible action. The agent always fails closed.
Same harness pattern, three entry points, one boundary rule:
| Entry point | Agent | Who acts on the verdict |
|---|---|---|
| CodePipeline action | release-review → pass / concerns / block |
the pipeline (Lambda glue) |
| Step Functions task | extract-and-judge → confidence + flags |
the state machine (Choice state) |
| EventBridge rules | security-responder, deploy-annotator (advisory) | a human |
Deployed with plain CloudFormation (no CDK, no custom resource). All three scenarios are verified end to end against a live account.
Start here: harness/README.md
Most examples assume:
- AWS CLI configured for an account with the required permissions
- Python 3.10+ or 3.11+
- access to Amazon Bedrock in the target region
- AWS SAM CLI for the SAM-based deployments
Some projects also require Bedrock AgentCore or Strands-specific tooling. Check the README in the relevant subdirectory before deploying.
Choose one project and follow its local README:
cd hr-agentsor
cd restaurant-agent- This repo is organized as examples, not as a single deployable application.
- Infrastructure, scripts, and sample data live with each project that uses them.
- If you want to compare agent architectures for the same use case, start with
hr-agents/.