@suiware/ai-tools
Version:
Pluggable tools for Vercel AI SDK which allow AI assistants to interact with Sui Network and perform various actions.
115 lines (74 loc) • 2.61 kB
Markdown
# @suiware/ai-tools
Pluggable tools for [Vercel AI SDK](https://sdk.vercel.ai/) which allow AI assistants to interact with Sui Network and perform various actions.
## Installation
```bash
pnpm add @suiware/ai-tools
```
## Configuration
To use the tools, you need to add a [few environment variables](/packages/examples/.env.example) to your `.env` file,
such as `SUI_PRIVATE_KEY` and `SUI_NETWORK` as well as `ANTHROPIC_API_KEY` and `OPENAI_API_KEY` for Anthropic and OpenAI respectively.
## Usage
```ts
// Source: https://github.com/suiware/ai-tools/blob/main/packages/examples/src/anthropic-simple-balance.ts
import { anthropic } from '@ai-sdk/anthropic'
import { suiWalletBalanceTool } from '@suiware/ai-tools'
import { generateText } from 'ai'
import { configDotenv } from 'dotenv'
configDotenv()
async function main() {
const { text } = await generateText({
model: anthropic('claude-3-5-sonnet-latest'),
prompt: 'get my sui wallet balance',
tools: {
// Plug a tool this way:
balance: suiWalletBalanceTool,
},
maxSteps: 5,
})
console.log(text)
}
main().catch(console.error)
```
See more **[usage examples](/packages/examples/README.md)**.
## Available tools
### suiAddressTool
Gets user address.
Examples:
- `get my address`
### suiWalletBalanceTool
Gets non-zero wallet balances.
_Please note if you have Staked SUI, it will be included in the results._
Examples:
- `get my wallet balances`
- `my balances`
### suiTransferTool
Transfer the amount of the specified coin to the specified address.
Examples:
- `transfer 1 sui to 0x1234567890abcdef`
- `send 10 wal to 0x1234567890abcdef`
- `donate 1 sui to @abcdef1234567890`
- `throw 1 sui to abcdef1234567890.sui`
Supported coins are listed [here](/packages/tools/src/core/config/coins.ts)
### suiSwapTool (mainnet only)
Performs coin swap. Supported coins are listed [here](/packages/tools/src/core/config/coins.ts)
Examples:
- `swap 1 sui for usdc`
- `convert 10 usdc to sui`
- `swap 1 sui for weth`
### suiStakeTool
Stakes SUI natively on the Mysten-1 validator.
_Please note if the staked amount less than 1 SUI, it might not work._
Examples:
- `stake 1 sui`
### suiUnstakeTool
Unstake all SUI.
Examples:
- `unstake`
- `unstake sui`
To get all available tools, use `getSuiwareAiTools()`.
Check the [source code](/packages/tools/src/ai/tools) of the tools.
## Changelog
Find the [detailed changelog](/packages/tools/CHANGELOG.md) in the package root.
## Links
- [Vercel AI SDK](https://sdk.vercel.ai/)
- [Vercel AI SDK Tools: Docs](https://sdk.vercel.ai/docs/foundations/tools)