mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-09-22 00:32:49 +00:00
* docs: rebuild documentation site with VitePress * docs: address VitePress review feedback * docs: complete locale redirect validation
131 lines
3.5 KiB
Markdown
131 lines
3.5 KiB
Markdown
---
|
||
title: 服务与部署
|
||
description: 使用 ReMe 的 HTTP、SSE、MCP 和 Studio 服务,并理解默认安全边界。
|
||
---
|
||
|
||
# 服务与部署
|
||
|
||
ReMe 可以作为本地 HTTP 服务、独立 MCP Server 或一次性 CLI Job 运行。默认模式是在 `127.0.0.1:2333` 启动 HTTP 服务,并在同一进程中提供 JSON API、SSE、MCP 与可选的 ReMe Studio。
|
||
|
||
## HTTP 服务
|
||
|
||
```bash
|
||
reme start
|
||
reme start service.host=127.0.0.1 service.port=8181
|
||
```
|
||
|
||
普通 Job 暴露为 `POST /<job-name>`:
|
||
|
||
```bash
|
||
curl -s http://127.0.0.1:2333/search \
|
||
-H 'Content-Type: application/json' \
|
||
-d '{"query":"用户偏好","limit":5}'
|
||
```
|
||
|
||
请求体允许 Job 参数位于顶层。响应遵循 `Response`:
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"answer": "...",
|
||
"metadata": {}
|
||
}
|
||
```
|
||
|
||
未被 Step 捕获的错误会转换成 `success: false` 的响应。
|
||
|
||
## Streaming 与 SSE
|
||
|
||
`backend: stream` 的 Job 仍使用 `POST /<job-name>`,但响应类型是 `text/event-stream`。每个 chunk 使用统一的 streaming schema;失败时会发出错误 chunk,并以终止事件结束。
|
||
|
||
默认 `chat` 是 Stream Job:
|
||
|
||
```bash
|
||
curl -N http://127.0.0.1:2333/chat \
|
||
-H 'Content-Type: application/json' \
|
||
-d '{"query":"总结我的长期偏好"}'
|
||
```
|
||
|
||
MCP 不暴露 Stream Job。
|
||
|
||
## MCP
|
||
|
||
默认 HTTP 服务会在 `/mcp` 挂载 streamable HTTP MCP:
|
||
|
||
```yaml
|
||
service:
|
||
backend: http
|
||
mcp_enabled: true
|
||
mcp_path: /mcp
|
||
mcp_stateless_http: false
|
||
```
|
||
|
||
也可以改用独立 MCP Service:
|
||
|
||
```bash
|
||
reme start service.backend=mcp service.transport=stdio
|
||
reme start service.backend=mcp service.transport=sse service.port=2333
|
||
reme start service.backend=mcp service.transport=streamable-http service.port=2333
|
||
```
|
||
|
||
MCP tool 来自 `enable_serve: true` 的非流式 Job。`service.jobs` 可以设置允许列表;`injected_job_kwargs` 可以注入服务端管理、调用方不能覆盖的参数。
|
||
|
||
```yaml
|
||
service:
|
||
backend: http
|
||
jobs: [search, read, traverse, auto_memory]
|
||
injected_job_kwargs:
|
||
tenant_id: local-user
|
||
tool_error_on_failure: true
|
||
```
|
||
|
||
## ReMe Studio
|
||
|
||
安装 `reme-ai[web]` 或 `reme-ai[core]` 后,默认 HTTP 地址同时提供 ReMe Studio:
|
||
|
||
```text
|
||
http://127.0.0.1:2333/
|
||
```
|
||
|
||
可通过配置关闭或指定自定义构建:
|
||
|
||
```yaml
|
||
service:
|
||
web_enabled: false
|
||
# web_static_dir: /absolute/path/to/static
|
||
```
|
||
|
||
静态资源缺失不会阻止 Job API 启动。
|
||
|
||
## 一次性 Job
|
||
|
||
需要脚本式执行而不常驻服务时:
|
||
|
||
```bash
|
||
reme start job=search query="用户偏好" limit=5
|
||
```
|
||
|
||
它会切换到一次性 CLI Service,但仍经过正常的 Application、Component 和 Job 生命周期。
|
||
|
||
## 服务发现
|
||
|
||
```bash
|
||
reme find_reme
|
||
```
|
||
|
||
ReMe 会记录本机运行服务的启动参数。普通 `reme <action>` 优先使用实际运行服务的 backend、host、port 和 transport;找不到运行服务时才回退到本地配置。
|
||
|
||
## 安全边界
|
||
|
||
ReMe 默认定位为本地服务:
|
||
|
||
- 默认绑定 `127.0.0.1`;
|
||
- HTTP CORS 配置允许任意 origin;
|
||
- Job 可进行文件写入、移动和删除;
|
||
- 当前服务层不提供通用用户认证。
|
||
|
||
不要直接把默认服务暴露到公网。需要远程访问时,在受控网络或带身份认证、TLS、访问控制和请求大小限制的反向代理后部署,并通过 `service.jobs` 只开放必要 Job。
|
||
|
||
## OpenAPI
|
||
|
||
HTTP 服务使用 FastAPI。启用 HTTP 服务时,可以通过 `/docs`、`/redoc` 和 `/openapi.json` 查看当前配置实际注册的端点;Studio 的 SPA fallback 不会覆盖这些保留路径。
|