Skip to main content

OpenPaw - Multi-Channel AI Agent Framework with LangGraph

Project description

OpenPaw

A Friendly LangChain/LangGraph Multi-Agent Runner

CI Docs Python 3.11+ License


Alpha Software -- OpenPaw is in active development and should be considered an alpha release. APIs, configuration formats, and behavior may change between versions. Contributions and feedback are welcome, but expect rough edges.

OpenPaw gives each agent its own workspace -- personality files, custom tools, scheduled tasks -- then gets out of the way. It handles the orchestration so you can focus on what your agents actually do.

Agents can ingest documents, browse the web, search the internet, delegate to specialist sub-agents, and manage their own files -- making them well-suited for research, information processing, and long-running autonomous workflows. Give them a schedule and they'll check in on their own.

Read the full documentation

Highlights

Composable sub-agent teams

Every primary agent is a team lead. Drop a YAML into agent/team/ and your agent gains a teammate it can dispatch with spawn_agent(profile="researcher"):

name: researcher
description: "Web research specialist โ€” searches, cross-references, and cites sources."
system_prompt: |
  You are a focused research specialist. Search, cross-reference, and
  summarize findings with source citations.
model: anthropic:claude-sonnet-4-20250514
allowed_tools: [brave_search, read_file, write_file]
timeout_minutes: 10
max_turns: 20

Each teammate gets its own model, tool loadout, skill set, and lifecycle budget. Run several in parallel -- the parent dispatches, they work, results route back when they finish.

Live in-place status updates

Both your primary agent and every sub-agent maintain a single status message that edits in place as work progresses. No chat flood, no scroll-back -- just a live, current view of who's doing what right now. Get actionable insight into your agent teams at a glance. Agents can also call report_progress to announce structured milestones with their own emoji.

๐Ÿš€ Starting work...
๐Ÿ”Ž Running tool: brave_search (langgraph release notes)...
๐Ÿค– Dispatched sub-agent: researcher

๐Ÿค– Sub-agent: researcher
๐Ÿ”Ž Running tool: brave_search (recent papers)...
๐Ÿ“ Running tool: write_file (notes.md)...
โœ… Completed

Mid-run responsiveness

Send a follow-up while the agent is mid-task and it sees it. Steer the run ("๐Ÿ”„ Redirecting..."), interrupt completely ("๐Ÿ›‘ Stopping..."), or let messages batch quietly ("๐Ÿ“จ New messages received..."). One-line emoji notifications keep you in the loop without breaking the agent's flow.

Typing indicators run while the agent is processing; emoji reactions on your original message track success (๐Ÿ‘) or failure (๐Ÿ‘Ž).

Channels

Telegram + Discord, simultaneously -- One workspace, multiple channels. Trigger-based activation (mentions, keywords, or both) lets agents respond appropriately in group chats. On-demand channel history gives them awareness of recent conversation when triggered.

Workspace identity

Each agent gets its own SOUL (personality), AGENT (capabilities), USER (context), and HEARTBEAT (agent-writable scratchpad) files, plus a sandboxed filesystem. config/ and data/ are write-protected from the agent itself; everything else lives under workspace/.

Skills -- Reusable knowledge blocks (SKILL.md) drop into the workspace and can be selectively granted to specific team members.

Tools that do real work

  • Document processing -- Docling OCR/ICR turns scanned PDFs, DOCX, and PPTX into markdown automatically. Whisper transcribes voice messages on arrival.
  • Browser automation -- Playwright-driven web interaction via the accessibility tree. Agents reference elements by number, not CSS selectors.
  • Email integration -- Send and receive via Gmail with safe-by-default recipient policies. Search, reply with threading, manage attachments.
  • MCP servers -- Connect any MCP-compatible service (local stdio or remote Streamable HTTP) per workspace. Tools flow into the agent alongside builtins.
  • Deep research -- Connect to a self-hosted GPT-Researcher instance for multi-source reports with citations.
  • Web search -- Brave Search and other providers for direct search-and-summarize.
  • Drop-in custom tools -- Write a @tool function, save it to agent/tools/, restart. Auto-discovered, no wiring needed.

Scheduling & autonomy

  • Cron and heartbeats -- Recurring jobs from YAML, plus proactive check-ins agents can configure themselves.
  • Dynamic scheduling -- schedule_at, schedule_every, request_followup. Your agent can plan its own future.
  • Auto-compact -- When the context window fills, the framework summarizes old turns and continues without missing a beat.
  • Runtime model switching -- /model anthropic:claude-opus-4-20250514 mid-conversation. No restart.

Safe by default

  • Approval gates -- Human-in-the-loop authorization for sensitive operations with configurable timeouts and channel-native UI.
  • Recipient policies -- Email defaults to deny-all sends; only addresses on your allowlist go through.
  • Sandboxed filesystem -- Custom tools write to workspace/ by default; config/ and data/ are read-only to agents.

Multi-provider LLMs

Anthropic, OpenAI, AWS Bedrock, xAI, Fireworks, and any OpenAI-compatible endpoint. Define providers once in global config and reference by name from any workspace.

Quick Start

1. Install

git clone https://github.com/johnsosoka/OpenPaw.git
cd OpenPaw
poetry install

2. Scaffold a workspace

poetry run openpaw init my_agent \
  --model anthropic:claude-sonnet-4-20250514 \
  --channel telegram

3. Configure

cp config.example.yaml config.yaml

Add your API keys to agent_workspaces/my_agent/config/.env:

ANTHROPIC_API_KEY=your-key-here
TELEGRAM_BOT_TOKEN=your-token-here

4. Run

poetry run openpaw -c config.yaml -w my_agent

CLI Commands

Command Description
openpaw init <name> Scaffold a new agent workspace
openpaw init <name> --model <provider:model> Scaffold with a pre-configured model
openpaw init <name> --channel telegram Scaffold with channel pre-configured (telegram or discord)
openpaw list List available workspaces
openpaw -c config.yaml -w <name> Run a single workspace
openpaw -c config.yaml -w name1,name2 Run multiple workspaces
openpaw -c config.yaml --all Run all discovered workspaces
openpaw -c config.yaml -w <name> -v Run with verbose logging

All commands should be prefixed with poetry run when running from the project directory.

Agent Workspace Structure

Each workspace lives under agent_workspaces/<name>/ and is organized into five directories:

agent_workspaces/my_agent/
โ”œโ”€โ”€ agent/              # Identity and extensions
โ”‚   โ”œโ”€โ”€ AGENT.md        # Capabilities and behavior guidelines
โ”‚   โ”œโ”€โ”€ USER.md         # User context and preferences
โ”‚   โ”œโ”€โ”€ SOUL.md         # Core personality and values
โ”‚   โ”œโ”€โ”€ HEARTBEAT.md    # Session state scratchpad (agent-writable)
โ”‚   โ”œโ”€โ”€ tools/          # Custom LangChain @tool functions
โ”‚   โ”œโ”€โ”€ team/           # Sub-agent profiles (YAML)
โ”‚   โ””โ”€โ”€ skills/         # Skill directories
โ”œโ”€โ”€ config/             # Configuration (write-protected)
โ”‚   โ”œโ”€โ”€ agent.yaml      # Per-workspace settings (model, channel, queue)
โ”‚   โ”œโ”€โ”€ .env            # API keys and secrets
โ”‚   โ””โ”€โ”€ crons/          # Scheduled task definitions
โ”œโ”€โ”€ data/               # Framework-managed state (write-protected)
โ”‚   โ”œโ”€โ”€ TASKS.yaml      # Persistent task tracking
โ”‚   โ”œโ”€โ”€ uploads/        # User-uploaded files
โ”‚   โ””โ”€โ”€ ...             # Conversations DB, session state, token logs
โ”œโ”€โ”€ memory/             # Archived conversations and session logs
โ”‚   โ”œโ”€โ”€ conversations/  # Conversation exports (markdown + JSON)
โ”‚   โ””โ”€โ”€ logs/           # Session logs and channel history
โ”‚       โ”œโ”€โ”€ channel/    # Persistent channel message logs (JSONL)
โ”‚       โ””โ”€โ”€ sessions/   # Heartbeat, cron, and sub-agent session logs
โ””โ”€โ”€ workspace/          # Agent work area (default write target)
    โ”œโ”€โ”€ downloads/      # Browser-downloaded files
    โ””โ”€โ”€ screenshots/    # Browser screenshots

The openpaw init command scaffolds this structure with starter templates. Customize the identity files in agent/ to shape your agent's personality and purpose. Configure model, channel, and queue behavior in config/agent.yaml.

The data/ and config/ directories are write-protected from agent filesystem tools. Write operations default to the workspace/ directory unless an explicit path is provided.

In-Chat Commands

Once running, agents respond to framework commands in chat:

Command Description
/help List available commands
/status Show model, context usage, tasks, and token usage
/new Archive conversation and start fresh
/compact Summarize, archive, and continue with summary
/model <provider:model> Switch LLM model at runtime

Documentation

  • Getting Started -- Installation, first workspace, and troubleshooting
  • Concepts -- How workspaces, scheduling, queues, and tools fit together
  • Configuration -- Global and per-workspace configuration reference
  • Workspaces -- Workspace structure, identity files, and custom tools
  • Scheduling -- Cron jobs, heartbeats, and dynamic scheduling
  • Built-ins -- Web search, browser automation, email, voice, sub-agents, and more
  • MCP Servers -- Per-workspace MCP server connections (HTTP and stdio)
  • Channels -- Channel adapters and access control
  • Queue System -- Queue modes and message handling
  • Architecture -- System design, data flows, and architectural decisions

Contributing

Development follows a GitFlow branching model:

  • main -- Stable releases only. Protected branch, requires CI to pass.
  • develop -- Integration branch. Feature and bugfix PRs target develop.
  • Feature branches -- Branch from develop as feature/, bugfix/, docs/, or chore/.

See CONTRIBUTING.md for the full development guide.

Prerequisites

  • Python 3.11+
  • Poetry 2.0+
  • At least one channel bot token: Telegram or Discord
  • At least one model provider API key (Anthropic, OpenAI, or AWS credentials for Bedrock)

License

PolyForm Noncommercial 1.0.0

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

openpaw_ai-0.4.3.tar.gz (346.0 kB view details)

Uploaded Source

Built Distribution

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

openpaw_ai-0.4.3-py3-none-any.whl (476.6 kB view details)

Uploaded Python 3

File details

Details for the file openpaw_ai-0.4.3.tar.gz.

File metadata

  • Download URL: openpaw_ai-0.4.3.tar.gz
  • Upload date:
  • Size: 346.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openpaw_ai-0.4.3.tar.gz
Algorithm Hash digest
SHA256 b916a79077295a9e5215756fe47ab2a6b89f721c48224dbc70ad4511e9caaebe
MD5 4d77ce7665872dec9c7aa21059428552
BLAKE2b-256 945003a21cd3e8776fb9734b81be66c41ce50ff86db7681411a5f948b31edb23

See more details on using hashes here.

Provenance

The following attestation bundles were made for openpaw_ai-0.4.3.tar.gz:

Publisher: publish.yml on johnsosoka/OpenPaw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openpaw_ai-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: openpaw_ai-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 476.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openpaw_ai-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fad7ffeeb96b5b885a363ca011636f710f303fdeb2ac5fcddb5ef7f10cb55768
MD5 b1de05af867076b6b0aa17fd3e3f8bf4
BLAKE2b-256 4f6bbd10beaf890119d3134369a0ebd2fa915288e30c7b65946083c9151cac63

See more details on using hashes here.

Provenance

The following attestation bundles were made for openpaw_ai-0.4.3-py3-none-any.whl:

Publisher: publish.yml on johnsosoka/OpenPaw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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