AI在线 AI在线

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

Hello folks,我是 Luga,今天我们来聊一下人工智能应用场景 - 构建高效、灵活的计算架构的多智能体工作流。 在 AI 驱动的自动化浪潮中,多智能体(Multi-Agent)系统正成为企业实现高效协作和智能化转型的关键。 然而,构建一个多智能体工作流往往需要复杂的开发流程和高昂的成本,让许多团队望而却步。

 Hello folks,我是 Luga,今天我们来聊一下人工智能应用场景 - 构建高效、灵活的计算架构的多智能体工作流。

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

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

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

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

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

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

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

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

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

  • 配送状态代理(Agent 1):通过 API 调用实时查询物流系统,返回配送状态(如“已送达”或“配送中”)。
  • 遗漏物品申诉代理(Agent 2):接收客户申诉,调用订单数据库核查物品清单,并生成申诉报告,提交给客服团队。
  • 工具支持:Copilot 会自动集成必要的工具,如物流查询 API、订单数据库接口和通知系统,确保工作流的无缝运行。

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

二、Rowboat 技术实现解析

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

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

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

  • 快速构建:从创意到工作流生成,整个过程仅需 3-5 分钟。例如,构建一个包含 5 个代理的客服系统(如订单查询、退货处理、通知发送)只需 4 分钟。
  • 高可靠性:Rowboat 的工作流经过严格测试,运行稳定性达 99.9%,即使在高负载场景下也能保持流畅运行。
  • 可扩展性:用户可以随时添加新代理或工具,扩展工作流功能。例如,在食品配送系统中,后期随时可以添加一个“优惠券发放代理”,而无需修改现有工作流。

三、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

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

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

Happy Coding ~

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

Adiós !

相关资讯

哥德尔90年前的「不完备性定理」,奠定了计算机与AI的理论基础

大神早已远去,而他的光芒仍在人间。
6/18/2021 2:19:00 PM
机器之心

AI红队:构建安全AI只是梦想

负责微软100多个GenAI产品红队测试的团队得出结论,构建安全可靠的AI系统的工作永远不会完成。 本周发表的一篇论文中,包括微软Azure首席技术官Mark Russinovich在内的作者们描述了团队的一些工作,并提出了八项建议,旨在“使红队测试工作与现实世界的风险相一致”。 论文的主要作者、微软AI红队(AIRT)研究员Blake Bullwinkel和他的25位合著者在论文中写道:“随着GenAI系统在越来越多领域的应用,AI红队测试已成为评估这些技术安全性和可靠性的核心实践。
1/20/2025 11:24:56 AM
Paul Barker

知乎直答:AI 搜索产品从 0 到 1 实践探索

一、知乎直答产品介绍知乎直答是具有强社区属性的通用 AI 搜索产品,但并非社区版 AI 搜索。 知乎直答具有以下几大优势:认真专业:与知乎专注专业内容生产的调性相符,严格把控参考来源与质量,确保回答认真且专业。 连接创作者:可在使用中关注、与创作者交流互动获取专业见解。
1/20/2025 10:40:08 AM
王界武
  • 1