Typescript agenkit should install only dependencies of enabled action provider
- 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
Assessment
This issue has not been assessed yet.