Package Exports
- @earnkit/sdk-farcaster
- @earnkit/sdk-farcaster/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@earnkit/sdk-farcaster) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Create an Agent and Add a Tool Using the Agent SDK
This guide will help you create an AI agent and add a tool to it using the Agent SDK. Follow the steps below to set up your environment, create an agent, and integrate a new tool.
Pre-Requisites
Before you start implementing the SDK, ensure you have completed the following steps:
Register on the Platform:
- Go to the platform and register yourself.
Create an API Key:
- Create an API key that you will use with the Agent SDK.
Create an AI Agent Wallet:
- Create a wallet that will be used to perform transactions via the agent.
Create a Farcaster Account:
- Create a Farcaster account to interact with the SDK and manage your agent.
Get API Key and Agent Name:
- Get the API key and the agent name, which will be required when interacting with the agent SDK if you are adding a new tool.
SDK Implementation
Step-by-Step Flow for Implementation
Step 1: Set Up Your Project
Create a new TypeScript project:
- Initialize a new TypeScript project.
- Install the necessary SDK packages.
npm init -y npm install typescript @earnkit/sdk-farcaster
Create
index.ts
file:- In the root of your project, create a file named
index.ts
.
- In the root of your project, create a file named
Step 2: Import SDK in index.ts
In your index.ts
file, import the required modules from the Agent SDK:
import { FarcasterAgentSDK } from "@earnkit/sdk-farcaster";
import { AgentConfig, ActionHandler } from "@earnkit/sdk-farcaster";
import { getEncodeFunctionData } from "@earnkit/sdk-farcaster";
Step 3: Initialize the SDK
Set up the SDK and initialize it with your API key:
async function main() {
// Initialize SDK with API key
const sdk = new FarcasterAgentSDK({
apiKey: "YOUR_API_KEY", // Replace with your API key
});
Step 4: Create Agent Configuration
Define the agent's configuration, including actions, schema, and characteristics:
const agentConfig: AgentConfig = {
name: "0xshinchain", // Replace with your agent name
apiKey: "YOUR_API_KEY", // Replace with your API key
schemaDescription: "This is an agent that gets the balance of a token",
actions: [
{
name: "store_number",
description: "Helps the user store a number in a smart contract.",
schemaDescription: "Instructions for storing a number in a smart contract",
inputs: [
{
name: "num",
type: "number",
description: "The number to store",
required: true,
},
],
handler: async () => {
return {};
},
},
],
characteristics: {
tone: "casual",
style: "concise",
personality: "friendly",
customPrompt: "Focus on being helpful and clear.",
},
};
Step 5: Create Action Handler
Define the action handler for the tool (in this case, storing a number in a smart contract):
const storeNumber: ActionHandler = async (
walletService: any,
params: any,
): Promise<`0x${string}`> => {
try {
const smartAccountClient = await walletService.getWalletClient();
const args: [bigint] = [BigInt(params.num)];
const txHash = await smartAccountClient.sendTransaction({
to: "0xa826787bf17ab8f03228F48438feA484d54a16A6", // Replace with the correct address
data: getEncodeFunctionData(
"function store(uint256 num) public",
"store",
args,
),
value: BigInt(0),
});
return txHash;
} catch (error) {
console.error("Error in store_number:", error);
throw new Error(`Failed to store number: ${error}`);
}
};
// Update the handler in the config
agentConfig.actions[0].handler = storeNumber.toString();
Step 6: Deploy the Agent
Now, deploy the agent using the createAgent
method:
try {
// Deploy the agent
const agentStatus = await sdk.createAgent(agentConfig);
console.log("Agent created:", agentStatus);
// Monitor agent status
const status = await sdk.getAgentStatus(agentStatus.agentId);
console.log("Agent status:", status);
} catch (error) {
console.error("Error:", error);
}
}
main().catch(console.error);
Step 7: Run the Application
Once everything is set up, you can run the project:
ts-node index.ts
This will create the agent, deploy it, and monitor its status.
Example Implementation
https://gist.github.com/Deepak973/205f5d9a12b7373e8218e9c79748966d
Conclusion
You have successfully created an AI agent and added a tool using the Agent SDK. You can now modify this setup to integrate additional tools or further customize the agent's behavior.
Notes:
- Replace placeholders such as
YOUR_API_KEY
and agent name with your actual values. - Ensure that you have the necessary permissions for transaction execution, wallet access, and smart contract interactions.