Skip to content
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

chore: default coinbase agentkit plugin #2505

Merged
merged 41 commits into from
Jan 19, 2025
Merged

Conversation

sweetmantech
Copy link
Contributor

@sweetmantech sweetmantech commented Jan 18, 2025

Relates to

  • @elizaos/plugin-agentkit - default configuration in the agent/src/index.ts file for easier import by external developers.

Risks

  • Low - break getClient usage in @elizaos/plugin-agentkit be removing networkChain param in favor of ENV variable for network configuration.

Background

What does this PR do?

  • @elizaos/plugin-agentkit - default configuration in the agent/src/index.ts file for easier import by external developers.

What kind of change is this?

  • Improvements - allow network configuration (hard-coded before).
  • Feature - easier usage of the @elizaos/plugin-agentkit plugin in the main Eliza agent.

Why are we doing this? Any context or related work?

Steps to add @elizaos/plugin-agentkit are more challenging than adding other plugins in the Eliza ecosystem. This change standardizes the plugin import for consistent developer experience.

Documentation changes needed?

My changes require a change to the project PLUGIN documentation.
I have updated the documentation accordingly. ✅

  • packages/plugin-agentkit/README.md

Testing

Where should a reviewer start?

  1. agent/src/index.ts
  2. packages/plugin-agentkit/src/provider.ts
  3. packages/plugin-agentkit/README.md

Detailed testing steps

None: Automated tests are acceptable.

Discord username

sweetman.eth

Summary by CodeRabbit

Release Notes

  • Configuration Changes

    • Updated environment variable from COINBASE_AGENT_KIT_NETWORK to CDP_AGENT_KIT_NETWORK
    • Default network configuration set to base-sepolia
  • Documentation Updates

    • Corrected plugin name in documentation
    • Improved README formatting and clarity
  • Plugin Enhancements

    • Added initialization logging for AgentKit Plugin
    • Modified network configuration retrieval method
    • Simplified client initialization process
  • Code Cleanup

    • Removed unused code imports
    • Improved code readability and formatting

Copy link
Contributor

coderabbitai bot commented Jan 18, 2025

Warning

There were issues while running some tools. Please review the errors and either fix the tool’s configuration or disable the tool if it’s a critical failure.

🔧 eslint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

agent/src/index.ts

Oops! Something went wrong! :(

ESLint: 9.18.0

ESLint couldn't find an eslint.config.(js|mjs|cjs) file.

From ESLint v9.0.0, the default configuration file is now eslint.config.js.
If you are using a .eslintrc.* file, please follow the migration guide
to update your configuration file to the new format:

https://eslint.org/docs/latest/use/configure/migration-guide

If you still have problems after following the migration guide, please stop by
https://eslint.org/chat/help to chat with the team.

📝 Walkthrough

Walkthrough

The pull request introduces changes to the Coinbase Agent Kit configuration, focusing on renaming the network-related environment variable from COINBASE_AGENT_KIT_NETWORK to CDP_AGENT_KIT_NETWORK. The modifications span across multiple files, updating configuration settings, plugin initialization, and documentation to reflect this change while maintaining the default network as base-sepolia.

Changes

File Change Summary
.env.example Replaced COINBASE_AGENT_KIT_NETWORK with CDP_AGENT_KIT_NETWORK=base-sepolia
agent/src/index.ts Added conditional agentKitPlugin import and inclusion based on secret keys
packages/plugin-agentkit/README.md Updated plugin name, configuration instructions, and network support details
packages/plugin-agentkit/src/actions.ts Reformatted currentState variable assignment
packages/plugin-agentkit/src/index.ts Added console log banner for AgentKit Plugin
packages/plugin-agentkit/src/provider.ts Removed networkId parameter, now using environment variable

Possibly related PRs

Suggested labels

needs_documentation


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3512475 and 05974c9.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (6)
  • .env.example (1 hunks)
  • agent/src/index.ts (2 hunks)
  • packages/plugin-agentkit/README.md (3 hunks)
  • packages/plugin-agentkit/src/actions.ts (1 hunks)
  • packages/plugin-agentkit/src/index.ts (1 hunks)
  • packages/plugin-agentkit/src/provider.ts (3 hunks)
✅ Files skipped from review due to trivial changes (2)
  • packages/plugin-agentkit/src/index.ts
  • packages/plugin-agentkit/src/actions.ts
🧰 Additional context used
🪛 LanguageTool
packages/plugin-agentkit/README.md

[uncategorized] ~39-~39: Loose punctuation mark.
Context: ...gentKit tools: - GET_WALLET_DETAILS: Get wallet information - DEPLOY_NFT...

(UNLIKELY_OPENING_PUNCTUATION)

🔇 Additional comments (8)
packages/plugin-agentkit/src/provider.ts (2)

7-7: LGTM! Good refactoring to use environment variables.

The change from hardcoded network configuration to environment variable improves flexibility while maintaining backward compatibility with the default value.

Also applies to: 23-23


37-37: Verify the impact of removing networkId parameter.

The function call has been updated correctly to match the new signature.

Let's verify there are no remaining calls with the old signature:

✅ Verification successful

All getClient calls verified - no parameters used

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for any remaining calls to getClient with parameters
rg "getClient\([^)]+\)" 

Length of output: 25


Script:

#!/bin/bash
# Search for getClient function calls using ast-grep
ast-grep --pattern 'getClient($_)'

# Backup search with simpler pattern
rg "getClient" -A 2

# Search for function declaration
ast-grep --pattern 'function getClient'

Length of output: 3370

agent/src/index.ts (2)

15-15: LGTM! Clean import statement.

The import follows the established pattern for plugin imports.


866-869: LGTM! Well-structured plugin initialization.

The plugin initialization follows the established pattern and correctly checks for required secrets.

packages/plugin-agentkit/README.md (3)

18-18: LGTM! Clear environment variable documentation.

The new environment variable is well-documented with its default value.


25-25: LGTM! Corrected plugin name.

Fixed the plugin name from @ai16z/plugin-agentkit to @elizaos/plugin-agentkit.


39-50: LGTM! Improved tools list formatting.

The consistent formatting with leading dashes improves readability.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark.
Context: ...gentKit tools: - GET_WALLET_DETAILS: Get wallet information - DEPLOY_NFT...

(UNLIKELY_OPENING_PUNCTUATION)

.env.example (1)

364-364: LGTM! Clear environment variable definition.

The new environment variable is well-documented with its default value and matches the changes in other files.

Finishing Touches

  • 📝 Generate Docstrings (Beta)

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@wtfsayo wtfsayo enabled auto-merge (squash) January 19, 2025 11:13
@wtfsayo wtfsayo self-requested a review January 19, 2025 11:13
@wtfsayo wtfsayo changed the title AgentKit - Default Agent Config chore: default coinbase agentkit plugin Jan 19, 2025
@wtfsayo
Copy link
Member

wtfsayo commented Jan 19, 2025

in a future PR can you make it more obvious that this is coinbase agent kit

@wtfsayo
Copy link
Member

wtfsayo commented Jan 19, 2025

Warning

There were issues while running some tools. Please review the errors and either fix the tool’s configuration or disable the tool if it’s a critical failure.

🔧 eslint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

agent/src/index.ts
Oops! Something went wrong! :(

ESLint: 9.18.0

ESLint couldn't find an eslint.config.(js|mjs|cjs) file.

From ESLint v9.0.0, the default configuration file is now eslint.config.js. If you are using a .eslintrc.* file, please follow the migration guide to update your configuration file to the new format:

https://eslint.org/docs/latest/use/configure/migration-guide

If you still have problems after following the migration guide, please stop by https://eslint.org/chat/help to chat with the team.

📝 Walkthrough
📜 Recent review details

Finishing Touches

  • 📝 Generate Docstrings (Beta)

🪧 Tips

we use biome toolchain now!

@wtfsayo wtfsayo merged commit 631cd6d into elizaOS:develop Jan 19, 2025
7 of 9 checks passed
mgunnin added a commit to mgunnin/eliza-agent that referenced this pull request Jan 19, 2025
* upstream/develop:
  plugin-tts: enhance TTS generation flow and caching (elizaOS#2506)
  chore: add eliza technical report/paper (elizaOS#2517)
  feat: plugin rabbi trader tests (elizaOS#2520)
  Replace user ID with room ID in MemoryManager and other improvements (elizaOS#2492)
  test: plugin-tee - adjusting project structure and new tests (elizaOS#2508)
  fix: use header key from api config (elizaOS#2518)
  docs: add docs/README_JA.md (elizaOS#2515)
  AgentKit - Default Agent Config (elizaOS#2505)
  feat(plugin-openai): add OpenAI integration for text generation (elizaOS#2463)
  feat: add support for NVIDIA inference for ElizaOS (elizaOS#2512)
  test: api timeout handling for plugin-binance (elizaOS#2504)
  Replace type assertions
  Replace type assertions
  destroy file system after sending media
  support multimedia
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.

2 participants