Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ OpenAgentCore is protocol-first and modular. Core orchestrates operations that p
| Web and operators–Core (`/core/v1`) | Route annotations in `services/core/internal/api/`; `make openapi` generates `contracts/agents-api/core.openapi.yaml` | [Core administration API](contracts/agents-api/admin-api.md) |
| Nodes and daemons–Core (`/api/v1` HTTP routes; the node and daemon wire protocols are separate rows) | Route annotations in `services/core/internal/api/`; `make openapi` generates `contracts/agents-api/runtime.openapi.yaml` | [Machine connection API](contracts/agents-api/machine-api.md) |
| Core–Sandbox Provider | `services/core/internal/sandbox/sandbox_provider.go` | [Sandbox Provider guide](docs/sandbox-provider.md) |
| Core–sandbox node | `services/core/internal/sandbox/node/wire.go` | [Node generation protocol](contracts/agents-api/node-generation-protocol.md) |
| Core–sandbox node | `services/core/internal/sandbox/node/wire.go` | [Sandbox node protocol](contracts/agents-api/node-generation-protocol.md) |
| Provider–Runtime startup | `internal/runtimebootstrap/bootstrap.go` | [Runtime bootstrap](docs/runtime-bootstrap.md) |
| Core–Runtime wire | `internal/agentdaemon/proto/` | [Core–Runtime protocol](docs/runtime-protocol.md) |
| Runtime–Harness | `apps/daemon/internal/agent/harness.go` | [Harness onboarding](contracts/agents-api/harness-onboarding.md) |
Expand Down
108 changes: 49 additions & 59 deletions CONTRIBUTING.md

Large diffs are not rendered by default.

28 changes: 10 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,10 @@ An open-source, self-hosted implementation of the OpenAI Agents API with multipl

OpenAgentCore runs AI agents on your own infrastructure behind the OpenAI Agents API.

- **Same API as OpenAI.** Point the official OpenAI SDK, or plain HTTP, at your
installation. No new client to learn.
- **Your choice of agent.** Each Session runs a native harness: Codex, Claude Code or
MiniMax Code, with the model provider you configure.
- **Your choice of machine.** Agents work in a managed sandbox (Docker, microsandbox
or E2B), or on your own Linux, macOS or Windows machine.
- **Every part is replaceable.** Sandboxes, harnesses and model providers plug in
through defined protocols.
- **Same API as OpenAI.** Point the official OpenAI SDK, or plain HTTP, at your installation. No new client to learn.
- **Your choice of agent.** Each Session runs a native harness: Codex, Claude Code or MiniMax Code, with the model provider you configure.
- **Your choice of machine.** Agents work in a managed sandbox (Docker, microsandbox or E2B), or on your own Linux, macOS or Windows machine.
- **Every part is replaceable.** Sandboxes, harnesses and model providers plug in through defined protocols.

## Screenshots

Expand All @@ -41,28 +37,25 @@ curl -fsSL https://github.com/MiniMax-AI/OpenAgentCore/releases/latest/download/

Then:

1. **Sign in to Web**, the admin console, with the Core key the installer created.
1. **Sign in to Web**, the admin console, with the Core key the installer created, and **configure the domain and HTTPS**.
2. **Set a default model** and **issue a Project API key**.
3. **Add execution capacity:** a node, E2B, or your own machine.
4. **[Run your first Session](docs/getting-started/quickstart.md)** with the OpenAI SDK.

The [installation guide](docs/getting-started/install.md) covers each step, HTTPS
and a quick local trial. Listen addresses, ports and other options: [installation options](docs/getting-started/install-options.md).
The [installation guide](docs/getting-started/install.md) covers each step, HTTPS and a quick local trial. Listen addresses, ports and other options: [installation options](docs/getting-started/install-options.md).

## How it fits together

![OpenAgentCore architecture](docs/assets/architecture.png)

Core exposes two APIs:
Applications and operators use these Core APIs:

| API | Path | Used by |
| --- | --- | --- |
| **[Agents API](docs/api/public-agent-api.md)** | `/v1` | Your applications. Same protocol as [OpenAI's Agents API](https://developers.openai.com/api/docs/guides/agents-api/overview) |
| **[Core API](contracts/agents-api/admin-api.md)** | `/core/v1` | Operators, through Web |

Core keeps all state. The Runtime runs the chosen harness inside the Environment.
Each connection is a defined protocol, so any part can be replaced on its own. See
the [architecture guide](docs/architecture.md).
Core keeps durable execution state. The Runtime runs the chosen harness inside the Environment. Each connection is a defined protocol, so any part can be replaced on its own. See the [architecture guide](docs/architecture.md).

## Documentation

Expand All @@ -72,9 +65,8 @@ the [architecture guide](docs/architecture.md).
| Build an application on the API | [Quickstart](docs/getting-started/quickstart.md), then the [Agents API guide](docs/api/public-agent-api.md) |
| See a complete application | [Examples](docs/examples.md) |
| Run agents on my own machine | [Self-hosted execution](docs/getting-started/self-hosted.md) |
| Check verified Runtime capabilities and limits | [Harness capabilities](contracts/agents-api/harness-capabilities.md) |
| Check Harness capabilities and limits | [Harness capabilities](contracts/agents-api/harness-capabilities.md) |
| Understand the design | [Architecture](docs/architecture.md) |
| Add a sandbox, harness or other component | [Developer guide](docs/development.md) |

All pages: [documentation index](docs/getting-started/README.md). Before changing
code, read the [contributor rules](CONTRIBUTING.md).
All pages: [documentation index](docs/getting-started/README.md). Before changing code, read the [contributor rules](CONTRIBUTING.md).
15 changes: 6 additions & 9 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,8 @@ OpenAI Agents API 的开源实现,支持多种原生执行引擎,可部署
OpenAgentCore 在你自己的基础设施上运行 AI Agent,对外提供 OpenAI Agents API。

- **与 OpenAI 相同的 API。** 官方 OpenAI SDK 或直接 HTTP 调用,改一下地址即可,无需学习新客户端。
- **自选 Agent。** 每个 Session 运行一个原生 Harness:Codex、Claude Code 或 MiniMax Code,
使用你配置的模型供应商。
- **自选机器。** Agent 可以在托管沙箱(Docker、microsandbox 或 E2B)里工作,
也可以在你自己的 Linux、macOS 或 Windows 机器上工作。
- **自选 Agent。** 每个 Session 运行一个原生 Harness:Codex、Claude Code 或 MiniMax Code, 使用你配置的模型供应商。
- **自选机器。** Agent 可以在托管沙箱(Docker、microsandbox 或 E2B)里工作, 也可以在你自己的 Linux、macOS 或 Windows 机器上工作。
- **每个部件都可替换。** 沙箱、Harness 和模型供应商都通过既定协议接入。

## 界面预览
Expand All @@ -39,7 +37,7 @@ curl -fsSL https://github.com/MiniMax-AI/OpenAgentCore/releases/latest/download/

然后:

1. 用安装器生成的 Core key **登录 Web**(管理控制台)。
1. 用安装器生成的 Core key **登录 Web**(管理控制台),并**配置域名和 HTTPS**。
2. **设置默认模型**,并**签发 Project API key**。
3. **添加执行资源**:节点、E2B,或你自己的机器。
4. 用 OpenAI SDK **[运行第一个 Session](docs/getting-started/quickstart.md)**。
Expand All @@ -50,15 +48,14 @@ curl -fsSL https://github.com/MiniMax-AI/OpenAgentCore/releases/latest/download/

![OpenAgentCore 架构](docs/assets/architecture.png)

Core 对外提供两组 API:
应用和管理员使用以下 Core API:

| API | 路径 | 调用方 |
| --- | --- | --- |
| **[Agents API](docs/api/public-agent-api.md)** | `/v1` | 你的应用,与 [OpenAI 的 Agents API](https://developers.openai.com/api/docs/guides/agents-api/overview) 协议一致 |
| **[Core API](contracts/agents-api/admin-api.md)** | `/core/v1` | 管理员,通过 Web 调用 |

所有状态都由 Core 保存;Runtime 在 Environment 中运行所选 Harness。各部件之间都通过既定协议连接,
任何一个都可以单独替换。详见[架构说明](docs/architecture.md)。
持久化执行状态由 Core 保存;Runtime 在 Environment 中运行所选 Harness。各部件之间都通过既定协议连接, 任何一个都可以单独替换。详见[架构说明](docs/architecture.md)。

## 文档

Expand All @@ -68,7 +65,7 @@ Core 对外提供两组 API:
| 基于 API 开发应用 | [快速开始](docs/getting-started/quickstart.md),然后看 [Agents API 指南](docs/api/public-agent-api.md) |
| 看一个完整的应用 | [示例](docs/examples.md) |
| 在自己的机器上运行 Agent | [自托管执行](docs/getting-started/self-hosted.md) |
| 查看 Runtime 能力和验收范围 | [Harness 能力](contracts/agents-api/harness-capabilities.md) |
| 查看 Harness 能力和限制 | [Harness 能力](contracts/agents-api/harness-capabilities.md) |
| 了解设计 | [架构说明](docs/architecture.md) |
| 接入新的沙箱、Harness 或其他组件 | [开发指南](docs/development.md) |

Expand Down
11 changes: 2 additions & 9 deletions apps/web/.impeccable/surfaces/src-app-tsx.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,10 @@ related_targets: ["src/ConsoleApp.tsx"]

# Administrator console (operate)

Scope: the signed-in console shell and every page behind it, including Getting started on the Overview and the optional console tour. Visitor mode: Operate.
Audience: the administrator of one OpenAgentCore deployment. Task: judge health, capacity, usage and failures; inspect and delete project assets; manage projects, keys, nodes and each harness's default model.
Constraints: Web API only (`/core/v1`); missing data stays visibly missing; no small print, explanations live in help tips; API terms stay English in Chinese copy; zh-CN and English, light and dark.
Scope: the signed-in console shell and every page behind it, including Getting started on the Overview and the optional console tour. Visitor mode: Operate. Audience: the administrator of one OpenAgentCore deployment. Task: judge health, capacity, usage and failures; inspect and delete project assets; manage projects, keys, nodes and each harness's default model. Constraints: Web API only (`/core/v1`); missing data stays visibly missing; no small print, explanations live in help tips; API terms stay English in Chinese copy; zh-CN and English, light and dark.

Information architecture: Monitor (Overview, Core metrics, Agent metrics, Sandbox metrics, Session log) · Resources (Agents, Environment templates, Skills, Files, Vaults) · Platform (Projects and keys, Nodes, System).

## Direction contract

THESIS: One calm instrument panel for a whole deployment; every screen speaks one component language so the administrator reads state, not layout. Refuses the assembled dashboard of mismatched widgets and loading spinners.
OWN-WORLD: Beautiful UI's foundation: cool near-white canvas, white cards drawn by a hairline ring, neutral ink ramp, 8px-radius buttons (ink primary; only status badges are pills), Inter with CJK system fallback, tabular numerals, semantic tints as condiment; Parsar indigo as the only accent, for selection, links and data.
STORY: The administrator lands on health, sees what needs attention, drills into a project, Session or node, and acts (delete, issue, revoke) without waiting on a spinner.
FIRST VIEWPORT: Page header with title, filters and refresh on one line; KPI strip; the page's primary card (chart grid, table or topology); nothing above the fold is a loader.
FORM: User-pinned world (Beautiful UI + Parsar indigo, 2026-09-24); concept roll skipped because a user-pinned direction beats the roll.
FINISH: unreviewed and undocumented is unfinished; this build ends with the finish review, the verdict, DESIGN.md, and every shipping raster carrying its provenance
THESIS: One calm instrument panel for a whole deployment; every screen speaks one component language so the administrator reads state, not layout. Refuses the assembled dashboard of mismatched widgets and loading spinners. OWN-WORLD: Beautiful UI's foundation: cool near-white canvas, white cards drawn by a hairline ring, neutral ink ramp, 8px-radius buttons (ink primary; only status badges are pills), Inter with CJK system fallback, tabular numerals, semantic tints as condiment; Parsar indigo as the only accent, for selection, links and data. STORY: The administrator lands on health, sees what needs attention, drills into a project, Session or node, and acts (delete, issue, revoke) without waiting on a spinner. FIRST VIEWPORT: Page header with title, filters and refresh on one line; KPI strip; the page's primary card (chart grid, table or topology); nothing above the fold is a loader. FORM: User-pinned world (Beautiful UI + Parsar indigo, 2026-09-24); concept roll skipped because a user-pinned direction beats the roll. FINISH: unreviewed and undocumented is unfinished; this build ends with the finish review, the verdict, DESIGN.md, and every shipping raster carrying its provenance
2 changes: 1 addition & 1 deletion apps/web/DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ The data contract is part of the look. Core reports only what it observes, so th
A restrained neutral ledger with one indigo voice, three signal colours and a separate categorical palette that belongs to multi-series data alone.

### Primary
- **OpenAgentCore Indigo** (accent): keyboard focus outlines and rings, the focus ring of fields, the text caret and the text selection wash. Deepens to **Pressed Indigo** (accent-emphasis) for hovered name links. It is the console's only accent; the public landing (`site/`) uses its own violet, `#5a43c7`.
- **OpenAgentCore Indigo** (accent): keyboard focus outlines and rings, the focus ring of fields, the text caret and the text selection wash. Deepens to **Pressed Indigo** (accent-emphasis) for hovered name links. It is the console's only accent.
- **Data** (`--data`, the same colour as Series 1, a lighter indigo): the one measured series of a chart that has only one, such as Sessions created per hour on Overview, drawn as a tint (62% into the surface) rather than full strength.

### Neutral
Expand Down
2 changes: 1 addition & 1 deletion apps/web/PRODUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ The console runs beside the administrator's own Core, with execution, files and
## Brand Commitments

- Product name: OpenAgentCore. OpenAgentCore mark assets in `apps/web/public/`.
- Keep the OpenAgentCore visual identity shared with the public landing (`site/`): neutral grays and a quiet indigo accent. The console uses Inter and Geist Mono on Beautiful UI's foundation tokens and structure; `DESIGN.md` records the system.
- Use the OpenAgentCore visual identity: neutral grays and a quiet indigo accent. The console uses Inter and Geist Mono on Beautiful UI's foundation tokens and structure; `DESIGN.md` records the system.

## Evidence on Hand

Expand Down
2 changes: 1 addition & 1 deletion contracts/agents-api/admin-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Paths are relative to `/core/v1`.

## Projects and keys

A Project owns one execution tenant; its keys share its principal and assets ([Projects own assets](../../docs/design-principles.md#projects-own-assets)). Web's **Projects and keys** page uses these routes.
A Project owns one execution tenant; its keys share its principal and assets ([Projects own assets](../../docs/concepts.md#projects-own-assets)). Web's **Projects and keys** page uses these routes.

| Operation | Route | Result |
| --- | --- | --- |
Expand Down
2 changes: 1 addition & 1 deletion contracts/agents-api/environments.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Related owners:
- [Executor credentials](environment-executor-credentials.md): enrollment, the installation grant and connection status of a `self_hosted` machine.
- [Sandbox deployment](sandbox-deployment.md): which Sandbox Provider (E2B, Docker or microsandbox) hosts `openai_hosted` Environments.
- [Core–Runtime protocol](../../docs/runtime-protocol.md): the `runtime_prepare` transfer and every other wire message.
- [Runtime and outer isolation](../../docs/design-principles.md#runtime-and-outer-isolation): the daemon runs tools with its launching user's permissions; isolation comes from the outer Environment.
- [Runtime and outer isolation](../../docs/concepts.md#runtime-and-outer-isolation): the daemon runs tools with its launching user's permissions; isolation comes from the outer Environment.

## Resources and states

Expand Down
2 changes: 1 addition & 1 deletion deploy/install/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,4 @@ The Core and node installers share one resolver for these identities. It confirm

## Validation

`make check-distribution` covers the production proxy, the installation rules, release metadata and native catalog assembly, including bundle manifests larger than Node's default subprocess buffer (catalog assembly reads up to 64 MiB). Diagnostics report observed service health, never fabricated model or environment readiness. Runtime observations belong to Core; do not add monitoring or lifecycle tracking to the installer or the landing site.
`make check-distribution` covers the production proxy, the installation rules, release metadata and native catalog assembly, including bundle manifests larger than Node's default subprocess buffer (catalog assembly reads up to 64 MiB). Diagnostics report observed service health, never fabricated model or environment readiness. Runtime observations belong to Core; do not add monitoring or lifecycle tracking to the installer.
2 changes: 1 addition & 1 deletion docs/api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Core serves three namespaces. Each has one kind of caller and its own credential
| `/core/v1` | Web's console server and operator scripts | [Core key](../getting-started/operations.md#core-key) | Installation facts, Projects and keys, resource reads and deletion, Session archive, executor credentials, default models, metrics, audit, sandbox deployment and nodes | [Core administration API](../../contracts/agents-api/admin-api.md) |
| `/api/v1` | Nodes, Runtime daemons, self-hosted executors and their installers | Machine credentials: node enrollment tokens and node credentials, installation grants, executor credentials, and daemon credentials. Each works only on its own routes | Machine bootstrap and connections under `/api/v1/sandbox-node/*` and `/api/v1/agent-daemon/*`, including WebSockets, and the public native installer downloads | [Machine connection API](../../contracts/agents-api/machine-api.md) |

A credential used in another namespace gets 401: a Project API key on `/core/v1` or `/api/v1`, the Core key on `/v1` or `/api/v1`. How Projects and keys behave is in [Projects own assets](../design-principles.md#projects-own-assets).
A credential used in another namespace gets 401: a Project API key on `/core/v1` or `/api/v1`, the Core key on `/v1` or `/api/v1`. How Projects and keys behave is in [Projects own assets](../concepts.md#projects-own-assets).

**Routing.** The reverse proxy sends `/v1` and `/api/v1` to Core and everything else to Web ([proxy setup](../getting-started/install-options.md#https-and-the-reverse-proxy)). Browsers reach `/core/v1` only through Web's console server, which adds the Core key after sign-in and answers 404 for `/v1` and `/api/v1` ([console server](../web/console-server.md)). Operator scripts call `/core/v1` on Core's loopback port ([script the Core API](../getting-started/operations.md#script-the-core-api)).

Expand Down
Loading
Loading