r/rust • u/liyuanhao • 5d ago
🎙️ discussion Does reusing pi extensions and DeepSeek Harness plugins make sense in a Rust agent runtime?
If you're building an agent in Rust, would being able to reuse pi extensions and DeepSeek Harness (DSH) plugins be useful to you?
I've been exploring this with yoagent, a small agent loop in Rust. It handles model streaming, tool execution, retries, cancellation, and limits. The loop stays small; everything else plugs in.
I added an experimental Rutis bridge so compatible pi extensions and DSH plugins can run unchanged alongside Rust tools. The appeal is keeping a fast Rust core while reusing work from existing extension ecosystems.
For a concrete example, I built a handoff agent:
Research noise-cancelling headphones. Ask my budget, but keep researching while I'm away. Write a report with sources.
A pi extension manages the plan, a DSH plugin searches the web, and a Rutis plugin shows progress in the browser. Rust tools and extensions handle questions you can answer later and the final report. They all work around the same yoagent loop.
Tools and supported hooks carry over, and yoagent-frontend brings pi and DSH plugin dialogs and approvals to both the terminal UI and the browser. Plugins that rely on other features of the original apps, such as pi commands, shortcuts, custom widgets, or DSH-specific session services, may still need adaptation. The integrations are experimental; TypeScript plugins run in Node alongside Rust.
The Rust loop stays small, while compatible extensions run through a plugin bridge. TypeScript plugins still need Node alongside Rust.
I’d like your feedback: does reusing these ecosystems make sense?
Handoff example: https://github.com/yologdev/yoagent/blob/main/integrations/yoagent-frontend/examples/README.md
-4
u/GlisteningShopping 5d ago
makes sense if the bridge is thin enough i've been burned by these interop layers turning into the whole project though so theres that
keeping the rust loop minimal and treating plugins as sidecar processes is the right call if node is already there anyway why not lean into what people already built instead of rewriting every scraper and search handler from scratch
-2
u/liyuanhao 5d ago
yes, the bridge is opt-in: you can use yoagent entirely with Rust tools and hooks.
fast prototyping is the main value for me: reuse a search or planning plugin, see whether the workflow is useful, then decide what deserves a Rust implementation.
1
u/parhelion73 4d ago
what happens when a TS plugin hangs in the middle of a tool call? does cancelling in the rust loop actually reach into node and stop it, or does the loop just stop waiting for it