Skip to content

ZSeven-W/jido-local

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jido-Local

A simplified local CLI version of the Jido 2.0 Elixir Agent Framework, supporting state machine workflows, persistent conversations, and tool plugin system.

Features

  • State Machine Workflow: Define agent behavior as state machines with transitions
  • Tool Plugin System: Register and call external tools/commands
  • Persistent Memory: Save/load conversation history to local JSON files
  • Simple REPL: Interactive CLI for chatting with the agent

Installation

cd /Users/fini/workspace/jido-local
pip install -e .

Or run directly:

python -m jido_local.cli --help

Quick Start

Interactive REPL Mode

python -m jido_local.cli --repl

With custom session:

python -m jido_local.cli --repl --session my_session

With Workflow

python -m jido_local.cli --repl --workflow examples/support_workflow.yaml

With Custom Tools

python -m jido_local.cli --repl --tools examples/tools.yaml

Usage

REPL Commands

Command Description
/<tool> Call a tool
!<event> Trigger state transition
history Show conversation history
status Show agent status
clear Clear conversation history
quit/exit Exit the REPL

CLI Options

jido --help

Options:
  --session, -s       Session ID for conversation persistence
  --workflow, -w     Path to workflow YAML/JSON file
  --tools, -t        Path to tools config YAML/JSON file
  --data-dir, -d     Directory for conversation data (default: data)
  --repl, -r         Start interactive REPL
  --input, -i        Process single input and exit
  --status           Show agent status

Single Command Mode

# Call a tool
python -m jido_local.cli --input "/echo Hello World"

# Check status
python -m jido_local.cli --status

# Run with workflow
python -m jido_local.cli --workflow examples/support_workflow.yaml --input "help"

Workflow Definition

Workflows are defined in YAML or JSON format:

name: "Agent Name"
initial: "start_state"

states:
  start_state:
    response: "Hello!"
    transitions:
      next: "next_state"
      back: "start_state"

State Properties

  • response: Message to send when entering this state
  • transitions: Map of events to next states
  • actions: Available actions in this state

State Transitions

Use !<event> in REPL to trigger transitions:

jido> !next

Tools Configuration

Define custom tools in YAML or JSON:

tools:
  - name: my_tool
    command: echo {0}
    description: "My custom tool"

Tools can use {0}, {1}, etc. for arguments.

Built-in Tools

  • /echo <text> - Echo back the input
  • /help - Show available tools
  • /time - Get current time
  • /status - Show agent status

Data Storage

Conversation history is stored in data/conversation_<session_id>.json.

Project Structure

jido-local/
├── jido_local/
│   ├── __init__.py    # Main module
│   └── cli.py         # CLI entry point
├── examples/
│   ├── support_workflow.yaml
│   └── tools.yaml
├── setup.py
└── README.md

License

MIT

About

Local CLI agent framework with state-machine workflows, persistent memory, and tool plugins.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages