PYB Agent SDK (Python)
Python client SDK for the PYB Agent engine — with a built-in engine launcher:
pip install is all you need; the SDK auto-discovers or spawns the engine on
first use (zero-prerequisite install on platforms with a bundled wheel).
Install
pip install pyb-agent-sdk
- Windows x64: a platform wheel with the bundled engine is selected
automatically (
py3-none-win_amd64, ~67MB) — no other setup needed. - Other platforms: the pure wheel installs the launcher, which reuses a
running engine at
http://localhost:4096or spawns thepybcommand from PATH (npm install -g pybao-xc-sdkprovides it).
Quick start
import asyncio
from pyb_agent_sdk import PybAgentClient, ClientOptions
async def main():
async with PybAgentClient(
"http://localhost:4096", # probed first; auto-spawn if dead
options=ClientOptions(cwd="D:/proj"),
) as client:
async for event in client.query("hello"):
if event.type == "content_delta":
print(event.text, end="")
asyncio.run(main())
First-run model configuration
The engine starts without credentials, but conversations require a model API key. Two options:
- Interactive: run
pybonce in a terminal and complete model setup — stored in~/.pyb/model-config-v2.sqlite. - Environment: set
ANTHROPIC_AUTH_TOKEN=<your key>before starting your Python process.
GLM keys: https://open.bigmodel.cn (the engine's default model family).
Without a key, the first query() fails with an actionable message pointing
here (the engine's /health stays green — key issues surface per-turn, not
at startup).
Engine version lock
The launcher validates the spawned engine's --version against a known-good
floor (currently 1.5.281) and fails fast with upgrade guidance if the binary
is older — instead of mysterious mid-conversation protocol errors.
Session pinning (shared live context)
Pass session_id= to the constructor to attach to an existing session — all
clients on the same session share live context (server-side broadcast), e.g.
ESP32 voice input and terminal CLI in one conversation.
API surface
PybAgentClient(base_url, *, session_id=None, options=None, can_use_tool=None)await client.start() → session_id/await client.resume(session_id)async for event in client.query(text)—content_delta/ terminal eventsawait client.interrupt()— abort the running turnSessionLostError— first-class: raised when the server lost the session
Metadata
Release files for pyb-agent-sdk 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyb_agent_sdk-0.2.3-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| pyb_agent_sdk-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.8 MB
Release files / pyb_agent_sdk-0.2.3-py3-none-win_amd64.whl
| Download URL | pyb_agent_sdk-0.2.3-py3-none-win_amd64.whl |
|---|---|
| Size | 66.7 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d60d9270c4ed8cc4c4184c504fbcbb2e1358c9d6fe3696fee0d2f032ffb5b3a6
|
|
BLAKE2b-256 checksum How to use checksums |
c45c12f87c841964f3e857f7bab5c3add790e56e4f1afa5e01adc8e777eba703
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.10
|
Release files / pyb_agent_sdk-0.2.3-py3-none-any.whl
| Download URL | pyb_agent_sdk-0.2.3-py3-none-any.whl |
|---|---|
| Size | 31.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a5e66d8fe9f41fdd597f6752822373f1cad3b959039bba42ca7ab59c18a1a630
|
|
BLAKE2b-256 checksum How to use checksums |
663d56d6bc08e7d758d885d2eb76c1a8060a820717c43da7d6135c33abb14580
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.10
|