Feedback Usage
Full example of giving feedback and managing reputation.
from agent0_sdk import SDKimport os
# Initialize SDKsagent_sdk = SDK( chainId=11155111, rpcUrl=os.getenv("RPC_URL"), signer=os.getenv("AGENT_PRIVATE_KEY"), ipfs="pinata", pinataJwt=os.getenv("PINATA_JWT"))
client_sdk = SDK( chainId=11155111, rpcUrl=os.getenv("RPC_URL"), signer=os.getenv("CLIENT_PRIVATE_KEY"), ipfs="pinata", pinataJwt=os.getenv("PINATA_JWT"))
# Agent signs authorization for clientfeedbackAuth = agent_sdk.signFeedbackAuth( agentId="11155111:123", clientAddress=client_sdk.web3_client.account.address, expiryHours=24)
# Client prepares feedbackfeedback_file = client_sdk.prepareFeedback( agentId="11155111:123", score=90, tags=["data_analyst", "finance"], capability="tools", name="code_generation", skill="python")
# Submit feedbackfeedback = client_sdk.giveFeedback( agentId="11155111:123", feedbackFile=feedback_file, feedbackAuth=feedbackAuth)
print(f"✅ Feedback submitted: {feedback.id}")
# Read single feedbackretrieved = agent_sdk.getFeedback(feedback.id)print(f"Score: {retrieved.score}")print(f"Tags: {retrieved.tags}")
# Search feedbackall_feedback = agent_sdk.searchFeedback( agentId="11155111:123", tags=["data_analyst"], minScore=80)print(f"Found {len(all_feedback)} positive feedbacks")
# Get reputationsummary = agent_sdk.getReputationSummary("11155111:123")print(f"Average: {summary['averageScore']}")import { SDK } from 'agent0-sdk';
async function main() { // Initialize SDKs const agentSdk = new SDK({ chainId: 11155111, rpcUrl: process.env.RPC_URL || '', signer: process.env.AGENT_PRIVATE_KEY, ipfs: 'pinata', pinataJwt: process.env.PINATA_JWT, });
const clientSdk = new SDK({ chainId: 11155111, rpcUrl: process.env.RPC_URL || '', signer: process.env.CLIENT_PRIVATE_KEY, ipfs: 'pinata', pinataJwt: process.env.PINATA_JWT, });
const agentId = '11155111:123';
// Agent signs authorization for client (async in TypeScript) const feedbackAuth = await agentSdk.signFeedbackAuth( agentId, clientSdk.web3Client.address!, // Get client address from web3Client 24 // expiryHours );
// Client prepares feedback const feedbackFile = clientSdk.prepareFeedback( agentId, 90, // score ['data_analyst', 'finance'], // tags undefined, // text 'tools', // capability 'code_generation', // name 'python' // skill );
// Submit feedback (async in TypeScript) const feedback = await clientSdk.giveFeedback( agentId, feedbackFile, feedbackAuth );
console.log(`✅ Feedback submitted: ${feedback.id.join(':')}`);
// Read single feedback (async in TypeScript) // Note: getFeedback requires separate params in TypeScript const [feedbackAgentId, clientAddress, feedbackIndex] = feedback.id; const retrieved = await agentSdk.getFeedback( feedbackAgentId, clientAddress, feedbackIndex ); console.log(`Score: ${retrieved.score}`); console.log(`Tags: ${retrieved.tags}`);
// Search feedback (async in TypeScript) const allFeedback = await agentSdk.searchFeedback( agentId, ['data_analyst'], // tags undefined, // capabilities undefined, // skills 80 // minScore ); console.log(`Found ${allFeedback.length} positive feedbacks`);
// Get reputation (async in TypeScript) const summary = await agentSdk.getReputationSummary(agentId); console.log(`Average: ${summary.averageScore}`);}
main().catch(console.error);