Page cover

Agents Module

The Agents module in the JuliaOS framework provides a comprehensive interface for creating, managing, and interacting with agents. This page explains how to use the Agents module in your applications.

Overview

The Agents module connects to the Julia backend through the JuliaBridge and provides methods for creating, retrieving, starting, stopping, and executing tasks with agents. It also includes specialized agent types for specific use cases.

Installation

npm install @juliaos/framework

Usage

Initializing the Agents Module

import { JuliaBridge } from '@juliaos/julia-bridge';
import { Agents } from '@juliaos/framework';

// Initialize the bridge
const bridge = new JuliaBridge({ host: 'localhost', port: 8052 });
await bridge.initialize();

// Create the Agents module
const agents = new Agents(bridge);

Creating an Agent

const agent = await agents.createAgent({
  name: 'MyAgent',
  type: 'trading',
  config: {
    risk_tolerance: 'medium',
    max_position_size: 1000,
    take_profit: 0.05,
    stop_loss: 0.03,
    trading_pairs: ['ETH/USDC', 'BTC/USDC'],
    strategies: ['momentum', 'mean_reversion']
  }
});

console.log('Created agent:', agent);

Starting an Agent

await agents.startAgent(agent.id);
console.log('Agent started');

Executing a Task with an Agent

const taskResult = await agents.executeTask(agent.id, {
  action: 'analyze_market',
  market: 'crypto',
  timeframe: '1d'
});

console.log('Task result:', taskResult);

Getting Agent Status

const status = await agents.getAgentStatus(agent.id);
console.log('Agent status:', status);

Stopping an Agent

await agents.stopAgent(agent.id);
console.log('Agent stopped');

Listing Agents

const allAgents = await agents.listAgents();
console.log('All agents:', allAgents);

// Filter by type
const tradingAgents = await agents.listAgents({ type: 'trading' });
console.log('Trading agents:', tradingAgents);

// Filter by status
const runningAgents = await agents.listAgents({ status: 'running' });
console.log('Running agents:', runningAgents);

Deleting an Agent

await agents.deleteAgent(agent.id);
console.log('Agent deleted');

Specialized Agent Types

The framework includes specialized agent types for specific use cases:

Trading Agents

import { TradingAgent } from '@juliaos/framework';

const tradingAgent = await TradingAgent.create(agents, {
  name: 'MyTradingAgent',
  risk_level: 'medium',
  max_position_size: 1000,
  take_profit: 0.05,
  stop_loss: 0.03,
  trading_pairs: ['ETH/USDC', 'BTC/USDC'],
  strategies: ['momentum', 'mean_reversion']
});

// Execute a trade
const tradeResult = await tradingAgent.executeTrade({
  pair: 'ETH/USDC',
  side: 'buy',
  amount: 0.1,
  price: 2000,
  type: 'limit'
});

// Get portfolio
const portfolio = await tradingAgent.getPortfolio();

Research Agents

import { ResearchAgent } from '@juliaos/framework';

const researchAgent = await ResearchAgent.create(agents, {
  name: 'MyResearchAgent',
  research_areas: ['market', 'technology', 'sentiment'],
  data_sources: ['web', 'api', 'database'],
  analysis_methods: ['statistical', 'nlp', 'trend'],
  output_formats: ['text', 'json', 'chart']
});

// Conduct research
const researchResult = await researchAgent.conductResearch({
  topic: 'Ethereum Layer 2 Solutions',
  depth: 'medium',
  focus: ['technology', 'adoption', 'performance'],
  timeframe: 'last_6_months',
  sources: ['academic', 'news', 'social_media']
});

Dev Agents

import { DevAgent } from '@juliaos/framework';

const devAgent = await DevAgent.create(agents, {
  name: 'MyDevAgent',
  languages: ['python', 'javascript', 'julia'],
  frameworks: ['react', 'tensorflow', 'flask'],
  specialties: ['web', 'ai', 'blockchain'],
  code_style: 'clean'
});

// Write code
const codeResult = await devAgent.writeCode({
  description: 'Create a simple React component that displays cryptocurrency prices',
  language: 'javascript',
  framework: 'react',
  requirements: [
    'Fetch data from CoinGecko API',
    'Display prices for BTC, ETH, and SOL',
    'Update prices every 30 seconds',
    'Include error handling'
  ]
});

// Review code
const reviewResult = await devAgent.reviewCode({
  content: '/* code to review */',
  language: 'javascript',
  framework: 'react'
});

Agent Memory

Agents have memory capabilities that allow them to store and retrieve information:

// Set memory
await agents.setAgentMemory(agent.id, 'key', 'value');

// Get memory
const value = await agents.getAgentMemory(agent.id, 'key');

// Delete memory
await agents.deleteAgentMemory(agent.id, 'key');

Error Handling

The Agents module includes robust error handling:

try {
  const agent = await agents.createAgent({
    name: 'MyAgent',
    type: 'trading',
    config: { /* ... */ }
  });
} catch (error) {
  console.error('Failed to create agent:', error);
}

See Also

  • Swarms Module - Learn about swarms and how to use them with agents

  • Bridge Module - Learn about the bridge that connects to the Julia backend

  • Wallet Module - Learn about wallet management

  • Blockchain Module - Learn about blockchain integration