Skip to main content

Server SDK for agent-phonon — orchestrate AI agents across multiple devices.

Project description

agent-phonon — Python Server SDK

让任何 Python 项目「一键成为 agent-phonon 服务端」:编排多台设备上的 AI agent(Claude Code / Codex / OpenCode / OpenClaw / Hermes)。

安装

pip install agent-phonon   # 或 pip install -e sdk-python/

用法

import asyncio
from agent_phonon import PhononServer

async def main():
    server = PhononServer(port=8080, authenticate=verify_device)

    @server.on_device
    async def handle(device):                       # 每台设备拨入时
        agents = await device.discover()            # 列设备上的 agent
        proj = await device.project_create("my-proj")
        session = await device.create_session(
            project=proj["project"]["projectId"],
            agent="openclaw:main", model="claude-opus-4.8",
        )
        # HITL:危险操作裁决
        device.set_hook_decider(
            lambda hook, s: "abort" if "rm -rf" in str(hook.get("payload", {})) else "continue"
        )
        await session.send("帮我重构这个函数")
        async for event in session.stream():        # 流式输出
            if event.get("type") == "message":
                print(event["text"], end="")

    await server.listen()
    await asyncio.Future()  # 长跑

async def verify_device(device_id, device_key):
    return "tenant-1" if device_key == "secret" else None  # None = 拒绝

asyncio.run(main())

核心抽象

  • PhononServer — ws 监听,管理多设备;authenticate(device_id, device_key) -> tenant_id | Noneon_device 回调;list_devices() / get_device()
  • PhononDevicediscover() / create_session() / list_sessions() + project_* / skill_* 封装;set_hook_decider()(HITL)/ set_unsolicited_handler()(自发输出)
  • PhononSessionsend() + async for event in session.stream()(流式);inject/interrupt/switch_model/compress/status/terminate;自动 stream.ack

多设备

一个 PhononServer 同时连多个 phonon 设备,各设备 tenant 隔离、互不干扰——这是 phonon 作为「个人设备编排中心」的核心。

协议

JSON-RPC 2.0 over WebSocket。与 TS SDK(@agent-phonon/server-sdk)完全协议兼容——Python 服务端能指挥 TS phonon,反之亦然。

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

agent_phonon_sdk-0.8.1.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

agent_phonon_sdk-0.8.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file agent_phonon_sdk-0.8.1.tar.gz.

File metadata

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

File hashes

Hashes for agent_phonon_sdk-0.8.1.tar.gz
Algorithm Hash digest
SHA256 0c65761434dcf3f8fe1d827ae98a50b955c3924bf2789e392090d00af15f4c3b
MD5 2e2af824167af2bf8736a9eb7d3a8a61
BLAKE2b-256 59f06bf00f6b63953c16dbc448a7ce7f3b7d108a9e56cf8ee0f062f46fbd26cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_phonon_sdk-0.8.1.tar.gz:

Publisher: publish-pypi.yml on hackerphysics/agent-phonon

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

File details

Details for the file agent_phonon_sdk-0.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_phonon_sdk-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 93d701a20a3b98c57ce6eb33bb14573d163dc7e8cc03644f00d0e35e3c6b2da7
MD5 50765c1ce92aa5880c6fedea28c9168f
BLAKE2b-256 8bbc96617ac2145a5467a7c5a2ee7b4a48694f19c1e704d96d7f6c1816adf73c

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_phonon_sdk-0.8.1-py3-none-any.whl:

Publisher: publish-pypi.yml on hackerphysics/agent-phonon

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