Skip to content

Add screen-agent example: wrapping an existing pip package (video → bug report)#31

Draft
emranemran wants to merge 1 commit into
livepeer:mainfrom
emranemran:add-screen-agent-example
Draft

Add screen-agent example: wrapping an existing pip package (video → bug report)#31
emranemran wants to merge 1 commit into
livepeer:mainfrom
emranemran:add-screen-agent-example

Conversation

@emranemran

Copy link
Copy Markdown

What

A new example, screen-agent/: send a screen recording, get back a structured bug report (markdown + timeline + summary JSON).

Why this example (vs the existing ones)

Every current example was written for the repo. This one demonstrates the pattern real integrators hit first: putting an existing project on the network. The app logic lives in an external pip package (screen-agent-mvp); the Dockerfile installs it from git and runs its bundled screen-agent-runner entry point — ~150 lines of aiohttp + register_runner() around an unchanged pure function (livepeer_runner.py).

Two integration details other examples don't surface, both learned the hard way:

  • the runner does its long CPU/GPU-bound work in asyncio.to_thread so registration heartbeats keep flowing mid-call;
  • the client must override call_runner's 5s default timeout (this app passes 600s) — any non-trivial app dies on the default.
App id livepeer-example/screen-agent
Registration dynamic
Mode persistent (single-shot by nature)
Transport HTTP (JSON, base64 mp4 in)

Testing

Ran the README's offchain quickstart verbatim on WSL2/Docker Desktop:
docker compose up -d --build/discovery lists livepeer-example/screen-agentuv run demo_video.py demo.mp4uv run client.py demo.mp4 returns the report bundle through the orchestrator proxy. Container runs --force-fallback (no GPU needed); strict GPU mode (PaddleOCR + OmniParser + Qwen2.5-VL) was verified end-to-end in the app repo on an RTX 5090.

Notes for review

🤖 Generated with Claude Code

…video in, bug report out)

New example demonstrating the pattern the others don't cover: the app
logic lives in an external package (screen-agent-mvp); the Dockerfile
pip-installs it and runs its bundled screen-agent-runner entry point.
Dynamic registration, persistent (single-shot by nature), HTTP with
base64 mp4 in / report bundle out. Runs offchain with deterministic
fallback engines (no GPU needed); strict GPU mode documented.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant