coinbase / coinbase/agentkit

Typescript agenkit should install only dependencies of enabled action provider

Open
#332 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
1.3k
Forks
815
Avg merge
13h 31m
Merged PRs (30d)
2

Description

### 🚀 The feature, motivation and pitch

currently we have to mix dependencies of all action providers to agentkit at [package.json](https://github.com/coinbase/agentkit/blob/master/typescript/agentkit/package.json#L41)

e.g. you will need to install dependencies of twitter api even if your agent do not tweet and runs only morpho provider. This increase dev complexity with [dependency hell](https://en.wikipedia.org/wiki/Dependency_hell) of each package and also risks of package supply chain attack.
More obvious when you have different package each depends on viem, ethers-v5 or ethers-v6

Typical solution will be
1. a plugin systems with monorepo where each action has its own dependency (package.json), as in langchain / [eliza](https://github.com/elizaOS/eliza/tree/main/packages)
2. agentkit is a template, use cli to install only what is needed when you turn on a action provider (shadcn style)

End goal is only necessary packages end up in application agent's dependencies, within agentkit they stay as `devDependencies` or `peerDependencies`

wonder if related plans exists already?

### Alternatives

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.