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.8
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.8-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| pyb_agent_sdk-0.2.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.8 MB
Release files / pyb_agent_sdk-0.2.8-py3-none-win_amd64.whl
| Download URL | pyb_agent_sdk-0.2.8-py3-none-win_amd64.whl |
|---|---|
| Size | 66.8 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
360245d65fd896db1864cd4c5dd5ec503b61aa32dff083b59dc2f0f14e4fb021
|
|
BLAKE2b-256 checksum How to use checksums |
90c6496dd02f777585034821710f97de7430bb485a8a0fe870c587e227afb86f
|
| 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.8-py3-none-any.whl
| Download URL | pyb_agent_sdk-0.2.8-py3-none-any.whl |
|---|---|
| Size | 31.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6334e213cd34b278bbf7ea568eece5ced5310a5beb4524599bf672c335c7912a
|
|
BLAKE2b-256 checksum How to use checksums |
62108cf515a567ca7bc5028d5e36e10429d1563044ec2e6e3469f33ca1165a98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.10
|