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

feat: Add Hummingbot plugin #1570

Open
wants to merge 7 commits into
base: develop
Choose a base branch
from

Conversation

SumeetChougule
Copy link
Contributor

Relates to:

No specific issue - This is a new plugin contribution

Risks

Low - This plugin is self-contained within its own package and doesn't modify any existing functionality. The only integration point is through the plugin system which is designed for extensibility.

Background

What does this PR do?

Adds a new Hummingbot plugin that enables Eliza agents to perform automated market making and trading operations. The plugin provides:

  • Real-time market data streaming via WebSocket
  • Simple market making strategy with configurable parameters
  • Order lifecycle management (create, cancel, track)
  • Inventory skew management
  • Type-safe configuration and error handling

What kind of change is this?

Features (non-breaking change which adds functionality)

Documentation changes needed?

My changes do not require a change to the project documentation as the plugin includes its own comprehensive README.md with installation, configuration, and usage instructions.

Testing

Where should a reviewer start?

  1. Review the plugin's architecture in packages/plugin-hummingbot/src/index.ts
  2. Check the market making strategy implementation in packages/plugin-hummingbot/src/strategies/simple-market-making.ts
  3. Review type definitions and configuration interface in packages/plugin-hummingbot/src/types.ts

Detailed testing steps

  1. Install dependencies with pnpm install
  2. Configure Hummingbot instance details in your character config:
{
  "plugins": ["@eliza/plugin-hummingbot"],
  "settings": {
    "HUMMINGBOT_CONFIG": {
      "instance": {
        "url": "http://localhost:15888",
        "apiKey": "your-api-key"
      }
    }
  }
}

This commit adds a new plugin that integrates Hummingbot's market making capabilities with Eliza trading agents. The plugin provides:
- Real-time market data streaming
- Simple market making strategy with configurable parameters
- Order lifecycle management
- Inventory skew management
@samarth30 samarth30 self-requested a review December 30, 2024 13:05
Copy link
Collaborator

@samarth30 samarth30 left a comment

Choose a reason for hiding this comment

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

Hi @SumeetChougule ,

Could you push your changes after taking the latest pull to ensure everything is up to date?

Also, it would be great if you could replace references to @ai16z with @elizaOS and update @elizaos/eliza to @elizaos/core to avoid any potential errors in the code.

Additionally, could you integrate your Hummingbot plugin into agent/src/index.ts, following the structure of other plugins? Lastly, don’t forget to include your .env configurations in the .env.example file for consistency.

Sumeet Chougule added 2 commits December 30, 2024 18:46
- Replace @ai16z/eliza with @elizaos/core
- Add Hummingbot configuration to .env.example
- Integrate Hummingbot plugin into agent/src/index.ts
- Export hummingbotPlugin function
- Update environment variable references to use HUMMINGBOT_API_KEY consistently
- Add Environment Variables section to README
- Use environment variable references in configuration examples
@odilitime odilitime added Plugin_new Mark PRs that are a new plugin Needs Testing labels Dec 30, 2024
@SumeetChougule SumeetChougule changed the title Add Hummingbot plugin for market making feat: Add Hummingbot plugin Dec 31, 2024
@SumeetChougule SumeetChougule force-pushed the plugin-hummingbot branch 2 times, most recently from 46f9372 to fe8fcd1 Compare December 31, 2024 15:07
Sumeet Chougule and others added 3 commits December 31, 2024 20:39
Updated the cancelAllOrders function to handle orders that might not have an id property by falling back to clientOrderId
- Add step to clean dist and tsbuildinfo files before build
- Add caching for pnpm store
- Ensure clean installation of dependencies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs Testing Plugin_new Mark PRs that are a new plugin
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants