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
Binary file added English/.gitbook/assets/image (1086).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 7 additions & 14 deletions English/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -751,21 +751,15 @@
* [Model Pricing List](ai-stack/model-as-a-service/model-pricing-list.md)
* [AI Gateway](ai-stack/ai-gateway/README.md)
* [What is AI Gateway?](ai-stack/ai-gateway/what-is-ai-gateway.md)
* [Get starting with AI Gateway](ai-stack/ai-gateway/get-starting-with-ai-gateway/README.md)
* [Initialize AI Gateway](ai-stack/ai-gateway/get-starting-with-ai-gateway/initialize-ai-gateway.md)
* [Sending Requests to AI Gateway](ai-stack/ai-gateway/get-starting-with-ai-gateway/sending-requests-to-ai-gateway.md)
* [Monitoring AI Gateway Activity](ai-stack/ai-gateway/get-starting-with-ai-gateway/monitoring-ai-gateway-activity.md)
* [AI Gateway](ai-stack/ai-gateway/ai-gateway/README.md)
* [Get Started with AI Gateway](ai-stack/ai-gateway/get-starting-with-ai-gateway/README.md)
* [Initialize AI Gateway](ai-stack/ai-gateway/ai-gateway/initialize-ai-gateway.md)
* [Working with Providers and Models](ai-stack/ai-gateway/ai-gateway/working-with-providers-and-models/README.md)
* [Model Providers](ai-stack/ai-gateway/ai-gateway/working-with-providers-and-models/model-providers.md)
* [Seft-host Models](ai-stack/ai-gateway/ai-gateway/working-with-providers-and-models/seft-host-models.md)
* [Sending Requests to AI Gateway](ai-stack/ai-gateway/ai-gateway/sending-requests-to-ai-gateway.md)
* [Working with Authentication Tokens](ai-stack/ai-gateway/ai-gateway/working-with-authentication-tokens.md)
* [Caching](ai-stack/ai-gateway/ai-gateway/caching.md)
* [Guardrails (Coming soon)](ai-stack/ai-gateway/ai-gateway/guardrails-coming-soon.md)
* [Rate Limit](ai-stack/ai-gateway/ai-gateway/rate-limit.md)
* [Monitoring AI Gateway Activity](ai-stack/ai-gateway/monitoring-ai-gateway-activity.md)
* [Monitoring AI Gateway Activity](ai-stack/ai-gateway/monitoring-ai-gateway-activity.md)
* [Working with Providers and Models](ai-stack/ai-gateway/ai-gateway/working-with-providers-and-models/README.md)
* [Model Providers](ai-stack/ai-gateway/ai-gateway/working-with-providers-and-models/model-providers.md)
* [Working with Authentication Tokens](ai-stack/ai-gateway/ai-gateway/working-with-authentication-tokens.md)
* [Caching](ai-stack/ai-gateway/ai-gateway/caching.md)
* [Rate Limit](ai-stack/ai-gateway/ai-gateway/rate-limit.md)
* [Security](ai-stack/ai-gateway/security.md)
* [Pricing](ai-stack/ai-gateway/pricing.md)
* [Token Plan](ai-stack/token-plan/README.md)
Expand All @@ -782,7 +776,6 @@
* [OpenCode](ai-stack/ai-coding/cli-tools/opencode.md)
* [GUI Tools](ai-stack/ai-coding/gui-tools/README.md)
* [Codex Desktop](ai-stack/ai-coding/gui-tools/codex-desktop.md)
* [GenAI Studio](ai-stack/genai-studio.md)
* [GreenNode AgentBase](ai-stack/agent-base/README.md)
* [Getting Started](ai-stack/agent-base/getting-started.md)
* [Manage AgentBase with the GreenNode CLI](ai-stack/agent-base/manage-agentbase-with-the-greennode-cli.md)
Expand Down
62 changes: 58 additions & 4 deletions English/ai-stack/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,61 @@
# AI Stack

GreenNode AI Stack is a comprehensive suite of AI infrastructure services designed to help you build, deploy, and manage AI applications and agents on the cloud.
## Overview

| Service | Description |
| --- | --- |
| [Agent Base](agent-base/README.md) | Infrastructure platform for deploying and managing AI Agents |
GreenNode provides a comprehensive AI platform that helps enterprises deploy, integrate, and operate Generative AI applications easily, securely, and efficiently. The GreenNode AI Stack is designed to be modular and flexible, optimized for both engineering teams and business leaders.

<figure><img src="../.gitbook/assets/image (1086).png" alt=""><figcaption></figcaption></figure>

***

## Core Components

#### 1. Flexible AI infrastructure with VKS

* **VKS (GreenNode Kubernetes Service)** is a fully managed Kubernetes service.
* Integrated GPU support, autoscaling, resource monitoring, and security.
* Optimized for AI workloads that require GPU, and equally suitable for deploying web applications, microservices, and large-scale backends.
* Lets enterprises deploy applications quickly without building and maintaining their own infrastructure.

#### 2. Vector Database as a service

* Supports PostgreSQL (**pgvector**) and **OpenSearch** as vector databases.
* Delivered as a **managed service** — no infrastructure to manage.
* Enables rapid deployment of **RAG (Retrieval-Augmented Generation)** architectures.
* Helps GenAI models understand and use enterprise data in context.

#### 3. Comprehensive AI Platform

* Provides an environment to **experiment (notebook)**, **fine-tune**, and run **inference** on AI models directly on GreenNode GPU infrastructure.
* Integrates with storage services such as **vStorage** to store training data, model registry, and outputs.
* **Fine-tune** capabilities are currently under development (coming soon).
* Lowers technical barriers and shortens time to deployment.

#### 4. vStorage – Efficient AI storage

* **vStorage** is an **S3-compatible object storage** service optimized for AI workloads.
* Suitable for storing training data, model checkpoints, model registry, and inference output.
* Integrates easily with components such as AI Platform, VKS, and popular training tools.

#### 5. AI Gateway – Centralized routing and monitoring

* A single access point for multiple AI models, with intelligent routing and caching to optimize performance and cost.
* Tracks access, generates audit logs, and monitors usage behavior through metrics and alerts.
* Integrates guardrails to control content and keep AI safe in production.

#### 6. Model-as-a-Service

* Provides access to a wide range of leading **GenAI models** such as GPT, Claude, Gemini, and DeepSeek through a single unified API.
* Includes both open-source models and models optimized for Vietnamese.
* The service is currently being finalized (coming soon).
* Shortens integration time so enterprises can experiment and bring AI into production quickly.

***

#### Core Value for Enterprises

* Accelerate the GenAI adoption journey without a dedicated in-house AI team.
* Remove infrastructure overhead and optimize AI operating costs.
* Strengthen control, security, and flexibility when integrating AI into digital products.

The GreenNode AI Stack is an ideal foundation for enterprises to build and scale GenAI applications safely, efficiently, and sustainably.
30 changes: 15 additions & 15 deletions English/ai-stack/agent-base/access-control/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

### What Is an Identity?

In AgentBase, an **Identity** is a named, platform-managed record that uniquely represents your agent within the organization. Think of it as the agent's "account" — the foundation on which everything else is built. An identity must exist before a Runtime can be created for that agent, and before any auth credentials can be retrieved.
In AgentBase, an **Identity** is a named, platform-managed record that uniquely represents your agent within the organization. Think of it as the agent's "account" the foundation on which everything else is built. An identity must exist before a Runtime can be created for that agent, and before any auth credentials can be retrieved.

**An identity has:**

Expand All @@ -21,7 +21,7 @@ In AgentBase, an **Identity** is a named, platform-managed record that uniquely

**Identity naming rules:**

* 3–50 characters
* 3–50 characters
* Alphanumeric, underscore `_`, and hyphen `-` only (`^[a-zA-Z0-9_-]+$`)
* Must be unique within the organization

Expand All @@ -31,20 +31,20 @@ An Identity is persistent and environment-agnostic. A Runtime is tied to a speci

```
Identity: my-order-agent (persistent)
│
├─── Runtime: my-order-agent-staging (environment-specific)
└─── Runtime: my-order-agent-prod (environment-specific)
├─── Runtime: my-order-agent-staging (environment-specific)
└─── Runtime: my-order-agent-prod (environment-specific)
```

### Outbound Authentication

When your agent calls external services (OpenAI, Google, Slack, internal APIs), it needs credentials. AgentBase's Auth system lets you store these credentials centrally and have them automatically delivered to your agent at runtime — without hardcoding them.
When your agent calls external services (OpenAI, Google, Slack, internal APIs), it needs credentials. AgentBase's Auth system lets you store these credentials centrally and have them automatically delivered to your agent at runtime without hardcoding them.

The auth system supports three credential types:

* **Static API Key** — A fixed string (such as an API key) associated with an identity. Use when the external service issues a long-lived API key and you want centralized management.
* **Delegated API Key** — A credential that is scoped and potentially short-lived, useful for multi-tenant scenarios where different agents should get different scoped keys.
* **OAuth2 Provider** — For services that use OAuth2 (Google, Slack, and others). AgentBase stores the client credentials and refresh token, and handles token refresh automatically.
* **Static API Key** A fixed string (such as an API key) associated with an identity. Use when the external service issues a long-lived API key and you want centralized management.
* **Delegated API Key** A credential that is scoped and potentially short-lived, useful for multi-tenant scenarios where different agents should get different scoped keys.
* **OAuth2 Provider** For services that use OAuth2 (Google, Slack, and others). AgentBase stores the client credentials and refresh token, and handles token refresh automatically.

| Provider Type | Use Case | Storage |
| --------------------- | -------------------------------------------------- | ------------------------- |
Expand All @@ -65,7 +65,7 @@ The auth system supports three credential types:
1. Open https://aiplatform.console.greennode.ai/access-control
2. Click **"Create Identity"**
3. Fill in:
* **Name** (required): e.g., `my-order-agent` — lowercase, alphanumeric and hyphens
* **Name** (required): e.g., `my-order-agent` lowercase, alphanumeric and hyphens
* **Description** (optional): e.g., `Handles order inquiries`
* **Allowed Return URLs** (optional): OAuth2 callback URLs for this identity
4. Click **Create**
Expand Down Expand Up @@ -98,7 +98,7 @@ The auth system supports three credential types:

### RESTful API

> **Prerequisite:** All API examples below use `$TOKEN` — an IAM bearer token. See [Configure Authentication](../getting-started.md#configure-authentication) for how to obtain it.
> **Prerequisite:** All API examples below use `$TOKEN` an IAM bearer token. See [Configure Authentication](../getting-started.md#configure-authentication) for how to obtain it.

#### Create an Identity

Expand Down Expand Up @@ -126,7 +126,7 @@ curl -s -X POST "https://agentbase.api.vngcloud.vn/identity/api/v1/agent-identit
}
```

**Error: 409 Conflict** — name already exists. Choose a different name or use the existing identity.
**Error: 409 Conflict** name already exists. Choose a different name or use the existing identity.

#### List Identities

Expand Down Expand Up @@ -264,7 +264,7 @@ An **agent identity** must exist before creating auth providers. If you haven't
1. Open https://aiplatform.console.greennode.ai/access-control → **Auth Providers**
2. Click **"Create Provider"** → select **"OAuth2"**
3. Fill in: **Name**, **Client ID**, **Client Secret**, **Authorization URL**, **Token URL**
4. Click **Create** — the response includes a **Callback URL** to register in your OAuth2 app
4. Click **Create** the response includes a **Callback URL** to register in your OAuth2 app

![1774593811794](../../../.gitbook/assets/1774593811794.png)

Expand Down Expand Up @@ -367,7 +367,7 @@ curl -s -X POST "https://agentbase.api.vngcloud.vn/identity/api/v1/outbound-auth
}' | jq .
```

**Response includes `callbackUrl` — register this in your OAuth2 app.**
**Response includes `callbackUrl` register this in your OAuth2 app.**

**List:**

Expand Down Expand Up @@ -541,7 +541,7 @@ def handler(payload: dict, context: RequestContext, google_token: str) -> dict:
| 401 Unauthorized | Expired or invalid IAM token | Re-obtain token with valid credentials |
| 403 Forbidden | Service account lacks permissions | Attach `AgentBaseFullAccess` at https://iam.console.greennode.ai |
| 409 Conflict | Identity or provider name already exists | Choose a different name |
| Name validation error | Name doesn't match `^[a-zA-Z0-9_-]+$` | Use only alphanumeric, underscore, and hyphen. 3–50 chars |
| Name validation error | Name doesn't match `^[a-zA-Z0-9_-]+$` | Use only alphanumeric, underscore, and hyphen. 3–50 chars |
| 404 Not Found | Provider name does not exist | Verify with a `list` operation |
| Agent can't retrieve credential | Identity name missing | Ensure `GREENNODE_AGENT_IDENTITY` env var is set in the runtime |

Expand Down
18 changes: 9 additions & 9 deletions English/ai-stack/agent-base/agent-runtime/logs-and-metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Fetch container logs from all replicas of a runtime. Uses offset-based paginatio

### RESTful API

> **Prerequisite:** All API examples below use `$TOKEN` — an IAM bearer token. See [Configure Authentication](../getting-started.md#configure-authentication) for how to obtain it.
> **Prerequisite:** All API examples below use `$TOKEN` an IAM bearer token. See [Configure Authentication](../getting-started.md#configure-authentication) for how to obtain it.

```bash
RUNTIME_ID="<your-runtime-id>"
Expand Down Expand Up @@ -153,7 +153,7 @@ curl -s "https://agentbase.api.vngcloud.vn/runtime/agent-runtimes/$RUNTIME_ID/en

### Pseudo-Tailing (Poll Pattern)

Log streaming is not supported — use polling to approximate tailing:
Log streaming is not supported use polling to approximate tailing:

```bash
OFFSET=0
Expand Down Expand Up @@ -194,18 +194,18 @@ done

| CPU | RAM | Diagnosis |
| --------- | ------ | ----------------------------------------------------------------------------- |
| High | Normal | CPU-bound workload — scale up or optimize |
| Normal | High | Memory leak or large data structures — scale up or fix leak |
| Both high | — | Resource exhaustion — scale up flavor |
| Both low | — | External bottleneck (LLM API latency, network) — add request timing in logs |
| High | Normal | CPU-bound workload scale up or optimize |
| Normal | High | Memory leak or large data structures scale up or fix leak |
| Both high | | Resource exhaustion scale up flavor |
| Both low | | External bottleneck (LLM API latency, network) add request timing in logs |

***

## What's Supported

* **Log time range filter** — Filter logs by a specific time window (start/end timestamp), so you can narrow down exactly when an issue occurred without fetching the entire log history.
* **Log keyword search** — Search logs by keyword or phrase directly in the query, returning only matching entries without needing to grep locally after fetching.
* **Historical metrics** — Query CPU and RAM usage over a time range, not just the current point-in-time snapshot. Useful for spotting resource trends, spikes, and patterns leading up to an incident.
* **Log time range filter** Filter logs by a specific time window (start/end timestamp), so you can narrow down exactly when an issue occurred without fetching the entire log history.
* **Log keyword search** Search logs by keyword or phrase directly in the query, returning only matching entries without needing to grep locally after fetching.
* **Historical metrics** Query CPU and RAM usage over a time range, not just the current point-in-time snapshot. Useful for spotting resource trends, spikes, and patterns leading up to an incident.

***

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Deploy & Manage OpenClaw

OpenClaw 1-Click lets you deploy a personal AI Agent on GreenNode Agentbase in 40–60 seconds, automatically connected to GreenNode MaaS with no manual configuration required.
OpenClaw 1-Click lets you deploy a personal AI Agent on GreenNode Agentbase in 40–60 seconds, automatically connected to GreenNode MaaS with no manual configuration required.

For an overview of concepts, architecture, and deployment options, see [OpenClaw 1-Click](openclaw-1-click.md).

Expand All @@ -27,14 +27,14 @@ On the Agent Marketplace, find the **OpenClaw Featured Card** or click **"Deploy

The configuration screen has 3 sections:

**Section 1 — AI Source**
**Section 1 AI Source**

Select the AI source for your OpenClaw instance:

| Option | Description | Requirement |
| ------------------------------- | ------------------------------------------------------ | -------------------------- |
| **GreenNode MaaS** (default) | Automatically connects to GreenNode Model-as-a-Service | GreenNode account required |
| **BYOK — Bring Your Own Key** | Use an API key from an external provider | Valid API key required |
| **BYOK Bring Your Own Key** | Use an API key from an external provider | Valid API key required |

When selecting **BYOK**, provide the following additional details:

Expand All @@ -46,14 +46,14 @@ When selecting **BYOK**, provide the following additional details:
**BYOK note:** If the API key is invalid or expired, the system will show an inline error and block submission. Double-check your key before submitting.
{% endhint %}

**Section 2 — Instance Configuration**
**Section 2 Instance Configuration**

| Field | Description | Notes |
| ----------------- | -------------------------------------------- | ---------------------------------------------------------------------- |
| **OpenClaw Name** | Instance identifier | Auto-filled as `openclaw/{username}`, cannot be changed after creation |
| **Flavor** | Compute resource configuration (vCPU × RAM) | Default: `2×4`. Options include `4×8`, `8×16`... |

**Section 3 — Channel Configuration (Optional)**
**Section 3 Channel Configuration (Optional)**

Connect OpenClaw to a messaging platform so you can chat right after deployment.

Expand All @@ -65,7 +65,7 @@ Connect OpenClaw to a messaging platform so you can chat right after deployment.

Once all fields are filled, click **"Start Setup"** to begin provisioning.

#### Step 2: Provisioning — Setting Up Your Workspace
#### Step 2: Provisioning Setting Up Your Workspace

The **"Setting Up Your Workspace"** screen displays a loading spinner while the system automatically prepares your environment. Once complete, you receive a **Gateway Token** and the **OpenClaw web admin URL** to log in and start using immediately.

Expand Down Expand Up @@ -101,7 +101,7 @@ Each instance in the list shows: instance name, status, AI model in use, version

1. In My Agents, find the instance you want to access.
2. Click **"Open"** on the instance.
3. You are redirected straight to the OpenClaw web admin — no wizard or re-provisioning required.
3. You are redirected straight to the OpenClaw web admin no wizard or re-provisioning required.

### Stop an Instance

Expand Down
Loading
Loading