Skip to main content

Python SDK for Doorae multi-agent chat

Project description

doorae-agent

Python SDK for the Doorae multi-agent chat platform.

Installation

pip install doorae-agent

Optional engine integrations

pip install doorae-agent[openai]       # OpenAI integration
pip install doorae-agent[claude-code]  # Claude Code SDK integration
pip install doorae-agent[all-engines]  # All engine integrations

Quick Start

from doorae_agent.client import ChatClient

client = ChatClient("ws://localhost:8000", token="your-token", agent_name="MyAgent")

@client.on_message
async def handle(msg):
    print(f"[{msg['participant_id']}] {msg['content']}")

await client.join_room("room-id")
await client.run()

CLI Usage

# Run an agent
doorae-agent --engine openai --name PM --server ws://localhost:8000 --token $TOK --room room1

# Run a text chat client
doorae-client --server ws://localhost:8000 --user me --room sprint-42

Context Injection (#74)

Agents no longer drop every message that isn't addressed to them. The unified response gate is a three-way decision:

  • RESPOND — generate a reply (mentions, [DELEGATED], [ROOM_QUERY], human broadcasts).
  • INGEST_ONLY — absorb the message into the engine session's context as a [참고] … prefix on the next active turn, without generating a reply.
  • SKIP — ignore entirely.

Server-driven stamping (#74 Stage A + #148): broadcasts with metadata.ingest_only=True route to INGEST_ONLY. Producers are:

  • The room representative's [취합 결과] broadcast (cross-room synthesis).
  • The cluster itself for ambient messages in rooms where context_window_enabled=True (#148 Part 3). Admins toggle the flag per room from the Edit room dialog.

Agents can opt out per-agent via the agents.context_window_opt_out flag (surfaced as "대화 맥락 공유 제외" in AgentSettingsMenu); opted-out agents turn a received ingest_only broadcast into SKIP in decide_policy.

Deprecated: the former DOORAE_CONTEXT_WINDOW_ENABLED / DOORAE_CONTEXT_WINDOW_SIZE environment variables from Stage B (#74 Part B) are removed as of #148 Part 4. The decision now lives in the cluster DB and takes effect the next time the agent reconnects (Part 2's UI toggle triggers a bump_generation respawn so the refresh is automatic).

Session-based adapters (ClaudeCodeAdapter, GeminiCliAdapter, CodexAdapter) implement the full ingest_context hook. Raw-SDK adapters (OpenAI, Anthropic, OpenHands, Deep Agents) keep their own history management and inherit the base no-op.

See docs/research/2026-04-19-multi-agent-context-injection.md for the research (Intrinsic Memory Agents arXiv 2508.08997, MCP Observer/Pub-Sub arXiv 2506.05364, …) and docs/plans/2026-04-19-context-injection-decoupling-design.md for the design decisions.

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

doorae_agent-0.6.0.tar.gz (188.1 kB view details)

Uploaded Source

Built Distribution

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

doorae_agent-0.6.0-py3-none-any.whl (81.3 kB view details)

Uploaded Python 3

File details

Details for the file doorae_agent-0.6.0.tar.gz.

File metadata

  • Download URL: doorae_agent-0.6.0.tar.gz
  • Upload date:
  • Size: 188.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for doorae_agent-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4bc1b4ae3c58611a5f90d5317f59f2c1f612e6678a66ae8b2e09e1e5a81a7cfe
MD5 d62319e6d12bb7e88ca23d3e27d4f010
BLAKE2b-256 b8a4df7f185b621e41866cafbf922fa4f00d2d90a3cdc63c186c250c0cd0068a

See more details on using hashes here.

File details

Details for the file doorae_agent-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: doorae_agent-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 81.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for doorae_agent-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5045ee5ae397dd80c011ba59fc85b098c1ccb96f1a12358a930c515144d4fd53
MD5 a9e5bd8173c8f6fcd6026c60ee664ab8
BLAKE2b-256 ef7831f25d3f280233c08900b63bbf62153c4849db221640209463ab7b23f106

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