It was the day after I got all issues resolved and made the “it works in dev” post that I had the moment.
“What if instead of a form intake it’s a conversation?”
“How would parents like to create a series of activities that built upon each other?”
And it hit me…what I had wasn’t all I want to build. There’s still more skills to continue to cultivate and kids to develop. That doesn’t happen with just one activity. There’s freedom in consistency and progressive path learning so, here we are.
Bedrock Agent vs AgentCore
chose Bedrock Agents instead of Bedrock AgentCore because I’m really looking to minimize how much I manage for this agent. And I have automation already in place to handle to few tools/Lambdas that will be available to this lone agent.
Model Choice
What I noticed with Bedrock Agents is that the models available for it seemed just be limited to Anthropic and Amazon’s Models. I may be missing something on this screen but it also wasn’t the latest models that have been released. So I selected the Claude Sonnet model version that wasn’t marked as legacy just to get the configs together.
AWS CLI
I also decided instead of Terraform I wanted use the AWS CLI to deploy from GitHub Actions. After creating the necessary role for GH actions to assume, adding permissions for Bedrock and Lambda, this worked pretty well. That is until I prepared and tested my agent and I got no response. Want to know why?
User Input is disabled by default. If you want a conversation, this setting must be enabled. It’s also a secondary bedrock call after the agent’s initial creation call.
Once you get the right model id and figure out the right syntax for your user input you’re all set.
System Prompt
The agent’s system prompt instructs the agent to have a warm tone and pleasant conversation about opportunities to create a single worksheet or a series of worksheets that build upon each other. It’s supposed to carry on the conversation until it captures all of the required inputs for the tools in the action group. Refining this is really important because it grounds the agent to stay focused on the end result. I don’t want to pay for unnecessary dialogue either so this is likely going to save me a few dollars too.
Action Group
I learned that the maximum number of parameters that can be passed to a target action is 5 through Bedrock. To accomplish this, I made a a fairly sizable changes to the lambdas inputs. Using nested parameters that had multiple parts of metadata in the was where I started to lean on CoPilot to assist. This took a few tries before we got it right, but the action group is connected and accessible.
Wrapping this up
Something newer that I noticed is that encryption handled by AWS is done with “AWS Owned” keys. The old “AWS Managed” keys showed up in the KMS console. But more recently with newer services seems the AWS-owned keys will no longer show up there. Shift in visibility is probably something cyber policy for folks will have to adjust to, because the visibility necessary for “trust but verify” may no longer be available. Now you just trust that a key owned on the AWS side is there and actually encrypting your stuff.
But that’s all…we’ll see how it works out here soon.
Top comments (0)