Skip to main content

Python SDK for Anygarden multi-agent chat

Project description

dragent

Python SDK for the Anygarden multi-agent chat platform.

Installation

pip install dragent

Optional engine integrations

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

Quick Start

from anygarden_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
anygarden-agent --engine openai --name PM --server ws://localhost:8000 --token $TOK --room room1

# Run a text chat client
anygarden-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 ANYGARDEN_CONTEXT_WINDOW_ENABLED / ANYGARDEN_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

anygarden_agent-0.9.1.tar.gz (193.8 kB view details)

Uploaded Source

Built Distribution

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

anygarden_agent-0.9.1-py3-none-any.whl (119.1 kB view details)

Uploaded Python 3

File details

Details for the file anygarden_agent-0.9.1.tar.gz.

File metadata

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

File hashes

Hashes for anygarden_agent-0.9.1.tar.gz
Algorithm Hash digest
SHA256 7a0c153a1f0b053215d583dacad538b9b251a8ca29b6f9befd4b86a75703e17d
MD5 d9034af613e186b46c411f7483111b1c
BLAKE2b-256 6b89a8649eae38af6c95df28aa4997f4ee0ffc12385f3bebea030f4a9495591f

See more details on using hashes here.

Provenance

The following attestation bundles were made for anygarden_agent-0.9.1.tar.gz:

Publisher: release.yml on e7217/anygarden

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

File details

Details for the file anygarden_agent-0.9.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for anygarden_agent-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5927f3ef8ce2b133962009d2683b3b48290621d1ebc07018bcd9a8b012e1051b
MD5 4725781de5b4ced39a27b776a5da7990
BLAKE2b-256 eccd3056c5664f5b95f5c1e86042d7d12071098b4c26b17b94c0ae33905301eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for anygarden_agent-0.9.1-py3-none-any.whl:

Publisher: release.yml on e7217/anygarden

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