Skip to content

Commit b9007ef

Browse files
authored
Merge branch 'main' into codex/sync-skip-missing-files
2 parents 4e4de60 + ac2ad7b commit b9007ef

21 files changed

Lines changed: 382 additions & 146 deletions

File tree

README.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
> [!IMPORTANT]
1515
> OpenAgentPack is in beta. Public APIs and the `agents.yaml` schema may change before `1.0`. See the [changelog](./CHANGELOG.md).
1616
17-
<p align="center">
18-
<img src="https://img.alicdn.com/imgextra/i3/O1CN01xWDp5P1EP90HOZx9q_!!6000000000343-2-tps-1254-1254.png" width="360" alt="OpenAgentPack: one agents.yaml for multiple managed-agent providers">
19-
</p>
17+
![OpenAgentPack CLI: from agents.yaml to plan and apply](./packages/sdk/docs/agents.gif)
18+
19+
`agents.yaml → validate → plan → apply`: bring agents back into Git, review the pending changes, then update remote resources.
2020

2121
One `agents.yaml` defines an agent's environment, model, instructions, tools, skills, MCP servers, vaults, and credentials. Review every change in a PR, preview it with `plan`, and apply it when ready — instead of rebuilding the same agent through console clicks.
2222

@@ -33,6 +33,8 @@ agents validate && agents plan
3333

3434
[Run the 5-minute quick start](./docs/getting-started.md) · [View provider support](./docs/reference/providers.md) · [Browse runnable examples](./docs/examples.md) · [Roadmap](./ROADMAP.md)
3535

36+
[Watch the Playground demo: switch provider and run the same agent scenario](https://github.com/user-attachments/assets/bf51b8d8-f2ed-464b-bca9-0709fefcc44d)
37+
3638
## Why now
3739

3840
Agents are moving from personal tools to enterprise digital workers. But the things that make an agent valuable — its prompts, skills, knowledge files, tools, and runtime configuration — still live mainly inside cloud-provider consoles.
@@ -45,6 +47,10 @@ OpenAgentPack puts a declarative control plane between the agent and the cloud p
4547

4648
The goal is to make an agent an enterprise-controlled, portable, and inheritable digital asset.
4749

50+
<p align="center">
51+
<img src="https://img.alicdn.com/imgextra/i3/O1CN01xWDp5P1EP90HOZx9q_!!6000000000343-2-tps-1254-1254.png" width="360" alt="OpenAgentPack: one agents.yaml for multiple managed-agent providers">
52+
</p>
53+
4854
### Declaration and portability: the agent as a blueprint
4955

5056
Borrowing Docker's declarative idea, OpenAgentPack brings everything that determines what an agent is — model, instructions, tools, skills, environment, files, and credential references — into one `agents.yaml` blueprint. The blueprint can live in Git, pass through pull-request review, reproduce an agent, and move across providers.
@@ -68,18 +74,6 @@ The mechanics are a single `agents.yaml`, a `validate → plan → apply` workfl
6874
- **Dependency-aware** — Environment → Skill → Agent are created in topological order; a failed dependency skips its dependents instead of leaving half-built state.
6975
- **Drift recovery** — detects when remote config has drifted from your declaration and reconciles it. The YAML is always the single source of truth.
7076

71-
## Demo
72-
73-
### CLI workflow
74-
75-
![OpenAgentPack CLI workflow](./packages/sdk/docs/agents.gif)
76-
77-
### Local Playground
78-
79-
`agents playground` launches a local WebUI, fetches the matching `@openagentpack/playground` package on demand, and opens it in your browser. Use `--provider` to target `bailian`, `qoder`, `ark`, or `claude`.
80-
81-
[Watch the Playground demo video](https://github.com/user-attachments/assets/bf51b8d8-f2ed-464b-bca9-0709fefcc44d)
82-
8377
## Quick start
8478

8579
```bash
@@ -90,6 +84,10 @@ agents apply -y # apply changes
9084
agents destroy # tear down managed resources
9185
```
9286

87+
Run `agents playground` to launch the local WebUI, and use `--provider` to target `bailian`, `qoder`, `ark`, or `claude`. You can switch providers on the same declaration, run real sessions, and observe tool calls and artifacts.
88+
89+
[Watch the full Playground demo](https://github.com/user-attachments/assets/bf51b8d8-f2ed-464b-bca9-0709fefcc44d)
90+
9391
A minimal config:
9492

9593
```yaml
@@ -149,7 +147,7 @@ Beta testers can install `@openagentpack/cli@beta`; see the [release guide](./do
149147
| MCP Server | native | native | native | native |
150148
| Memory Store | unsupported | native | unsupported | native |
151149
| Multi-Agent | unsupported | unsupported | native | native |
152-
| Deployment | emulated | emulated | native | emulated |
150+
| Deployment | emulated | native | native | emulated |
153151
| Session | native | native | native | native |
154152

155153
The full capability matrix and per-provider differences live in the [Provider reference](./docs/reference/providers.md).

README.zh-CN.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
> [!IMPORTANT]
1515
> OpenAgentPack 目前处于 Beta 阶段。公开 API 和 `agents.yaml` Schema 在 `1.0` 前仍可能发生不兼容变更,详见 [更新日志](./CHANGELOG.md)
1616
17-
<p align="center">
18-
<img src="https://img.alicdn.com/imgextra/i1/O1CN016pw0Ax1KuBXckX0Iz_!!6000000001223-2-tps-1254-1254.png" width="360" alt="OpenAgentPack:一份 agents.yaml 管理多个托管 Agent 平台">
19-
</p>
17+
![OpenAgentPack CLI:从 agents.yaml 到 plan 和 apply](./packages/sdk/docs/agents.gif)
18+
19+
`agents.yaml → validate → plan → apply`:先把 Agent 带回 Git,审查将要发生的变更,再更新远端资源。
2020

2121
一份 `agents.yaml` 定义 Agent 的环境、模型、指令、工具、技能、MCP、Vault 和凭据。每次变更都能在 PR 中审查,用 `plan` 预览后再执行,不必在控制台里重复搭建同一个 Agent。
2222

@@ -33,6 +33,8 @@ agents validate && agents plan
3333

3434
[5 分钟快速开始](./docs/getting-started.zh-CN.md) · [查看 Provider 支持](./docs/reference/providers.zh-CN.md) · [浏览可运行示例](./docs/examples.md) · [Roadmap](./ROADMAP.md)
3535

36+
[观看 Playground 演示:切换 Provider,运行同一个 Agent 场景](https://github.com/user-attachments/assets/bf51b8d8-f2ed-464b-bca9-0709fefcc44d)
37+
3638
## 为什么是现在
3739

3840
Agent 正在从个人工具变成企业的数字员工。但企业真正重要的东西 —— Prompt、技能、知识文件、工具和运行配置 —— 现在主要只存在于云厂商控制台里。
@@ -45,6 +47,10 @@ OpenAgentPack 在 Agent 和云平台之间建立一个声明式控制平面。
4547

4648
我们的目标,是让 Agent 成为企业可掌控、可迁移、可传承的数字资产。
4749

50+
<p align="center">
51+
<img src="https://img.alicdn.com/imgextra/i1/O1CN016pw0Ax1KuBXckX0Iz_!!6000000001223-2-tps-1254-1254.png" width="360" alt="OpenAgentPack:一份 agents.yaml 管理多个托管 Agent 平台">
52+
</p>
53+
4854
### 声明与可携带:把 Agent 写成一份图纸
4955

5056
借鉴 Docker 的声明思想,把所有决定 Agent 是什么的东西 —— 模型、指令、工具、技能、环境、文件和凭据引用 —— 收敛到一份 `agents.yaml` 图纸里。这份图纸可以进入 Git、接受 PR 审查、复现 Agent,也可以迁移到不同 Provider。
@@ -68,18 +74,6 @@ OpenAgentPack 在 Agent 和云平台之间建立一个声明式控制平面。
6874
- **依赖自动解析** —— Environment → Skill → Agent 按拓扑序创建;依赖失败会跳过下游,而不是留下半成品状态。
6975
- **Drift 恢复** —— 检测远程配置与声明的漂移并收敛回来。YAML 始终是唯一事实来源。
7076

71-
## 效果演示
72-
73-
### CLI 工作流
74-
75-
![OpenAgentPack CLI 工作流](./packages/sdk/docs/agents.gif)
76-
77-
### 本地 Playground
78-
79-
`agents playground` 会启动本地 WebUI,按需拉取匹配版本的 `@openagentpack/playground`,并自动打开浏览器。可通过 `--provider` 指定 `bailian``qoder``ark``claude`
80-
81-
[观看 Playground 演示视频](https://github.com/user-attachments/assets/bf51b8d8-f2ed-464b-bca9-0709fefcc44d)
82-
8377
## 快速开始
8478

8579
```bash
@@ -90,6 +84,10 @@ agents apply -y # 执行变更
9084
agents destroy # 销毁托管资源
9185
```
9286

87+
运行 `agents playground` 可启动本地 WebUI,并通过 `--provider` 指定 `bailian``qoder``ark``claude`。你可以在同一份声明上切换 Provider、运行真实 Session,并观察工具调用和 Artifact。
88+
89+
[观看 Playground 完整演示](https://github.com/user-attachments/assets/bf51b8d8-f2ed-464b-bca9-0709fefcc44d)
90+
9391
最小配置:
9492

9593
```yaml
@@ -149,7 +147,7 @@ Beta 用户可以安装 `@openagentpack/cli@beta`;固定版本及切回稳定
149147
| MCP Server | native | native | native | native |
150148
| Memory Store | unsupported | native | unsupported | native |
151149
| Multi-Agent | unsupported | unsupported | native | native |
152-
| Deployment | emulated | emulated | native | emulated |
150+
| Deployment | emulated | native | native | emulated |
153151
| Session | native | native | native | native |
154152

155153
完整能力矩阵与各 Provider 差异见 [Provider 参考](./docs/reference/providers.zh-CN.md)。

docs/architecture/how-it-works.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,4 @@ agents state import <address> <remote-id>
6363

6464
Resources (agents, environments, skills…) are **infrastructure** — long-lived, managed by `plan`/`apply`. A **session** is a **runtime** conversation started from an agent. Sessions are managed separately with `agents session` and are not part of the plan/apply lifecycle.
6565

66-
Deployments sit between the two: they are declared as resources but produce runs. On Claude they schedule server-side; on Bailian, Qoder, and Volcengine Ark a `deployment run` expands into a session.
66+
Deployments sit between the two: they are declared as resources but produce runs. On Qoder and Claude they schedule server-side; on Bailian and Volcengine Ark a `deployment run` expands into a session.

docs/concepts/agents-as-code.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Because the declaration is a file, it gets everything a file gets: code review,
1919
- The **agent harness** is the provider-managed layer that wraps a model into an agent: knowledge base, skills, MCP wiring, prompt/instructions, vault, deployment, multi-agent orchestration. These are the customer's portable assets.
2020
- The **agent infra** is the interchangeable execution substrate beneath the harness — the specific provider (Bailian, Qoder, Claude, Volcengine Ark) that runs the agent.
2121

22-
OpenAgentPack's portability claim is that the same harness declaration can target different agent infra. Portability means the *core declaration* is portable and the per-provider **capability contract** is explicit — unsupported facets degrade gracefully (for example, an emulated `Deployment` on Bailian/Qoder/Volcengine Ark) — not that every feature is identical on every provider.
22+
OpenAgentPack's portability claim is that the same harness declaration can target different agent infra. Portability means the *core declaration* is portable and the per-provider **capability contract** is explicit — unsupported facets degrade gracefully (for example, an emulated `Deployment` on Bailian/Volcengine Ark) — not that every feature is identical on every provider.
2323

2424
## What this enables
2525

docs/concepts/sessions-and-deployments.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ How a deployment *runs* depends on the provider's capability tier:
2323
| Provider | Deployment tier | What `agents deployment run` does |
2424
|----------|:--------------:|------------------------------------|
2525
| Claude | native | schedules server-side through the deployments API |
26-
| Qoder, Bailian, Ark | emulated | expands into a one-shot session at run time |
26+
| Qoder | native | creates a deployment run and associated session |
27+
| Bailian, Ark | emulated | expands into a one-shot session at run time |
2728

2829
On the emulated providers, scheduling and outcome rubrics are **not** enforced server-side — use external cron/CI for always-on or scheduled runs.
2930

docs/examples.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ agents destroy
5252
| MCP Server | native | native | native | native |
5353
| Memory Store | unsupported | native | unsupported | native |
5454
| Multi-Agent | unsupported | unsupported | native | native |
55-
| Deployment | emulated | emulated | native | emulated |
55+
| Deployment | emulated | native | native | emulated |
5656
| Session | native | native | native | native |
5757

5858
See [Provider reference](./reference/providers.md) for per-provider configuration and notes.

docs/guides/configure-an-agent.zh-CN.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ Deployment 是介于「定义」与「运行」之间的声明式中间层。它
460460
- **部署层**(Deployment):声明「用哪个 Agent、带哪些绑定、以什么初始事件和调度运行」。
461461
- **运行层**(Session):一次具体的执行实例。
462462

463-
> Provider 差异:Claude 原生支持 Deployment(对应平台的 deployments API,可服务端调度);百炼、Qoder、火山方舟为**模拟**实现——`apply` 只写本地状态(`remote_id` 为 `null`),`agents deployment run` 时展开为一个 Session。详见 [Provider 参考](../reference/providers.zh-CN.md#模拟emulated资源的能力降级)。
463+
> Provider 差异:Qoder 和 Claude 原生支持 Deployment(对应平台的 deployments API,可服务端调度);百炼、火山方舟为**模拟**实现——`apply` 只写本地状态(`remote_id` 为 `null`),`agents deployment run` 时展开为一个 Session。详见 [Provider 参考](../reference/providers.zh-CN.md#模拟emulated资源的能力降级)。
464464

465465
### 定义 Deployment
466466

@@ -498,7 +498,7 @@ deployments:
498498

499499
- `agent` 必填,引用顶层 `agents` 中定义的 Agent。
500500
- 未声明 `environment` / `vaults` / `memory_stores` 时,**继承所引用 Agent 的声明**;显式声明则覆盖。
501-
- `schedule.expression` 为 cron 表达式;`timezone` 为必填的 IANA 时区标识。Claude 在服务端执行调度,百炼、Qoder、火山方舟需用外部 cron/CI 触发。
501+
- `schedule.expression` 为 cron 表达式;`timezone` 为必填的 IANA 时区标识。Qoder 和 Claude 在服务端执行调度,百炼、火山方舟需用外部 cron/CI 触发。
502502
- `initial_events` **必填**(1–50 条),在 Deployment 运行时按顺序投递给 Agent。
503503

504504
### 初始事件(initial_events)
@@ -507,17 +507,17 @@ deployments:
507507
|---------|------|------|
508508
| `user.message` | `content` | 以用户身份发送的消息 |
509509
| `system.message` | `content` | 系统提示(Qoder 上展平为 `user.message`) |
510-
| `user.define_outcome` | `description` / `rubric` / `rubric_file` / `max_iterations` | 定义结果评分目标( Claude 服务端执行评分) |
510+
| `user.define_outcome` | `description` / `rubric` / `rubric_file` / `max_iterations` | 定义结果评分目标(Qoder 和 Claude 服务端执行评分) |
511511

512512
### 资源(resources)
513513

514514
Deployment 运行时可挂载的资源:
515515

516516
| 资源类型 | 字段 | 说明 |
517517
|---------|------|------|
518-
| `file` | `file_id` / `source` / `mount_path` | 文件资源;`file_id` 引用已上传文件;`source` 为本地路径,Claude 在 `apply` 时上传、Qoder 在 `run` 时上传 |
518+
| `file` | `file_id` / `source` / `mount_path` | 文件资源;`file_id` 引用已上传文件;`source` 为本地路径,Qoder 和 Claude 在 `apply` 时上传 |
519519
| `memory_store` | `memory_store` / `access` / `instructions` | 引用 Memory Store;`access` 为 `read_write`(默认)或 `read_only` |
520-
| `github_repository` | `url` / `checkout` / `mount_path` / `authorization_token` | 检出 Git 仓库( Claude) |
520+
| `github_repository` | `url` / `checkout` / `mount_path` / `authorization_token` | 检出 Git 仓库(Qoder 和 Claude) |
521521

522522
### 运行与查看
523523

@@ -669,7 +669,7 @@ Session 的架构遵循 Serverless Framework 模式:**定义管理**(`plan/a
669669
| `memory_stores` | string[] | 否 | 覆盖 Agent 的 Memory Store |
670670
| `resources` | array | 否 | 运行时挂载的资源(file / memory_store / github_repository) |
671671
| `initial_events` | array | 是 | 运行时投递的初始事件(user.message / system.message / user.define_outcome),1–50 条 |
672-
| `schedule` | object | 否 | cron 调度(`expression` + 必填 `timezone`), Claude 服务端执行 |
672+
| `schedule` | object | 否 | cron 调度(`expression` + 必填 `timezone`),Qoder 和 Claude 服务端执行 |
673673
| `description` | string | 否 | 描述 |
674674
| `provider` | string | 否 | 指定 Provider,覆盖 defaults |
675675
| `metadata` | Record | 否 | 自定义元数据 |

docs/guides/deploy-to-qoder.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Deploy to Qoder
22

3-
Qoder is a managed-agent platform with native **memory stores** but no multi-agent or server-side deployment primitive.
3+
Qoder is a managed-agent platform with native **memory stores** and **deployments**, but no multi-agent primitive.
44

55
## Provider configuration
66

@@ -20,11 +20,10 @@ providers:
2020

2121
| Feature | Tier |
2222
|---------|:----:|
23-
| Environment, Vault, Skill, Agent, MCP Server, Memory Store, Session | native |
23+
| Environment, Vault, Skill, Agent, MCP Server, Memory Store, Deployment, Session | native |
2424
| Multi-Agent | unsupported |
25-
| Deployment | emulated |
2625

27-
A `deployment run` on Qoder expands into a one-shot session at run time; scheduling and outcome rubrics are not enforced server-side — use external cron/CI for scheduled runs.
26+
A `deployment run` on Qoder creates a native Deployment Run and associated Session. Cron schedules run server-side.
2827

2928
## Tool naming
3029

docs/guides/manage-deployments.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,13 @@ agents deployment run <name> # trigger a run
6767
| Provider | Deployment tier | What `deployment run` does |
6868
|----------|:--------------:|----------------------------|
6969
| Claude | native | schedules server-side through the deployments API |
70-
| Qoder, Bailian, Ark | emulated | expands into a one-shot session at run time |
70+
| Qoder | native | creates a deployment run and associated session |
71+
| Bailian, Ark | emulated | expands into a one-shot session at run time |
7172

7273
On the emulated providers, scheduling and outcome rubrics are **not** enforced server-side — use external cron/CI for always-on or scheduled runs.
7374

7475
## Examples
7576

7677
- Native deployment + outcome rubric: [`examples/claude/deployment/`](../../examples/claude/deployment/)
77-
- Emulated deployment + memory store: [`examples/qoder/deployment/`](../../examples/qoder/deployment/)
78+
- Native deployment + memory store: [`examples/qoder/deployment/`](../../examples/qoder/deployment/)
7879
- Emulated deployment + file resources: [`examples/bailian/deployment/`](../../examples/bailian/deployment/) and [`examples/ark/deployment/`](../../examples/ark/deployment/)

docs/reference/cli.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ The `agents` command. This page documents every command and option defined in `p
66

77
| Option | Description |
88
|--------|-------------|
9-
| `-f, --config <path>` | Path to the config file. Defaults to `agents.yaml`. |
9+
| `-f, --file <path>` | Path to the config file. Defaults to `agents.yaml`. |
1010
| `-v, --verbose` | Increase logging verbosity. Repeat: `-vv`. |
1111
| `-q, --quiet` | Suppress non-error output. |
1212
| `--no-color` | Disable colored output. |
1313
| `-V, --version` | Print the CLI version. |
1414

15-
Most commands accept `--config <path>` and `--provider <name>` to target a single provider. Run `agents <command> --help` for the definitive list.
15+
Provider-backed commands such as `plan`, `apply`, `models`, `session`, and `deployment` accept `--provider <name>` to target a single provider. `validate` is an offline whole-file check and does not accept a provider filter. Run `agents <command> --help` for the definitive option list.
1616

1717
## `agents init`
1818

@@ -30,7 +30,7 @@ Launch the local web UI (fetches `@openagentpack/playground` on demand) and open
3030

3131
## `agents validate`
3232

33-
Validate the configuration file offline — checks YAML shape and field validity without making API calls.
33+
Validate the whole configuration file offline — checks YAML shape and field validity without making API calls. This command does not accept `--provider`; use `plan --provider <name> --refresh false` when you want to inspect one provider's projected changes without contacting remote APIs.
3434

3535
## `agents plan`
3636

@@ -121,7 +121,7 @@ Manage scheduled / triggered deployments.
121121
|------------|-------------|
122122
| `deployment list` | List deployments tracked in state. |
123123
| `deployment get <name>` | Show a deployment's status and resolved bindings. |
124-
| `deployment run <name>` | Trigger a deployment run (native on Claude, emulated as a session on Bailian/Qoder/Volcengine Ark). |
124+
| `deployment run <name>` | Trigger a deployment run (native on Qoder/Claude, emulated as a session on Bailian/Volcengine Ark). |
125125

126126
## `agents models`
127127

0 commit comments

Comments
 (0)