Skip to main content

converger-agent

Agent SDK for Converger: one Python process serves every conversation routed to a websocket bot channel (WhatsApp, Telegram, the web widget, ...) over a single channel-scoped Protocol v1 socket. Turns come in; text, rich messages, token streams, tool traces, GenUI and interrupts go out. A first-party LangChain / LangGraph adapter is included.

Documentation: https://converger.aimtune.dev/sdk/agent-python.

pip install converger-agent                # core: websockets only
pip install 'converger-agent[langchain]'   # + the LangChain / LangGraph adapter

Python 3.10 or later (LangGraph interrupts need 3.11 or later).

Quick start

import asyncio
from converger_agent import Agent

agent = Agent("https://chat.example.com", channel_secret="...")  # the bot channel's secret, server side only

@agent.on_turn
async def handle(turn, reply):
    if turn.text.lower() == "refund":
        answer = await reply.ask({"title": "Refund 249.90 TRY?"}, ["Yes", "No"])
        await reply.text(f"You said {answer}.")
        return
    async with reply.stream() as s:          # streamed as GenUI text chunks
        for word in ["Hello", " from", " Python"]:
            await s.write(word)

asyncio.run(agent.run())                      # reconnects forever; agent.stop() ends it

LangChain / LangGraph

from converger_agent.langchain import serve

agent = serve(graph, url="https://chat.example.com", channel_secret="...")
asyncio.run(agent.run())

Token deltas become a stream, tool runs become tool_call traces, LangGraph interrupt() becomes an interrupt whose answer resumes the graph (Command(resume=...)), and the thread id is the conversation id. bridge_langserve("https://my-langserve/app") serves a runnable that LangServe already exposes.

Testing your agent

converger_agent.testing.FakeServer is an in-process fake of the channel-scoped endpoint:

from converger_agent.testing import FakeServer

server = await FakeServer().start()
agent = Agent(server.url, token="test")
...
await server.user_text("conv-1", "hi")
await server.wait_frame("run", "conv-1", data__status="finished")

Development

pip install -e '.[test,langchain]'
python -m pytest

The tests validate every frame the agent sends against the protocol JSON Schemas in priv/protocol/v1. The end-to-end test against a real server runs with packages/conformance/integration/run.sh agent-python.

Metadata

Release files for converger-agent 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for converger-agent 0.1.1
File Size Uploaded
converger_agent-0.1.1.tar.gz 34.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for converger-agent 0.1.1
File Interpreter ABI Platform
converger_agent-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 62.1 kB

Release files / converger_agent-0.1.1.tar.gz

Download URL converger_agent-0.1.1.tar.gz
Size 34.1 kB
Tags Source
SHA-256 checksum
How to use checksums
99e477842002606573a1d505f2b957871ede13e00f75499dc4bba88b6c65fc92
BLAKE2b-256 checksum
How to use checksums
a6c124112d9c9b9d7407ea13277fcf3be529e429ad001c29888944d7f28edaaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / converger_agent-0.1.1-py3-none-any.whl

Download URL converger_agent-0.1.1-py3-none-any.whl
Size 28.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
80e9219b75341693d22e71ffd424eff5fcc96022549199ffd47ad3006f831be3
BLAKE2b-256 checksum
How to use checksums
ede65daae6b68a025737698e2526f13854f40a17904fb9fcf61e8266afd1013d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page