# elizaOS Development Discord - 2025-01-04

## Overall Discussion Highlights

### Plugin Development
- Multiple developers are working on new plugins for various services including Akash DePIN, Perplexity, Hyperlane, and EVM chains
- AIFlow.ML is developing an Akash plugin to allow agents to use decentralized computing resources
- Bertux is creating a plugin for Arthera EVM chain ecosystem, starting with native token transfers
- Several financial/crypto plugins are in development: Rabbi Trader, Binance, DexScreener price plugin
- Bulldozer expressed interest in adding Hathor Network blockchain integration with DEX capabilities

### Technical Issues & Solutions
- A significant issue was identified and fixed related to a module not found error in the plugin-node package during integration tests
  - Root cause: Race condition where code was trying to use a package before it was installed
  - Fix implemented in PR #1872 by modifying the postinstall script
- Several developers encountered "zero-length vector" errors when creating memories without proper embedding generation
  - Solution: Using the `addEmbeddingToMemory()` method before storing memories
- Twitter client integration issues in production environments were discussed, possibly related to geographic restrictions
- Frozen-lockfile errors during installation were addressed with the --no-frozen-lockfile flag
- Build script in starter package.json was fixed by modifying from "tsup --format esm --dts" to "tsup src/index.ts --format esm --dts"

### Agent Development
- Discussions around memory management and embeddings in agent systems
- Best practices for handling news source data in agent actions, with recommendations to separate different sources
- AIFlow.ML is developing a knowledge graph agent locally, with plans to showcase it for Q&A and onboarding
- Troubleshooting infinite loops in the `generateMessageResponse` function

### Project Management
- Core developers are reviewing PRs for new plugins
- Discussions about dependency management practices, particularly regarding when to update lock files
- Some developers expressed concern about the current approach of frequently updating dependencies

## Key Questions & Answers

**Q: How do you fix the "Cannot find module '@elizaos/core/dist/index.js'" error in integration tests?**  
A: Update to the latest develop branch which contains a fix for the race condition where code was trying to use a package before it was installed. (Odilitime)

**Q: Is anyone working on perplexity integration?**  
A: No one is currently working on it, so you should create one as a plugin with proper error handling. (AIFlow.ML @ ElizaOS)

**Q: How do you resolve the frozen-lockfile error during installation?**  
A: Use the --no-frozen-lockfile flag with pnpm install. (WarfreakzPlays)

**Q: Why does Twitter client work locally but not in production?**  
A: It could be due to geographic restrictions as Twitter doesn't like logins from different countries. (Odilitime)

**Q: Who reviews new plugin PRs?**  
A: The core devs are reviewing PRs at this point. (Santi)

**Q: Would it be better to have each news source I want to grab data from built into separate actions?**  
A: Separating news sources into distinct actions makes your code more modular and easier to maintain. Each source can have its own error handling, parsing logic, and be independently updated without affecting others. (Ruby)

**Q: What does "zero-length vector are not supported" mean?**  
A: Zero-length vector error typically occurs when you're trying to perform an embedding search with an empty or uninitialized vector. (Ruby)

**Q: My only concern is about pnpm-lock.yaml being too updated by pnpm, does it sound like a problem to you?**  
A: pnpm-lock.yaml updates are usually benign. As long as the dependency versions match what's specified in package.json, you should be fine. (Ruby)

## Community Help & Collaboration

- **Module Resolution Error Fix**
  - Helper: Odilitime | Helpee: WarfreakzPlays
  - Identified the root cause of integration test failures as a race condition in PR #1834 and created a fix in PR #1872
  - WarfreakzPlays later helped Pleasures with the same issue by advising to get the latest version of develop branch

- **Memory Embedding Assistance**
  - Helper: Ruby | Helpee: KeyesCode.eth
  - Explained the need to use addEmbeddingToMemory() before storing memories to generate proper vector embeddings
  - kAI wilder provided code examples from eliza.gg showing how to properly add embeddings to memory

- **Build Script Improvements**
  - Helper: V Gray | Helpee: Community
  - Modified build script from "tsup --format esm --dts" to "tsup src/index.ts --format esm --dts" to fix issues

- **Dependency Management Guidance**
  - Helper: Ruby | Helpee: Bertux
  - Explained that lock file updates are usually benign and suggested using `--frozen-lockfile` to validate compatibility

## Action Items

### Technical
- Fix race condition in plugin-node postinstall script to avoid using packages before they're installed (Odilitime)
- Implement addEmbeddingToMemory() before storing memories to prevent zero-length vector errors (Ruby)
- Separate different news sources into distinct modular actions for better maintainability (Ruby)
- Add validation checks for embedding generation before database insertion (Ruby)
- Investigate and fix infinite recursion issues in generateMessageResponse (Ruby)
- Complete Rabbi Trader PR to remove external dependencies and add tweeting/data analysis (Neodotneo)
- Finalize Binance plugin for checking prices, making trades, and checking wallet balance (Spit)
- Complete DexScreener price plugin with actions, evaluators and providers (Pleasures)
- Implement Arthera EVM chain support with native token transfers and meme token minting (Bertux)
- Integrate Infera as an inference provider (White)
- Develop knowledge graph agents for Q/A and onboarding (AIFlow.ML @ ElizaOS)
- Create Perplexity integration plugin with web search functionality and proper error handling (ddude)
- Develop Akash DePIN plugin to enable agents to use decentralized computing resources (AIFlow.ML @ ElizaOS)
- Create HyperLane integration for cross-chain functionality (Bertux)
- Add computer/desktop use capability to Eliza to allow agents to operate user machines (AIFlow.ML @ ElizaOS)
- Create proxy in Eliza for Twitter authentication to avoid geographic restrictions (Odilitime)
- Add Hathor Network blockchain integration with DEX capabilities (Bulldozer)
- Review dependency management practices, particularly regarding lock file updates (cole)

### Documentation
- Document how to add new plugins to the plugin registry with guidelines for submission and integration (Bertux)
- Review eliza.gg documentation for memory management implementation details (kAI wilder)
- Pin the agent dev school recording links for easy reference (Robin)

### Feature
- Add image upload capability to allow uploading images for the bot to use in specific contexts (Crowking)
- Consider implementing dynamic lore/bio integration using environment variables or config files (Ruby)
- Explore multimodal embedding capabilities for image handling in agent contexts (Ruby)