LogoLogo
  • JuliaOS Documentation Hub
  • About JuliaOS
    • Mission & Vision
    • Features and Capabilities
    • Roadmap
    • Tokenomics
  • Ecosystem
    • Overview
  • Partners
    • Heurist
    • Fetch.ai
    • Soulgraph
    • cheqd.io
    • Aethir
    • Anyone
    • TensorLabs
    • Hashpower
  • Technology
    • Overview
    • Open Source
      • Modular Framework
      • CLI Mode
    • AI Platform
      • Dashboard
      • Agent Management
      • Swarm Management
      • Marketplace
      • Mining
    • LLM
    • Launchpad
    • Robotics & IOT
      • SwarmIOT
      • Modular AI with Robotics
        • J3OS MiniLLM
          • 🔧 Use Cases
  • Technical
    • Overview
    • Developer Hub
      • Getting Started
        • Installation Guide
          • Github Guide
        • Basic Concepts
        • Quick Start Guide
          • Handling secrets
        • Examples and Use
          • Example: Using the Trading Functionality
          • Example: Using the Benchmarking Feature
          • Example: Multi-Agent Swarm Coordination
          • Example: Using the Python Wrapper for LLM Integration
          • Example: Using Cross-Chain Bridges
          • Example: Creating and Running a Swarm Optimization
          • Page 4
      • Best Practices
        • Performance Tuning
        • Agent/Swarm Design Patterns
        • Best Practices & Patterns
        • Security Best Practices
      • CLI
        • JuliaOS CLI Interface
        • Agent Management (CLI)
        • CLI Configuration
        • Cross-Chain Hub (CLI)
        • Swarm Management (CLI)
        • CLI Troubleshooting
        • Wallet Management (CLI)
      • Framework SDK
        • Modules
          • Bridge
          • Agents Module
          • Dex
          • Swarms Module
          • Wallet
        • Python Wrapper
          • LangChain Integration
          • Python Wrapper
      • Contributing Guide
      • Extending JuliaOS
      • Development Setup & Conventions
      • Testing & Debugging
      • Troubleshooting
    • Architecture
      • High Level JuliaOS
      • CLI <-> Backend Communication
      • Data Storage Architecture
      • Framework Internals
      • Architecture Deep Dive
        • Architectual Notes
    • Concepts
      • Core Features & Concepts
      • Agents
        • Agent Skills & Specializations
      • Swarms
      • Neural Networks
      • Blockchains & Chains
      • Bridges (Cross-Chain)
      • Integrations
        • Google ADK
        • LLMs
        • Price Feed
        • DEX Integration
      • Storage
      • Trading Capabilities
      • Use Cases
      • Wallets
      • Portfolio Optimization
  • Research
    • JuliaOS Research
  • API Documentation
    • API Reference
      • API Reference: Julia Backend Commands
      • API Reference: CLI Commands
      • API Reference: Node.js API
      • API Reference: Python API
      • API Reference
  • Community
    • Community & Support
  • FAQ
    • General
    • Technical
    • Community
Powered by GitBook
On this page
  • Starting the JuliaOS Server
  • Using the CLI
  • Using the Julia API
  • Creating an Agent
  • Creating a Swarm
  • Using the TypeScript Framework
  • Creating an Agent
  • Creating a Swarm
  • Using the Python Wrapper
  • Creating an Agent
  • Creating a Swarm
  • Using LangChain Integration (Python)
  • Next Steps
Export as PDF
  1. Technical
  2. Developer Hub
  3. Getting Started

Quick Start Guide

This guide will help you get started with JuliaOS by walking you through the process of creating and running a simple agent and swarm.

Starting the JuliaOS Server

Before you can use JuliaOS, you need to start the Julia backend server:

cd /path/to/JuliaOS
julia julia/julia_server.jl

This will start the JuliaOS server on port 8052 by default.

Using the CLI

JuliaOS provides an interactive CLI for managing agents and swarms:

cd /path/to/JuliaOS
node packages/cli/interactive.cjs

This will start the interactive CLI, which provides a menu-based interface for creating and managing agents, swarms, wallets, and more.

Using the Julia API

Creating an Agent

using JuliaOS.Agents

# Create a trading agent
agent = Agents.create_agent(
    "TradingAgent",
    "trading",
    Dict("risk_tolerance" => "medium", "max_position_size" => 1000)
)

# Start the agent
Agents.start_agent(agent["id"])

# Execute a task with the agent
task_result = Agents.execute_task(
    agent["id"],
    Dict(
        "action" => "analyze_market",
        "market" => "crypto",
        "timeframe" => "1d"
    )
)

println("Task result: ", task_result)

Creating a Swarm

using JuliaOS.Swarms

# Create a swarm
swarm = Swarms.create_swarm(
    "OptimizationSwarm",
    "DE",
    Dict("population_size" => 50, "crossover_rate" => 0.8, "mutation_factor" => 0.5)
)

# Run optimization
result = Swarms.run_optimization(
    swarm["id"],
    "function(x) return sum(x.^2) end",
    [],  # constraints
    Dict("bounds" => [(-10, 10), (-10, 10), (-10, 10)], "max_iterations" => 100)
)

println("Optimization result: ", result)

Using the TypeScript Framework

Creating an Agent

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 framework modules
const agents = new Agents(bridge);

// Create an agent
const agent = await agents.createAgent({
  name: 'TradingAgent',
  type: 'trading',
  config: { risk_tolerance: 'medium', max_position_size: 1000 }
});

// Start the agent
await agents.startAgent(agent.id);

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

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

Creating a Swarm

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

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

// Create framework modules
const swarms = new Swarms(bridge);

// Create a swarm
const swarm = await swarms.createSwarm({
  name: 'OptimizationSwarm',
  algorithm: 'DE',
  config: {
    population_size: 50,
    crossover_rate: 0.8,
    mutation_factor: 0.5
  }
});

// Run optimization
const result = await swarms.runOptimization(
  swarm.id,
  'function(x) return sum(x.^2) end',
  [],  // constraints
  {
    bounds: [[-10, 10], [-10, 10], [-10, 10]],
    max_iterations: 100
  }
);

console.log('Optimization result:', result);

Using the Python Wrapper

Creating an Agent

import asyncio
from juliaos import JuliaOS
from juliaos.agents import AgentType

async def main():
    # Initialize JuliaOS
    juliaos_client = JuliaOS(host="localhost", port=8052)
    await juliaos_client.connect()

    # Create an agent
    agent = await juliaos_client.agents.create_agent(
        name="TradingAgent",
        agent_type=AgentType.TRADING,
        config={
            "parameters": {
                "risk_tolerance": 0.5,
                "max_position_size": 1000.0,
                "take_profit": 0.05,
                "stop_loss": 0.03
            }
        }
    )

    # Start the agent
    await agent.start()

    # Execute a task with the agent
    task_result = await agent.execute_task({
        "action": "analyze_market",
        "market": "crypto",
        "timeframe": "1d"
    })

    print("Task result:", task_result)

    # Disconnect from JuliaOS
    await juliaos_client.disconnect()

if __name__ == "__main__":
    asyncio.run(main())

Creating a Swarm

import asyncio
from juliaos import JuliaOS
from juliaos.swarms import SwarmType

async def main():
    # Initialize JuliaOS
    juliaos_client = JuliaOS(host="localhost", port=8052)
    await juliaos_client.connect()

    # Create a swarm
    swarm = await juliaos_client.swarms.create_swarm(
        name="OptimizationSwarm",
        swarm_type=SwarmType.OPTIMIZATION,
        algorithm="DE",
        dimensions=3,
        bounds=[(-10.0, 10.0)] * 3,
        config={
            "population_size": 50,
            "max_generations": 100,
            "crossover_probability": 0.8,
            "differential_weight": 0.5
        }
    )

    # Register an objective function
    function_id = "sphere"
    await juliaos_client.swarms.set_objective_function(
        function_id=function_id,
        function_code="function(x) return sum(x.^2) end",
        function_type="julia"
    )

    # Run optimization
    optimization_result = await swarm.run_optimization(
        function_id=function_id,
        max_iterations=100,
        max_time_seconds=60,
        tolerance=1e-6
    )

    print("Optimization result:", optimization_result)

    # Disconnect from JuliaOS
    await juliaos_client.disconnect()

if __name__ == "__main__":
    asyncio.run(main())

Using LangChain Integration (Python)

import asyncio
import os
from dotenv import load_dotenv

from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor
from langchain.chains import LLMChain
from langchain.prompts import ChatPromptTemplate

from juliaos import JuliaOS
from juliaos.agents import AgentType
from juliaos.langchain import (
    JuliaOSTradingAgentAdapter,
    SwarmOptimizationTool,
    BlockchainQueryTool
)

async def main():
    # Load environment variables
    load_dotenv()

    # Initialize JuliaOS
    juliaos_client = JuliaOS(host="localhost", port=8052)
    await juliaos_client.connect()

    # Create a trading agent
    agent = await juliaos_client.agents.create_agent(
        name="LangChainTradingAgent",
        agent_type=AgentType.TRADING,
        config={
            "parameters": {
                "risk_tolerance": 0.5,
                "max_position_size": 1000.0
            }
        }
    )

    # Start the agent
    await agent.start()

    # Create a LangChain adapter for the agent
    llm = ChatOpenAI(temperature=0.7)
    agent_adapter = JuliaOSTradingAgentAdapter(agent)
    
    # Create tools
    tools = [
        SwarmOptimizationTool(bridge=juliaos_client.bridge),
        BlockchainQueryTool(bridge=juliaos_client.bridge)
    ]
    
    # Create a LangChain agent
    langchain_agent = agent_adapter.as_langchain_agent(
        llm=llm,
        tools=tools,
        verbose=True
    )
    
    # Run the agent
    result = await langchain_agent.arun(
        "Analyze the current market conditions for Ethereum and suggest a trading strategy."
    )
    
    print("LangChain agent result:", result)

    # Disconnect from JuliaOS
    await juliaos_client.disconnect()

if __name__ == "__main__":
    asyncio.run(main())

Next Steps

Now that you've learned the basics of JuliaOS, you can explore the following topics:

  • Basic Concepts - Learn about the core concepts of JuliaOS

  • Agents - Learn more about agents and their capabilities

  • Swarms - Learn more about swarms and swarm algorithms

  • Blockchain - Learn about blockchain integration

  • Wallet - Learn about wallet management

  • Storage - Learn about storage options

PreviousBasic ConceptsNextHandling secrets