0.1.40 • Published 7 months ago
@defikitdotnet/public-agent-module v0.1.40
Public Agent Management Module
A module for the Agent Framework that enables users to publish their AI agents publicly and provides a listing to view and interact with published agents.
Features
- Publish agents to make them publicly accessible
- List all published agents
- View details of specific published agents
- Send messages to published agents
- Unpublish agents to hide them from the public listing
API Endpoints
Method | Endpoint | Description |
---|---|---|
GET | /api/agents/public | Get all published agents |
GET | /api/agents/public/:id | Get details of a published agent |
POST | /api/agents/:id/publish | Publish an agent |
POST | /api/agents/:id/unpublish | Unpublish an agent |
POST | /api/agents/:id/message | Send a message to a published agent |
Database Schema
The module uses the following database schema:
-- Existing accounts table (referenced only)
CREATE TABLE IF NOT EXISTS "accounts" (
"id" TEXT PRIMARY KEY,
"createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
"name" TEXT,
"username" TEXT,
"email" TEXT,
"avatarUrl" TEXT,
"details" TEXT DEFAULT '{}' CHECK(json_valid("details")),
"character" TEXT CHECK(json_valid("character")),
"status" TEXT DEFAULT 'active' CHECK(status IN ('active', 'inactive', 'deleted')),
"createdBy" TEXT DEFAULT 'did:privy:cm6077sr4041241z02cdo6hpv',
"isExportData" BOOLEAN DEFAULT 0,
"type" TEXT DEFAULT 'user' CHECK(type IN ('user', 'agent'))
);
-- Public agents table
CREATE TABLE IF NOT EXISTS "public_agents" (
"agentId" TEXT PRIMARY KEY REFERENCES accounts(id) ON DELETE CASCADE,
"publishedAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
"status" TEXT DEFAULT 'published' CHECK(status IN ('published', 'unpublished'))
);
Installation
pnpm add public-agent-management
Usage
Backend Setup
import express from 'express';
import { initializeBackend } from 'public-agent-management';
import { sqliteAdapter } from '@elizaos/adapter-sqlite';
const app = express();
app.use(express.json());
// Create database adapter
const dbAdapter = sqliteAdapter.createAdapter({
databasePath: './data/myapp.db',
});
// Initialize the public agent management module
initializeBackend(app, dbAdapter);
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Environment Variables
Create a .env
file with the following configuration:
AGENT_MESSAGING_ENDPOINT=http://localhost:3001/api/agent/message
API Examples
Publish an Agent
curl -X POST http://localhost:3000/api/agents/agent-123/publish
Get Published Agents
curl http://localhost:3000/api/agents/public
Send a Message to an Agent
curl -X POST http://localhost:3000/api/agents/agent-123/message \
-H "Content-Type: application/json" \
-d '{"message": "Hello, agent!", "userId": "user-456"}'
Development
# Clone the repository
git clone [repository-url]
# Navigate to the module directory
cd examples/public-agent-management
# Install dependencies
pnpm install
# Start the development server
pnpm run backend
License
MIT
0.1.40
7 months ago
0.1.39
7 months ago
0.1.38
7 months ago
0.1.37
7 months ago
0.1.36
7 months ago
0.1.35
7 months ago
0.1.34
7 months ago
0.1.33
7 months ago
0.1.32
7 months ago
0.1.31
7 months ago
0.1.30
7 months ago
0.1.29
7 months ago
0.1.28
7 months ago
0.1.27
7 months ago
0.1.26
7 months ago
0.1.25
7 months ago
0.1.24
7 months ago
0.1.23
7 months ago
0.1.22
7 months ago
0.1.21
7 months ago
0.1.20
7 months ago
0.1.19
7 months ago
0.1.18
7 months ago
0.1.17
7 months ago
0.1.16
7 months ago
0.1.15
7 months ago
0.1.14
7 months ago
0.1.13
7 months ago
0.1.12
7 months ago
0.1.11
7 months ago
0.1.10
7 months ago
0.1.9
7 months ago
0.1.8
7 months ago
0.1.7
7 months ago
0.1.6
7 months ago
0.1.5
7 months ago
0.1.4
7 months ago
0.1.3
7 months ago
0.1.2
7 months ago
0.1.1
7 months ago