Skip to main content

A distributed AI agent orchestration platform with visual LiteGraph interface

Project description

CampfireValley

CampfireValley is a Campfires-based multi-agent workspace with a LiteGraph web UI, dock-based valley discovery, and a Docker stack that runs a local valley alongside a remote demo valley.

The workflow actively maintained in this repository is the web UI and Docker stack:

  • Local valley UI on http://localhost:8000
  • Remote demo valley UI on http://localhost:8001
  • Redis-backed dock discovery and service catalog exchange
  • Auditor-driven campfire management, including natural-language camper creation
  • Visual graph links between valley, campfire, auditor, and campers

What Is Available Now

Web UI

  • Local and remote valleys rendered on a LiteGraph canvas
  • Left sidebar cards for the local valley, dock state, and discovered remote valleys
  • Stable valley IDs shown in the sidebar and remote discovery cards
  • Local and remote campfire detail panels with chat and action controls
  • Snapshots, rounds, import/export, logs, tools, and model selection

Local Campfire Management

  • Chat directly with local campfires and campers
  • Use the Auditor as the orchestrator for a campfire team
  • Ask deterministic read-only questions about workflow, settings, tools, and execution order
  • Create campers with natural language, for example:
Create a new camper called summary-bot for this campfire.
  • Reorder workflow steps with natural language
  • Run self audit and self audit cid:<correlation_id>
  • Clean up older legacy backend auditor campfires from the valley details panel

Watch Workflow Improvements

  • Watch planning now prefers specialist non-auditor campers for discover and execute when a suitable worker is available
  • Auditor verification and improvement rounds can feed learning back into future watch runs through the runtime learning bucket
  • Generated watch reports are saved as HTML files and can be opened directly from emitted file:///... links in demo output
  • Final watch answers can include a Role Contributions appendix so verification can confirm how specialist steps contributed to the result

Legal Contract Demo

  • examples/legal_team_demo.py provisions a real Legal Team, Legal Team Auditor, Contract Researcher, Contract Analyst, and Legal Reporter
  • The demo extracts text from inspiration/Software Development Agreement - Hibbert IT Solutions (1).pdf with pypdf
  • Full runs execute the normal watch flow: discover -> plan -> execute -> verify -> improve
  • Demo output now includes direct file links for the reports directory, watch report HTML, and saved JSON result

Remote Valley and Campfire Discovery

  • Discover remote valleys through Dock broadcasts
  • Inspect remote valley route addresses, stable IDs, exposed campfires, and exposed services
  • Open a remote campfire and inspect:
    • visible campfires
    • visible services
    • advertised remote campers
    • task types, capabilities, exposure, and rounds support
  • Message remote campfires and add them to rounds
  • Remote admin controls remain disabled by design

Service Catalog and Addressing

  • Local services are described through service manifests
  • Discovery payloads include stable valley IDs, public addresses, and exposed service summaries
  • Campfires can be resolved by identifier as well as by display name
  • Remote service manifests include capabilities, task types, summaries, and valley-scoped addresses

Quick Start

Docker Compose

  1. Clone the repository:
git clone https://github.com/MikeHibbert/pyCampfireValley.git
cd CampfireValley
  1. Copy the environment file:
cp .env.example .env
  1. Update .env if needed:
  • OPENROUTER_API_KEY
  • OLLAMA_HOST
  • VALLEY_IDENTIFIER
  • CAMPFIRE_IDENTIFIER
  • DISCORD_BOT_TOKEN
  • DISCORD_CHANNEL
  1. Start the stack:
docker compose up -d --build
  1. Open the running services:
  • Local valley UI: http://localhost:8000
  • Remote demo valley UI: http://localhost:8001
  • Prometheus: http://localhost:9090

Default Compose Services

Service Container Host Port Purpose
Local valley web app campfire-valley-web 8000 Main UI and local valley
Remote demo valley campfire-valley-remote 8001 Remote discovery target
Redis campfire-redis internal MCP broker and shared state
Prometheus campfire-prometheus 9090 Metrics
Optional Discord bot campfire-discord-bot none Routes Discord requests into the valley

Common UI Workflows

Create a Camper

  1. Open http://localhost:8000
  2. Select the local campfire or its Auditor
  3. Send a message such as:
Create a new camper called research-assistant for this campfire.
  1. Wait for the graph to refresh
  2. The new camper should appear with a single structural link from the parent campfire

Inspect a Remote Campfire

  1. Select a discovered remote valley
  2. Select one of its visible campfires
  3. Use the remote detail actions:
    • Message This Campfire
    • Use In Rounds
    • Open Remote Valley
    • Show Visible Services

Work With Snapshots and Rounds

  • Save Valley and Load Valley save and restore graph snapshots
  • Import Campfire and export actions move campfire configs across valleys
  • Rounds builds ordered local or remote service chains when those services are advertised

Useful REST Endpoints

These endpoints are available from either web server instance:

  • GET /api/campfires
  • GET /api/services
  • GET /api/dock/status
  • GET /api/dock/valleys
  • GET /api/valley/details
  • GET /api/campfire/details
  • POST /api/voice/ingest
  • POST /api/auditors/cleanup
  • GET /api/rounds/catalog
  • POST /api/rounds/run
  • GET /api/valley/snapshots
  • POST /api/valley/save

Voice Ingestion

POST /api/voice/ingest accepts text directly and can also operate in auditor mode.

Typical payload fields:

  • text
  • campfire
  • role_prompt
  • auditor_mode
  • admin_token for admin-only actions

Development

Run Tests

pip install -e ".[dev]"
pytest

Focused watch and legal checks:

pytest tests/test_watch_mode.py tests/test_legal_e2e.py -q
python examples/legal_team_demo.py --setup-only --workspace demo_workspace/legal_team_smoke
python examples/legal_team_demo.py --workspace demo_workspace/legal_team_full_tuned --watch-max-retries 1

Rebuild the UI Stack

docker compose up -d --build campfire-valley campfire-valley-remote

Documentation

License

MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

campfirevalley-1.2.4.tar.gz (526.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

campfirevalley-1.2.4-py3-none-any.whl (520.1 kB view details)

Uploaded Python 3

File details

Details for the file campfirevalley-1.2.4.tar.gz.

File metadata

  • Download URL: campfirevalley-1.2.4.tar.gz
  • Upload date:
  • Size: 526.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.8

File hashes

Hashes for campfirevalley-1.2.4.tar.gz
Algorithm Hash digest
SHA256 db056b291f82e4d2e5fe0a3c620a12ac1af06204754ea69564007b1a74b21145
MD5 32e06a71be4b0e9e137b1ae2112ed3ac
BLAKE2b-256 53166c1d5e6dad02bf2b6b5f1d0dc1281cc24eec9490b5dace02072a31e9f63f

See more details on using hashes here.

File details

Details for the file campfirevalley-1.2.4-py3-none-any.whl.

File metadata

  • Download URL: campfirevalley-1.2.4-py3-none-any.whl
  • Upload date:
  • Size: 520.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.8

File hashes

Hashes for campfirevalley-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 005a23003bcc0106851756174639bf1682de31e0491c466c3981953a6d94a0bd
MD5 ceac0001f58e5b387c9b0935df64fb73
BLAKE2b-256 da68d0ee4da3a647959bcc31121c313bc6af8366a5dd6d9872d36c3c890a9bb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page