-
Notifications
You must be signed in to change notification settings - Fork 590
Strands Agents framework integration with AgentKit #757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
* add privy and moonwell logos * Update privy.svg * Update privy.svg * Update README.md
* readme mnemonic phrase import updates * expanding upon import description
* chore: fix publish_nightly * chore: update readme
* supported networks updates * adding section graphic * feedback * enabling light/dark mode, adding ethereum, zora * evm support note * adding light mode to moonwell
* Created base create-onchain-agent package * Added base templates/next template * Improved CLI handling of wallet provider * Improve responsiveness of UI * Finished working out what a agent route looks like * Implemented API routes for CDV, Viem, Privy and Solana routes * Refactored naming of route configuration and options * Setup CLI for testing * Added branching to CLI for network -> wallet provider selection * chore: handling defaults in CLI * chore: refactored api routes to better reflect network/walletProvider combinations * fix: changes after rebase * chore: cleanup files better after refactor * feat: improve CLI display * fix: adressed feedback * feat: improved the cli logged messages * refactor: types and constants out of utils * refactor: refactored constants and types out of utils * refactor: fileSystem out of cli * feat: coinbase branding improvements * feat: improved .env.local created format * feat: improved .env.local created format * feat: parse markdown when displaying agent messages * chore: added comments to files where agents get created * chore: refactored useAgent and commented * chore: added base project README * feat: added wallet provider descriptions to cli * bump: 0.1.0 * fix: added files for npm * chore: improved readme * chore: removed @coinbase from package.json * chore: added basis for prettier and lint * chore: cli readme feedback * chore: template readme feedback * chore: add coinbase to package description * chore: fixed prettier and ran * chore: fixed lint and ran * fix: package.lock * bump: 0.1.1 * chore: typescript readme * chore: fix constants lint error * feat: add dynamic message modifier and faucet to template * chore: comment regarding faucet * chore: fixed package.lock * fix: typo in readme * chore: updated readme to better reflect the outcome of create-onchain-agent * bump: 0.1.2 * feat: added wallet persistance for cdp * chore: updated package-lock after bump
* feat: initial python cli tool * feat: chatbot.ts generation via templating * feat: overhaul cli for devx and branding * chore: improved readme in template * chore: readme for create-onchain-agent * chore: commented generated chatbot.py * feat: pyproject.toml passes in package name from cli * chore: cleaned up some new lines creating by templating engine * chore: updated readmes and comments * chore: fix copier ignoring poetry.lock and copier.yml * chore: updated python readme * fix: typo in readme
* bump: release 0.1.3 hotfix * chore: update package-lock
* fix: cli tool does not bundle template, and must read them from somewhere. temp fix is github * chore: created/updated changelog * bump: python create-onchain-agent to 0.1.1 * fix: rename variable for python code style
* feat: added guard to cli to ensure python supported version * fix: readme * fix: removed 12 from allowed_minors list. Was there for testing * chore: updated requirement docs
* feat: added gha for npm create-onchain-agent * chore: updated secret to NPM_TOKEN_CREATE_ONCHAIN_AGENT * chore: pr feedback * chore: reverted env secret to shared NPM_TOKEN * chore: updated gha name * chore: pr feedback
* chore: added changelog to create-onchain-agent * chore: updated package-lock
…checksum to avoid errors (#460) Sometimes the address given by explorers/wallets isn't in the right format
|
Hi @ucegbe, this looks great to me, thanks for the integration! Just a few comments:
|
| # Create a BedrockModel | ||
| bedrock_model = BedrockModel( | ||
| model_id="us.amazon.nova-premier-v1:0", | ||
| region_name='us-east-1', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this use AWS_REGION from env here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for spotting, made the change to use the region variable
| user_input = input("\nPrompt: ") | ||
| if user_input.lower() == "exit": | ||
| break | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For empty prompts (pressing enter by accident), the chatbot crashes with botocore.errorfactory.ValidationException: An error occurred (ValidationException) when calling the ConverseStream operation: The text field in the ContentBlock object at messages.0.content.0 is blank. Add text to the text field, and try again.
Suggest to add:
if not user_input.strip(): continue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this was an oversight, fixed!
proper CD wallet library import included direction for Bedrock API keys lint check modification to strands chatbot example
|
I have made teh changes requested above, rebased against main and applied my commits. |
| validate_environment() | ||
|
|
||
| # Load environment variables | ||
| load_dotenv() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think load_dotenv() needs to be before validate_environment()
Thanks for the quick turnaround! Changes look good, only one follow up above. Also would be appreciated if you could add the framework extension to the project README (https://github.com/coinbase/agentkit/blob/main/python/README.md) |
|
sorry about that! Made all the changes. Cheers |
enforcing region env variable to be set
Great, thanks! I tested it once more and think we are ready to go @CarsonRoscoe |
* unwrap weth action * updated docs * description fix, updated README * changeset updated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ucegbe It looks great, thank you for the contribution!
One last thing to resolve, we require signed commits, and sadly, the first two commits in this PR (3242330,095c3f7) were not signed, and then there's two other commits scattered in there that are not being associated with your account, but they are to your name.
Please rebase against main and resign all commits. That should resolve it
* Added media upload support for Twitter and embeds support for Farcaster * improve action description
|
Updated PR at #798 |
Description
Changes:
coinbase-agentkit-strands-agentspackage inpython/framework-extensions/strands-agents/get_strands_tools()function to convert AgentKit actions into Strands-Agents-compatible toolspython/examples/strands-agents-cdp-server-chatbot/This enables developers using Strands Agents to leverage all existing AgentKit CDP actions (wallet operations, token transfers, trading, etc.) with minimal setup.
Tests
Checklist