Skip to content

Latest commit

History

History
157 lines (117 loc) · 13.5 KB

File metadata and controls

157 lines (117 loc) · 13.5 KB

Provider reference

English | 简体中文

OpenAgentPack targets multiple agent platforms behind one declarative config. Each platform is a provider. The same agents.yaml can deploy to any of them; capability differences are handled per provider.

Capability matrix

FeatureBailianQoderClaudeVolcengine ArkNotes
EnvironmentnativenativenativenativeAll four providers expose cloud environments.
VaultnativenativenativenativeBailian and Qoder manage credentials through their vault APIs.
SkillnativenativenativenativeClaude uploads via files[]; the other providers upload zip archives. Volcengine Ark is create + attach only.
AgentnativenativenativenativeCore managed-agent resource.
MCP ServernativenativenativenativeBailian uses official managed servers referenced by name.
Memory StoreunsupportednativenativenativeQoder, Claude (beta), and Ark adapters implement the complete upstream lifecycle.
Multi-AgentunsupportedunsupportednativenativeCoordinator topology is available on Claude and Volcengine Ark.
DeploymentnativenativenativeemulatedBailian, Qoder, and Claude use native deployments; Ark expands a deployment into a session at run time.
SessionnativenativenativenativeRuntime sessions are native on every provider.
  • native — the provider supports the feature directly.
  • emulated — OpenAgentPack reproduces the behavior on top of primitives the provider does have.
  • unsupported — declaring the feature for that provider is a validation error with remediation guidance.

This matrix is verified against the SDK capability declarations in packages/sdk/src/internal/providers/*/capabilities.ts by scripts/provider-docs.test.ts.

Adapter implementation matrix

The resource matrix above answers whether a declaration can be applied. The table below answers a different question: which optional workflows the current OpenAgentPack adapter actually implements. It is intentionally scoped to this repository, rather than every feature a provider may advertise.

Adapter workflowBailianQoderClaudeVolcengine ArkImplementation notes
List agents, environments, and vaultsyesyesyesyesPowers resource discovery in the Web UI.
Export resources to YAML (sync)yesyesyeslimitedArk cannot enumerate skills, so skill export is skipped.
Full drift comparisonEnvironment, AgentEnvironment, AgentnonoOther supported resources degrade to existence checks; deployment content is never compared.
List uploaded filesyesyesyesyesFile upload, metadata lookup, and deletion are also implemented by all adapters.
Resolve artifact download URLnoyesnonoQoder exposes a short-lived file content URL.
List skillsyesyesyesnoArk supports lookup by ID, but its adapter cannot enumerate skills.
Download skill source during syncnonoyesnoOnly Claude currently materializes remote skill packages locally.
Non-blocking skill creation for Web UI pollingyesnononoBailian can create from an uploaded file ID and let the UI poll scan status.
List provider modelsnoyesyesnoUsed for model selection where a provider exposes a model catalog.
Stream and page session eventsyesyesyesyesAll adapters normalize provider events to the shared session event shape.
Resume event stream from send cursornoyesnonoQoder returns an event cursor; the others connect before sending to avoid missed events.

yes means the corresponding optional ProviderAdapter facet is implemented. no means OpenAgentPack currently soft-degrades that workflow; it does not necessarily mean the upstream platform can never support it. limited means the workflow is implemented with the restriction described in the notes.

Notable provider-specific behavior

  • Bailian: skill upload uses the Files API and supports scan-status polling; agent updates create provider-side versions. Official MCP servers are referenced by name. Deployments are native, with server-side cron schedules, manual runs, and pause/unpause.
  • Qoder: tool names are translated from the lowercase config vocabulary to PascalCase. Session sends return a cursor, enabling resumable event consumption. Deployments are native and support manual or scheduled runs.
  • Claude: deployments are native, including their server-side lifecycle. It is currently the only adapter that downloads remote skill packages during sync.
  • Volcengine Ark: skills are create + get + attach only in the API behavior verified by this project. Updates re-upload a new skill; list and in-place update are unavailable; deletion is best-effort. Deployment is emulated as a session.

Claude and Volcengine Ark research notes

Last reviewed: 2026-07-17. The evidence labels below deliberately separate upstream product capability from OpenAgentPack support.

AreaClaude Managed Agents (official)Claude adapterVolcengine Ark (official/public)Ark adapter
API status and protocolDirect Claude API is GA for Messages/Models; Managed Agents, Files, and Skills are beta and require managed-agents-2026-04-01 where applicableSends that beta header to api.anthropic.com/v1Official Managed Agents API under /api/v3, authenticated with a Bearer API KeyUses the documented base URL and wire shapes
Stateful sessionsServer-side history, sandbox state, event send/stream, interruption, and resumeCreate/list/get/delete, send, SSE stream, and paged event historyOfficial APIs cover session CRUD, event send/list/stream, resources, and multi-agent threadsCreate/list/get/delete, send, SSE stream, and paged event history; session update/resources/threads are not exposed
EnvironmentIsolated cloud sandbox per session; reusable environment config, package cache, and network policyCRUD and list implementedOfficial create/list/get/update/delete endpointsCRUD/list implemented and existence drift checked
SkillsBuilt-in Anthropic skills plus custom zip or individual-file uploads; max 20 per sessionCRUD/list/get/download implemented; adapter uploads files[]Official documentation currently lists create and get onlyCreate/get/attach implemented; update recreates; list/delete are unavailable upstream
Multi-agentCoordinator delegates to persistent, context-isolated threads sharing sandbox/files/vaultsCoordinator topology implementedAgent schema includes multiagent; Session APIs expose thread list/detail/events/streamCoordinator topology implemented; thread inspection is not exposed through ProviderAdapter
DeploymentNative scheduled deployments with cron/timezone and run historyNative lifecycle and run implementedThe official Managed Agents API catalog contains no Deployment resourceEmulated locally and expanded into a Session at run time
Memory StoreStore CRUD/archive, memory CRUD, optimistic concurrency, immutable versions and redaction are implemented; paths are normalized from Claude's absolute formStore CRUD, memory CRUD, Session binding, versions and redaction are implemented behind agent-memory-2026-07-22Store CRUD plus memory create/batch-create/list/get/update/delete are implementedFull upstream surface is implemented; Ark is last-write-wins and does not expose version APIs

Primary references: Claude API overview, Claude Managed Agents overview, sessions and event streaming, skills, multi-agent sessions, scheduled deployments, memory stores, and the Volcengine Ark Managed Agents API reference.

The Ark API catalog confirms an important distinction for maintainers: some upstream operations are not yet represented in ProviderAdapter (session update/resources/threads, vault update and credential lifecycle, full Memory Store operations), while the narrow Skill lifecycle is an upstream limitation rather than merely missing adapter work.

Keeping this table current

When adding a provider or optional adapter method:

  1. Update its capabilities.ts for resource-level support and implement the required lifecycle methods.
  2. Re-check optional methods in ProviderAdapter (listing, sync/export, drift, files, skills, models, and session-event resume) and update this matrix.
  3. Record API limitations in adapter comments with the endpoint or observed behavior; distinguish upstream limitations from missing OpenAgentPack work.
  4. Run bun test scripts/provider-docs.test.ts. The test verifies both the resource matrix and the optional-method rows against adapter prototypes.

Provider documentation index

Use these links as the starting point when refreshing the capability matrix or adding a provider method. Prefer official product/API pages over inferred behavior from this repository.

ProviderPrimary sourceUseful follow-up sourcesNotes
BailianManaged Agents quickstartModel Studio docs root, single-agent application guideManaged Agents quickstart shows the /api/v1/agentstudio endpoint family used by this adapter.
QoderCloud Agents API overviewCloud Agents overview, Agent Skills, Cloud Agents marketplace skillAPI docs are the canonical source for gateway URL, headers, resources, pagination, and event streaming.
ClaudeClaude API overviewManaged Agents overview, events and streaming, skills, multi-agent sessions, scheduled deployments, memory storesAPI overview gives GA/beta status; Managed Agents pages give resource-specific behavior.
Volcengine ArkManaged Agents API referenceArk documentation center, API key managementThe console API reference is the source for /api/v3 resources and confirms that Deployment is not a first-class resource.

Provider configuration

Bailian (Aliyun AgentStudio)

providers:
bailian:
api_key: ${DASHSCOPE_API_KEY}workspace_id: ${BAILIAN_WORKSPACE_ID}# base_url is derived from workspace_id when omitted:# https://<workspace_id>.cn-beijing.maas.aliyuncs.com/api/v1/agentstudio

Qoder

providers:
qoder:
api_key: ${QODER_PAT}gateway: "https://api.qoder.com/api/v1/cloud"# optional; this is the default

Claude

providers:
claude:
api_key: ${ANTHROPIC_API_KEY}beta: "..."# optional

Volcengine Ark (Managed Agents)

providers:
ark:
api_key: ${ARK_API_KEY}

Tool naming differences

Built-in tools are always written lowercase in config. Bailian and Claude use lowercase natively; Qoder uses PascalCase. OpenAgentPack translates automatically when applying to Qoder.

FunctionConfig (lowercase)Qoder native
Read filereadRead
Find filesglobGlob
Search contentgrepGrep
Fetch web pageweb_fetchWebFetch
Web searchweb_searchWebSearch
Write filewriteWrite
Edit fileeditEdit
ShellbashBash

Targeting one or all providers

defaults.provider sets the default target. Set it to a single provider name, or to all to manage every declared provider from one config. On any command you can override with --provider <name>:

agents plan --provider claude
agents apply --provider qoder

Multi-provider deployment

Declare more than one provider and the same agent can be deployed to each. See examples/claude/multi-provider/ for a multi-provider project, and the provider-specific directories under examples/ for complete configurations.