How To

配置

配置 Sink 网管的端口、认证、日志及核心参数

配置

概述

Sink 网管是用户与平台之间的主要接口。通过网管配置,你可以控制:

  • 服务监听的端口和地址
  • 日志级别和前端功能开关
  • 可选的 AI 能力设置

本指南涵盖常见的网管配置任务。

配置文件位置

网管配置文件位于:

~/.sink/gateway.json

其中 ~/.sink 对应 SINK_HOME/.sink,默认值为 ~/.sink

快速开始:基础配置

场景 1:更改服务端口

# 编辑 ~/.sink/gateway.json
{
  "port": 8080,
  "host": "127.0.0.1"
}

重启网管后生效。访问 http://127.0.0.1:8080 即可打开 Web UI。

场景 2:允许远程访问

{
  "port": 5000,
  "host": "0.0.0.0"
}

这样其他机器可以通过 http://<your-ip>:5000 访问。

场景 3:使用环境变量配置端口

gateway.json 中使用环境变量插值语法:

{
  "port": "${PORT:-5000}",
  "host": "127.0.0.1"
}

这表示:使用 PORT 环境变量的值,如果未设置则默认为 5000

启动时:

PORT=8080 sink gateway start

认证配置

静态 Bearer Token(额外认证)

除主认证方式外,你还可以配置额外的 Bearer token:

{
  "authTokens": [
    "token-1",
    "token-2"
  ]
}

发送请求时在 Authorization 头中使用:

curl -H "Authorization: Bearer token-1" http://localhost:5000/api/config

这对集成脚本或 CI/CD 流水线很有用。

日志配置

日志级别

{
  "logLevel": "info"
}

可选值:

  • fatal - 仅致命错误
  • error - 仅错误
  • warn - 警告及以上
  • info - 常规信息(默认)
  • debug - 详细调试信息
  • trace - 全部日志(最详细)
  • silent - 禁用所有日志输出

查看日志

日志输出到标准输出。运行网管时你可以:

# 直接查看日志
sink gateway start

# 或重定向到文件
sink gateway start > sink.log 2>&1

前端功能开关

通过 uiConfig 控制 Web UI 中哪些功能菜单可见:

{
  "uiConfig": {
    "showProfiles": true,
    "showRuntimes": true,
    "showSkills": true,
    "showMcp": true,
    "showInstructions": true,
    "showVscode": true,
    "showCanvas": true,
    "simpleMode": false
  }
}

可用功能开关

使用场景

场景:为不同用户呈现不同的 UI

你可以通过环境变量动态控制功能开关:

{
  "uiConfig": {
    "showProfiles": "${SHOW_PROFILES:-true}",
    "showVscode": "${SHOW_VSCODE:-false}",
    "simpleMode": "${SIMPLE_MODE:-false}"
  }
}

启动时:

# 隐藏 VS Code 菜单,启用简洁模式
SHOW_VSCODE=false SIMPLE_MODE=true sink gateway start

Settings 配置

gateway.json 外,Sink 还有全局 settings.json 配置,支持三层配置。

位置:~/.sink/settings.json<workspace>/.sink/settings.json

常见配置项

{
  "env": {
    "ANTHROPIC_API_KEY": "sk-...",
    "CUSTOM_VAR": "value"
  },
  "logLevel": "info",
  "agentLifecycle": {
    "maxConcurrent": 4,
    "idleSwapOutMs": 300000
  },
  "sandbox": {
    "enabled": true
  }
}
字段说明
env环境变量注入(注入到 Agent 进程中)
logLevel工作区级日志级别
agentLifecycle.maxConcurrent最大并行运行的 Agent 数量
agentLifecycle.idleSwapOutMs闲置 Agent 可被挂起前的等待时间(毫秒)
sandbox.enabled是否启用沙箱隔离

故障排除

网管启动失败

检查配置文件是否存在 JSON 语法错误:

cat ~/.sink/gateway.json | jq .

如果存在错误,修复 JSON 格式后重试。

环境变量插值不生效

请检查:

  1. 环境变量是否确实已设置:echo $VAR_NAME
  2. 配置文件是否被正确读取:启动日志中应显示配置加载信息
  3. gateway.json 中的插值语法是否正确

认证问题

  • 403 Unauthorized:检查 Bearer token 是否正确(如果配置了 authTokens

性能问题

  • 增大 agentLifecycle.maxConcurrent 以允许更多 Agent 并行运行
  • 增大 agentLifecycle.idleSwapOutMs 以减少 Agent 挂起频率
  • logLevel 调至 warnerror 以减少日志 I/O

后续步骤