Skip to main content

DisSysLab — build continuous offices of AI agents in plain English.

Project description

DisSysLab — Build Your Own Office of AI Agents

AI chatbots answer when you ask. DisSysLab runs an office of AI agents that works for you continuously — monitoring sources, filtering, analyzing, and delivering results, until you tell it to stop. Describe the office in plain English.

Try it in seconds

pip install dissyslab
dsl run periodic_brief
open brief.html

You'll get a single styled HTML page with three headlines from BBC, three from NPR, current weather for Pasadena, and three stock tickers.

dsl list shows every office that ships with DisSysLab. dsl init periodic_brief my_brief copies one into a folder you own so you can edit it.

Mix and match agents that best fit your accuracy, budget, and privacy needs.

An office can mix different types of agents: paid AI services such as Anthropic and OpenAI, ; free local AI such as Qwen on Ollama for roles where cost or privacy matters more than accuracy; specialized free models for specialized tasks like coding or entity extraction; and plain Python functions. Get the agent you want from:

  • Ollama — free, local, private. Download a ~19 GB model (Qwen3) one time. Office runs take 15–60 min on a typical Mac.
  • OpenRouter — hosted Qwen-2.5-7B. Pennies per run, finishes in 1–5 min on any laptop. API key from openrouter.ai/keys.
  • Claude — Anthropic's hosted model. Highest quality, ~25–50¢ per office run. API key from console.anthropic.com.
# Example: OpenRouter, the fast-and-cheap path
export DSL_BACKEND=openrouter
export OPENROUTER_API_KEY=sk-or-v1-...
export OPENROUTER_MODEL=qwen/qwen-2.5-7b-instruct

dsl run situation_room

Or use the one-line installer to get prompts and have your shell rc file set up for you:

curl -sSf https://raw.githubusercontent.com/kmchandy/DisSysLab/main/install.sh | bash

What is an office?

An office is a team of AI agents with roles where the connections between agents are specified by an org chart. You specify a role as a job description in English, and you specify the org chart in English.

A single role file looks like this:

# Role: analyst

You are a news analyst who reviews articles and forwards items of
political or economic significance to an editor. Exclude celebrity
gossip, sports, and personal opinions.

If the item is relevant, send to editor.
Otherwise send to discard.

That's an agent. Combine a handful of them with sources and sinks in an office.md file, and you have an office that runs continuously.

Offices can contain offices. Each office is a black box — the organization around it only sees what goes in and what comes out. You can build an office whose agents are offices. So you can structure a complex office as a network of sub-offices just as a university has sub-offices responsible for the medical school, engineering school, and the college of humanities.

Learn more

  • Full documentation, source, and contributing guide on GitHub.
  • The gallery has a no-key tier (runs anywhere) and a hosted-backend tier (inbox_triage, ticket_router, competitor_watch, lead_qualifier, new_grad_jobs, ...).
  • Visual walk-through in the micro-course.

Requirements

  • Python 3.9 or newer.
  • macOS or Linux for the shell installer; Windows works for the core framework via pip install.
  • An LLM backend if you want to run the agentic offices — see "Pick an AI engine" above. The periodic_brief demo needs none.

License

MIT — see LICENSE on GitHub.

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

dissyslab-1.4.0.tar.gz (288.7 kB view details)

Uploaded Source

Built Distribution

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

dissyslab-1.4.0-py3-none-any.whl (385.4 kB view details)

Uploaded Python 3

File details

Details for the file dissyslab-1.4.0.tar.gz.

File metadata

  • Download URL: dissyslab-1.4.0.tar.gz
  • Upload date:
  • Size: 288.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for dissyslab-1.4.0.tar.gz
Algorithm Hash digest
SHA256 85019b5761f8bb0130fa9377dd96de8c1d80488f751a26408047546fe955a905
MD5 37224af5896798bda051ef92d99a49a2
BLAKE2b-256 cd1328fd5f3fccb123da90cddf117c592a3875d3e4603bf3c553a14176c606d3

See more details on using hashes here.

File details

Details for the file dissyslab-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: dissyslab-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 385.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for dissyslab-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33f2d9a539164ef367a720bab71b5a52ad2411f99e6fc7476cd84295b1d2b36f
MD5 e8c23075747b9f0468d815bab81aeb47
BLAKE2b-256 7f5752c5d7b7d8289f73796967e8c8242535790a090d4d8ffaf22bff25df84cc

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