RepoPilot

How do their APIs compare?

About conductor-oss/conductor · 2 messages · last activity 9/6/2026

Question

How do their APIs compare?

RepoPilot

These two projects are architecturally very different, so "their APIs" means quite different things in each — one is a set of server-side HTTP/RPC APIs for orchestration, the other is a set of client-side Java library APIs for peer-to-peer device communication on Android. Here's the comparison:

conductor-oss/conductor: HTTP/REST and RPC-style APIs

Conductor exposes its functionality primarily as Spring MVC REST controllers (server-side), designed for workflow/agent orchestration:

  • Agent lifecycle managementAgentController exposes bulk operations over HTTP: pause, resume, restart, retry, and terminate agent executions, plus definition lookup, e.g. PUT /executions/bulk/pause, POST /executions/bulk/restart, and GET /definitions/{name} [agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/controller/AgentController.java:L404-L436].
  • Skill registry managementSkillController provides a full CRUD-style API for "skills": multipart upload/registration, listing, version-scoped retrieval, file reads, package downloads, deployment, and deletion (POST /register, GET /{name}/versions/{version}, POST /{name}/versions/{version}/deploy, DELETE /{name}/versions/{version}) [agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/controller/SkillController.java:L45-L120].
  • Agent-to-Agent (A2A) protocol serverA2AAgentServerResource implements a JSON-RPC-over-HTTP interface conforming to an agent discovery convention (.well-known/agent-card.json), supporting both regular JSON responses and Server-Sent Events streaming (MediaType.TEXT_EVENT_STREAM_VALUE) for agent invocation [agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/a2a/A2AAgentServerResource.java:L47-L100].
  • Pluggable agent client SPI — internally, there's a ConductorAgentClient interface with implementations like VertexAiAgentClient and OpenAiAssistantsAgentClient defining a uniform startAgent/getAgentStatus/respond/cancelAgent contract, though several backends (Vertex, OpenAI Assistants) are stub/unimplemented placeholders that throw UnsupportedOperationException [agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/service/VertexAiAgentClient.java:L37-L61, agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/service/OpenAiAssistantsAgentClient.java:L40-L69].
  • System task API contract — tasks like ListApiToolsTask follow Conductor's WorkflowSystemTask extension pattern: declared input/output schemas in Javadoc, invoked via start(WorkflowModel, TaskModel, WorkflowExecutor), fetching and normalizing external OpenAPI/Swagger/Postman specs into tool descriptors [agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/service/ListApiToolsTask.java:L21-L52,L97-L134].

This is a networked, multi-tenant, server-hosted API surface intended for orchestration, tool discovery, and agent-to-agent interop.

niedev/rtranslator: Local Java library APIs for Bluetooth P2P

By contrast, rtranslator's "API" is a local, in-process Android library API, not a network service:

  • BluetoothCommunicator exposes an object-oriented, callback-driven API (documented via Javadoc examples) — you register listeners with methods like onDataReceived(Message, int) and onDisconnected(Peer, int), then call instance methods such as startAdvertising() and startDiscovery() to drive peer discovery and messaging [app/src/main/java/nie/translator/rtranslator/bluetooth/BluetoothCommunicator.java:L201-L231].
  • Peer models a discoverable/connectable remote device and is compared by uniqueName rather than object identity, since device references can change over time [app/src

Want to ask your own question?

Open chat for conductor-oss/conductor

Public Q&A. Generated by RepoPilot from the actual source of conductor-oss/conductor. AI answers can be incomplete or stale — verify before relying on them.