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)
| File | Size | Uploaded | |
|---|---|---|---|
| converger_agent-0.1.1.tar.gz | 34.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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