基于 Rowboat 快速构建多智能体(Multi-Agent)工作流

向量数据库大模型容器
 Hello folks,我是 Luga,今天我们来聊一下人工智能应用场景 - 构建高效、灵活的计算架构的多智能体工作流。


 

在 AI 驱动的自动化浪潮中,多智能体(Multi-Agent)系统正成为企业实现高效协作和智能化转型的关键。然而,构建一个多智能体工作流往往需要复杂的开发流程和高昂的成本,让许多团队望而却步。

 想象一下,如果我们只需描述一个简单的想法,就能让 AI 在几分钟内生成一个高效的多智能体工作流,自动处理从客户服务到物流协调的各种任务?Rowboat 正是这样一款颠覆性的工具!


 

Rowboat 不仅能将我们的创意迅速转化为可运行的工作流,还通过智能化的代理协作和灵活的集成方式,为各行各业带来前所未有的效率提升。无论是打造一个食品配送的智能助手,还是优化跨国电商的订单处理,Rowboat 都能让多智能体协作变得简单、高效且触手可及 ……

01

什么是 Rowboat 以及它能够做什么 ?

作为一款革命性的 AI 工具,

Rowboat 旨在帮助用户快速构建多智能体(Multi-Agent)工作流,轻松实现复杂的自动化任务。无论我们是希望打造一个智能客服系统,还是需要协调多个代理完成企业级工作流,Rowboat 都能通过其直观的设计和强大的技术支持,让我们的想法在几分钟内变为现实。

 Rowboat 的 AI 助手基于先进的自然语言处理(NLP)和多智能体协作技术,能够理解复杂需求并生成高度定制化的工作流。生成的代理不仅功能明确,还能通过动态通信机制(如 HTTP 或消息队列)实现高效协作。

picture.image

 我们以食品配送场景为例,假设作为一家食品配送公司的技术负责人,我们需要一个智能助手来处理配送状态查询和遗漏物品的申诉。我们只需输入需求:“为一家食品配送公司构建一个智能助手,负责处理配送状态和遗漏物品问题,并包含必要的工具。” Rowboat 的 Copilot 将迅速分析需求,自动生成一个多智能体工作流:

 1、配送状态代理(Agent 1):通过 API 调用实时查询物流系统,返回配送状态(如“已送达”或“配送中”)。


 2、遗漏物品申诉代理(Agent 2):接收客户申诉,调用订单数据库核查物品清单,并生成申诉报告,提交给客服团队。


 3、工具支持:Copilot 会自动集成必要的工具,如物流查询 API、订单数据库接口和通知系统,确保工作流的无缝运行。



 那么,在上述场景中,配送状态代理可以在 0.5 秒内返回查询结果,申诉代理则能在 1 秒内完成订单核查,整体响应时间远低于人工处理。

02

Rowboat 技术实现解析

 作为由 OpenAI 的 Agents SDK 提供技术支持,Rowboat 这一 SDK 为多智能体系统的开发提供了强大的基础。


 Agents SDK 包含了智能代理的通信协议、任务调度机制和动态协作工具,确保 Rowboat 能够快速构建和运行多智能体工作流。例如,Agents SDK 的任务调度器可以在 0.1 秒内完成代理间的任务分配,协作效率远超传统系统。


 得益于 OpenAI 的技术支持,Rowboat 成为构建多智能体系统的最快工具之一,具体体现在如下几个层面:


 1、快速构建:从创意到工作流生成,整个过程仅需 3-5 分钟。例如,构建一个包含 5 个代理的客服系统(如订单查询、退货处理、通知发送)只需 4 分钟。


 2、高可靠性:Rowboat 的工作流经过严格测试,运行稳定性达 99.9%,即使在高负载场景下也能保持流畅运行。


 3、可扩展性:用户可以随时添加新代理或工具,扩展工作流功能。例如,在食品配送系统中,后期随时可以添加一个“优惠券发放代理”,而无需修改现有工作流。

03

Rowboat 使用场景解析

 Rowboat 提供了便捷的集成方式,支持通过 HTTP API 或 Python SDK 将生成的多智能体工作流嵌入到我们所构建的应用程序中:


 1、获取项目 ID 和 API 密钥:


在 Rowboat 的设置页面中,找到所创建的工作流项目,复制其项目 ID 和自动生成的 API 密钥。例如,项目 ID 可能是 proj\_123456,API 密钥可能是 sk\_abcdef1234567890。


 2、API 集成:


使用 HTTP API 调用 Rowboat 的端点,触发多智能体工作流。例如,通过以下 HTTP 请求调用配送状态查询代理:
  
POST https://api.rowboat.ai/v1/projects/proj_123456/execute  
Authorization: Bearer sk_abcdef1234567890  
Content-Type: application/json  
{  
  "agent": "delivery_status_agent",  
  "input": { "order_id": "ORD12345" }  
}
 上述请求返回结果可能为:


 {"status": "delivered", "timestamp": "2025-04-27T10:00:00Z"}3、Python SDK 集成:


 此外,Rowboat 还提供了 Python SDK,方便开发者在代码中调用工作流。具体实现可参考如下:
  
from rowboat_sdk import RowboatClient  
  
client = RowboatClient(project_id="proj_123456", api_key="sk_abcdef1234567890")  
response = client.execute(agent="delivery_status_agent", input={"order_id": "ORD12345"})  
print(response)  # 输出:{'status': 'delivered', 'timestamp': '2025-04-27T10:00:00Z'}
 Rowboat 的 API 和 SDK 设计注重简单性和高效性,支持高并发调用(每秒处理 1000 次请求)和低延迟响应(平均延迟 0.3 秒)。


  此外,Rowboat 提供详细的错误日志和监控工具,帮助开发者快速调试和优化工作流。例如,若 API 调用失败,系统会返回详细的错误信息,如 {"error": "Invalid order\_id", "code": 400},便于开发者定位问题。



  以下为简单的安装部署,具体可参考如下步骤所示:
  
[lugalee@labs home ]% git clone https://github.com/rowboatlabs/rowboat.git  
Cloning into 'rowboat'...  
remote: Enumerating objects: 4582, done.  
remote: Counting objects: 100% (1503/1503), done.  
remote: Compressing objects: 100% (493/493), done.  
remote: Total 4582 (delta 1087), reused 1021 (delta 1010), pack-reused 3079 (from 2)  
Receiving objects: 100% (4582/4582), 13.86 MiB | 634.00 KiB/s, done.  
Resolving deltas: 100% (2947/2947), done.
  
[lugalee@labs home ]% cd rowboat   
[lugalee@labs rowboat] % docker-compose up --build  
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AGENTS_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "COPILOT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "GOOGLE_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AWS_ACCESS_KEY_ID" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AWS_SECRET_ACCESS_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "RAG_UPLOADS_S3_BUCKET" variable is not set. Defaulting to a blank string.   
WARN[0000] The "RAG_UPLOADS_S3_REGION" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "FIRECRAWL_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_AUTH" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AGENTS_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "COPILOT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_RAG" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_RAG_UPLOADS" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AWS_ACCESS_KEY_ID" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AWS_SECRET_ACCESS_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "RAG_UPLOADS_S3_BUCKET" variable is not set. Defaulting to a blank string.   
WARN[0000] The "RAG_UPLOADS_S3_REGION" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_RAG_SCRAPING" variable is not set. Defaulting to a blank string.   
WARN[0000] The "FIRECRAWL_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_CHAT_WIDGET" variable is not set. Defaulting to a blank string. 
  
[lugalee@labs rowboat ]% docker search  python:3.12-slim  
NAME                      DESCRIPTION                                     STARS     OFFICIAL  
python                    Python is an interpreted, interactive, objec…   10078     [OK]  
circleci/python           Python is an interpreted, interactive, objec…   103         
cimg/python                                                               23          
bitnami/python            Bitnami container image for Python              30          
demisto/python            The Demisto base python image                   5           
okteto/python                                                             0           
ubuntu/python             A chiselled Ubuntu rock with the Python runt…   22          
paketobuildpacks/python                                                   0           
chainguard/python         Build, ship and run secure software with Cha…   4           
intel/python                                                              0           
corpusops/python          https://github.com/corpusops/docker-images/     1           
stagex/python             High-level scripting language                   0           
rootpublic/python                                                         0           
vulhub/python                                                             1           
linuxserver/python                                                        0           
clarinpl/python                                                           0           
koxudaxi/python           Dockerfiles for CPython of lysnikolaou's tag…   0           
dtcenter/python           Necessary Python3 packages for plotting GRIB…   1           
openeuler/python                                                          0           
nanozoo/python                                                            0           
python/docker-bpo         Docker image for local development of http:/…   0           
python/bpo-patroni                                                        0           
python/bpo-builder                                                        0           
appsvc/python                                                             3           
saagie/python             Repo for python jobs                            0           
lugalee@labs rowboat % docker pull  python:3.12-slim  
Error response from daemon: Get "https://registry-1.docker.io/v2/library/python/manifests/sha256:85824326bc4ae27a1abb5bc0dd9e08847aa5fe73d8afb593b1b45b7cb4180f57": EOF  
lugalee@labs rowboat % docker pull  python:3.12-slim  
3.12-slim: Pulling from library/python  
16c9c4a8e9ee: Pull complete   
a7d9a0ac6293: Pull complete   
426290db1573: Pull complete   
e8b685ab0b21: Pull complete   
Digest: sha256:85824326bc4ae27a1abb5bc0dd9e08847aa5fe73d8afb593b1b45b7cb4180f57  
Status: Downloaded newer image for python:3.12-slim  
docker.io/library/python:3.12-slim  
WARN[0000] The "CHAT_WIDGET_SESSION_JWT_SECRET" variable is not set. Defaulting to a blank string.   
WARN[0000] The "MAX_QUERIES_PER_MINUTE" variable is not set. Defaulting to a blank string.   
WARN[0000] The "MAX_PROJECTS_PER_USER" variable is not set. Defaulting to a blank string.   
WARN[0000] The "VOICE_API_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] /Volumes/home/rowboat/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion   
[+] Running 1/1  
 ✘ mongo Error Get "https://registry-1.docker.io/v2/": EOF                                                                                     5.5s   
Error response from daemon: Get "https://registry-1.docker.io/v2/": EOF
  
[lugalee@labs rowboat ]% docker-compose up --build        
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "FIRECRAWL_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AGENTS_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "COPILOT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "GOOGLE_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AWS_ACCESS_KEY_ID" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AWS_SECRET_ACCESS_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "RAG_UPLOADS_S3_BUCKET" variable is not set. Defaulting to a blank string.   
WARN[0000] The "RAG_UPLOADS_S3_REGION" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "OPENAI_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_AUTH" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AGENTS_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "COPILOT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_RAG" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_RAG_UPLOADS" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AWS_ACCESS_KEY_ID" variable is not set. Defaulting to a blank string.   
WARN[0000] The "AWS_SECRET_ACCESS_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "RAG_UPLOADS_S3_BUCKET" variable is not set. Defaulting to a blank string.   
WARN[0000] The "RAG_UPLOADS_S3_REGION" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_RAG_SCRAPING" variable is not set. Defaulting to a blank string.   
WARN[0000] The "FIRECRAWL_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] The "USE_CHAT_WIDGET" variable is not set. Defaulting to a blank string.   
WARN[0000] The "CHAT_WIDGET_SESSION_JWT_SECRET" variable is not set. Defaulting to a blank string.   
WARN[0000] The "MAX_QUERIES_PER_MINUTE" variable is not set. Defaulting to a blank string.   
WARN[0000] The "MAX_PROJECTS_PER_USER" variable is not set. Defaulting to a blank string.   
WARN[0000] The "VOICE_API_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_URL" variable is not set. Defaulting to a blank string.   
WARN[0000] The "QDRANT_API_KEY" variable is not set. Defaulting to a blank string.   
WARN[0000] /Volumes/home/rowboat/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion   
[+] Building 174.6s (40/44)                                                                                                                          docker:orbstack  
 => => extracting sha256:02bb84e9f3412827f177bc6c020812249b32a8425d2c1858e9d71bd4c015f031                                                                       0.0s  
 => [rowboat deps 1/4] RUN apk add --no-cache libc6-compat                                                                                                      5.8s  
 => [rowboat builder 1/4] WORKDIR /app                                                                                                                          0.2s  
 => [rowboat runner 2/6] RUN addgroup --system --gid 1001 nodejs                                                                                                0.1s  
 => [rowboat runner 3/6] RUN adduser --system --uid 1001 nextjs                                                                                                 0.1s  
 => [rowboat deps 2/4] WORKDIR /app                                                                                                                             0.0s  
 => [rowboat deps 3/4] COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* .npmrc* ./                                                               0.0s  
 => [rowboat deps 4/4] RUN   if [ -f yarn.lock ]; then yarn --frozen-lockfile;   elif [ -f package-lock.json ]; then npm ci;   elif [ -f pnpm-lock.yaml ]; th  51.6s  
 => [copilot 5/5] COPY . .                                                                                                                                      0.1s  
 => [copilot] exporting to image                                                                                                                                0.2s  
 => => exporting layers                                                                                                                                         0.2s  
 => => writing image sha256:94f6406a4784d3c2e338a3e13541ab502d2e4d889b7ec2153de07611aefb7deb                                                                    0.0s  
 => => naming to docker.io/library/rowboat-copilot                                                                                                              0.0s  
 => [copilot] resolving provenance for metadata file                                                                                                            0.0s  
 => [rowboat_agents 4/7] COPY pyproject.toml poetry.lock ./                                                                                                     0.1s  
 => [rowboat_agents 5/7] RUN poetry config virtualenvs.create false                                                                                             0.6s  
 => [rowboat_agents 6/7] RUN poetry install --no-interaction --no-ansi                                                                                         17.9s  
 => [rowboat_agents 7/7] COPY . .                                                                                                                               0.1s  
 => [rowboat_agents] exporting to image                                                                                                                         1.6s  
 => => exporting layers                                                                                                                                         1.5s  
 => => writing image sha256:df19ea78b110fd388424f26f07fe266e96ce7fb6165d4f7d7a3b7a2c0fead36a                                                                    0.0s  
 => => naming to docker.io/library/rowboat-rowboat_agents                                                                                                       0.0s  
 => [rowboat_agents] resolving provenance for metadata file                                                                                                     0.0s  
 => [rowboat builder 2/4] COPY --from=deps /app/node_modules ./node_modules                                                                                     4.2s  
 => [rowboat builder 3/4] COPY . .                                                                                                                              0.1s  
 => [rowboat builder 4/4] RUN   if [ -f yarn.lock ]; then yarn run build;   elif [ -f package-lock.json ]; then npm run build;   elif [ -f pnpm-lock.yaml ];   89.2s  
 => => #   code: 'ECONNREFUSED',                                                                                                                                       
 => => #   syscall: 'connect',                                                                                                                                         
 => => #   address: '::1',                                                                                                                                             
 => => #   port: 6379                                                                                                                                                  
 => => # }                                                                                                                                                             
 => => #    Generating static pages (0/10) ...                                                                                                                        
 
  
=> => sha256:c4a5a5511f6e3abf8b4ac5e4a4396919e0409c4a31014c0c92b9d0b7098458aa 250B / 250B                                                                      1.9s   
 => => sha256:82c07f2f6e35255b92eb16f38dbd22679d5e8fb523064138d7c6468e7bf0c15b 9.13kB / 9.13kB                                                                  0.0s  
 => => sha256:108c90d07162a1dd892e1a19775220dbfaaeb91cb376bab64e09cdb8a46ea012 1.75kB / 1.75kB                                                                  0.0s  
 => => extracting sha256:67e2e38f574308b54710381fc37a28a5addd050b2c6ed3ebbce9fd0c7b3bf234                                                                       0.4s  
 => => extracting sha256:c4a5a5511f6e3abf8b4ac5e4a4396919e0409c4a31014c0c92b9d0b7098458aa                                                                       0.0s  
 => [rowboat internal] load metadata for docker.io/library/node:18-alpine                                                                                       6.0s  
 => [copilot 2/5] WORKDIR /app                                                                                                                                  0.2s  
 => [copilot 3/5] COPY requirements.txt .                                                                                                                       0.0s  
 => [copilot 4/5] RUN pip install --no-cache-dir -r requirements.txt                                                                                           25.4s  
 => [rowboat internal] load .dockerignore                                                                                                                       0.0s  
 => => transferring context: 118B                                                                                                                               0.0s  
 => [rowboat internal] load build context                                                                                                                       0.1s  
 => => transferring context: 3.28MB                                                                                                                             0.0s  
 => [rowboat base 1/1] FROM docker.io/library/node:18-alpine@sha256:8d6421d663b4c28fd3ebc498332f249011d118945588d0a35cb9bc4b8ca09d9e                            3.8s  
 => => resolve docker.io/library/node:18-alpine@sha256:8d6421d663b4c28fd3ebc498332f249011d118945588d0a35cb9bc4b8ca09d9e                                         0.0s  
 => => sha256:c2281c62c4aadf92ea71a6c05e6c8e640634b6a99dc52a6e54575f9cb298a037 1.72kB / 1.72kB                                                                  0.0s  
 => => sha256:c5914b9dd279c0f596933e65906cb3c6d2da5aae71e863e819e9b963997b1c17 6.20kB / 6.20kB                                                                  0.0s  
 => => sha256:d84c815451acbca96b6e6bdb479929222bec57121dfe10cc5b128c5c2dbaf10a 39.66MB / 39.66MB                                                                2.9s  
 => => sha256:8bfa36aa66ce614f6da68a16fb71f875da8d623310f0cb80ae1ecfa092f587f6 1.26MB / 1.26MB                                                                  1.3s  
 => => sha256:02bb84e9f3412827f177bc6c020812249b32a8425d2c1858e9d71bd4c015f031 443B / 443B                                                                      2.3s  
 => => sha256:8d6421d663b4c28fd3ebc498332f249011d118945588d0a35cb9bc4b8ca09d9e 7.67kB / 7.67kB                                                                  0.0s  
 => => extracting sha256:d84c815451acbca96b6e6bdb479929222bec57121dfe10cc5b128c5c2dbaf10a                                                                       0.6s  
 => => extracting sha256:8bfa36aa66ce614f6da68a16fb71f875da8d623310f0cb80ae1ecfa092f587f6                                                                       0.0s  
 => => extracting sha256:02bb84e9f3412827f177bc6c020812249b32a8425d2c1858e9d71bd4c015f031                                                                       0.0s  
 => [rowboat deps 1/4] RUN apk add --no-cache libc6-compat                                                                                                      5.8s  
 => [rowboat builder 1/4] WORKDIR /app                                                                                                                          0.2s  
 => [rowboat runner 2/6] RUN addgroup --system --gid 1001 nodejs                                                                                                0.1s  
 => [rowboat runner 3/6] RUN adduser --system --uid 1001 nextjs                                                                                                 0.1s  
 => [rowboat deps 2/4] WORKDIR /app                                                                                                                             0.0s  
 => [rowboat deps 3/4] COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* .npmrc* ./                                                               0.0s  
 => [rowboat deps 4/4] RUN   if [ -f yarn.lock ]; then yarn --frozen-lockfile;   elif [ -f package-lock.json ]; then npm ci;   elif [ -f pnpm-lock.yaml ]; th  51.6s  
 => [copilot 5/5] COPY . .                                                                                                                                      0.1s  
 => [copilot] exporting to image                                                                                                                                0.2s  
 => => exporting layers                                                                                                                                         0.2s  
 => => writing image sha256:94f6406a4784d3c2e338a3e13541ab502d2e4d889b7ec2153de07611aefb7deb                                                                    0.0s  
 => => naming to docker.io/library/rowboat-copilot                                                                                                              0.0s  
 => [copilot] resolving provenance for metadata file                                                                                                            0.0s  
 => [rowboat_agents 4/7] COPY pyproject.toml poetry.lock ./                                                                                                     0.1s  
 => [rowboat_agents 5/7] RUN poetry config virtualenvs.create false                                                                                             0.6s  
 => [rowboat_agents 6/7] RUN poetry install --no-interaction --no-ansi                                                                                         17.9s  
 => [rowboat_agents 7/7] COPY . .                                                                                                                               0.1s  
 => [rowboat_agents] exporting to image                                                                                                                         1.6s  
 => => exporting layers                                                                                                                                         1.5s  
 => => writing image sha256:df19ea78b110fd388424f26f07fe266e96ce7fb6165d4f7d7a3b7a2c0fead36a                                                                    0.0s  
 => => naming to docker.io/library/rowboat-rowboat_agents                                                                                                       0.0s  
 => [rowboat_agents] resolving provenance for metadata file                                                                                                     0.0s  
 => [rowboat builder 2/4] COPY --from=deps /app/node_modules ./node_modules                                                                                     4.2s  
 => [rowboat builder 3/4] COPY . .                                                                                                                              0.1s  
 => [rowboat builder 4/4] RUN   if [ -f yarn.lock ]; then yarn run build;   elif [ -f package-lock.json ]; then npm run build;   elif [ -f pnpm-lock.yaml ];  100.6s  
 => [rowboat runner 4/6] COPY --from=builder /app/public ./public                                                                                               0.1s  
 => [rowboat runner 5/6] COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./                                                                     0.2s  
 => [rowboat runner 6/6] COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static                                                             0.0s  
 => [rowboat] exporting to image                                                                                                                                0.2s  
 => => exporting layers                                                                                                                                         0.2s  
 => => writing image sha256:ea51a8a9b433eeb0fb8b99250204da9cf3f1b5ef00c13c4764ecc8f123fb19ed                                                                    0.0s  
 => => naming to docker.io/library/rowboat-rowboat                                                                                                              0.0s  
 => [rowboat] resolving provenance for metadata file                                                                                                            0.0s  
[+] Running 9/9  
 ✔ copilot                             Built                                                                                                                    0.0s   
 ✔ rowboat                             Built                                                                                                                    0.0s   
 ✔ rowboat_agents                      Built                                                                                                                    0.0s   
 ✔ Network rowboat_default             Created                                                                                                                  0.0s   
 ✔ Container rowboat-copilot-1         Created                                                                                                                  0.2s   
 ✔ Container rowboat-mongo-1           Created                                                                                                                  0.2s   
 ✔ Container rowboat-redis-1           Created                                                                                                                  0.2s   
 ✔ Container rowboat-rowboat_agents-1  Created                                                                                                                  0.2s   
 ✔ Container rowboat-rowboat-1         Created                                                                                                                  0.2s   
Attaching to copilot-1, redis-1, rowboat-1, rowboat_agents-1 
 安装完成后,直接本地访问:

http://localhost:3000/projects/select

picture.image

今天的解析就到这里,欲了解更多关于 Rowboat 相关技术的深入剖析,最佳实践以及相关技术前沿,敬请关注我们的微信公众号:架构驿站,获取更多独家技术洞察!

Happy Coding ~

Reference :

[1] https://github.com/rowboatlabs/rowboat

Adiós !

··································

对云原生网关 Traefik 技术感兴趣的朋友们,可以了解一下我的新书,感谢支持!

picture.image

Hello folks,我是 Luga,Traefik Ambassador,Jakarta EE Ambassador, 一个 15 年+ 技术老司机,从 IT 屌丝折腾到码畜,最后到“酱油“架构师。如果你喜欢技术,不喜欢呻吟,那么恭喜你,来对地方了,关注我,共同学习、进步、超越~

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论