Janus Vibe 项目

让 OpenAI / Anthropic 客户端零改动接入 OpenCode 的开源 Agent 网关 + 控制平面

项目简介

Janus 是一个面向 2026 年代 coding agent 生态的开源 AI Agent 网关与控制平面,主仓库位于 GitHub qist/janus,协议为 MIT License。项目的核心定位非常克制:它不重造 Agent runtime、不重造 Tool runtime、不重造 MCP runtime、不重造 Session runtime,而是把这些已经足够好的运行时(OpenCode、Claude Code、Codex CLI、Gemini CLI 等)作为上游,自己只做"谁能怎么用"的网关层。Janus 把只有 /api/* 自有协议的 OpenCode Server 包装成 OpenAI / Anthropic 标准 /v1/*,让 Trae、CodeBuddy、Cursor、OpenAI SDK、LangChain 等任何 OpenAI / Anthropic 兼容客户端"零改动"接入,同时把会话、模型、鉴权、工具、权限、用量、观测统一管起来,让"在多种 agent 之间切换、统一计费、统一审计"不再需要写一堆 glue code。

核心功能

  1. OpenAI / Anthropic 协议兼容网关:把 OpenCode 的私有 API 包装成标准 /v1/models、/v1/chat/completions(流式+非流式)、/v1/completions、/v1/responses、/v1/messages(Anthropic)、/v1/usage、/v1/requests、/v1/settings,并自带 /ui、/metrics、/healthz,客户端把 Base URL 指到 http://127.0.0.1:2810/v1 即可工作,零代码改动。
  2. 统一鉴权与会话:通过 BRIDGE_API_KEY 在网关注入一次鉴权,所有下游调用共享同一会话上下文与会话历史;客户端不再需要各 agent 各自的 key 与端口配置。
  3. 三种执行模式(执行边界清晰):通过 BRIDGE_AGENT + BRIDGE_TOOL_CALLING 选择工具在哪执行——native(服务端、本机自用)、remote-tools(客户端、走内置 MCP 工具桥,集中部署代码在本地)、none(纯推理,无工具,适合 Chat/Review/规划)。
  4. 用量与会话审计:把所有 /v1/requests 调用、/v1/usage 计量统一汇入 Janus 控制平面,方便团队做计费、限额、回顾和异常检测。
  5. 部署形态齐全:提供 amd64 / arm64 / arm / 386 预编译包下载;Go 1.23+ 可直接 make build 编译;提供 distroless 非 root 静态镜像 docker build 与自带加固的 systemd 单元 deploy/janus.service。

技术实现

Janus 用 Go 1.23+ 编写,主体是一个 HTTP 反向代理与控制平面监听(默认 127.0.0.1:2810),上游为 OpenCode。启动时 Janus 会自动发现已在跑的 opencode serve,没有就自己拉一个(随机端口 + 随机密码),客户端不需要填端口/密码。协议转换层把 OpenAI / Anthropic 客户端发来的 /v1/chat/completions 与 /v1/messages 请求解析后转发给 OpenCode 处理,再把流式响应重新拼装给客户端。工具执行通过 remote-tools 模式实现"客户端 ↔ Janus ↔ agent"之间的 MCP 桥:MCP 只在 Janus 与 agent 之间存在,对客户端始终暴露为标准的 tool_calls / tool_use,客户端不需要懂 MCP。配置通过 janus.env 文件注入(监听地址、API Key、会话默认工作目录、agent 选择、工具调用模式),并提供 scripts/run.sh 一键启动。日志、metrics、healthz 端点齐全,方便接 Prometheus / Grafana 与 k8s 探针。

快速上手

  1. 下载预编译包:curl -LO https://github.com/qist/janus/releases/download/v0.3.5/janus_v0.3.5_linux_amd64.tar.gz 并 tar xzf 解压,sudo install -m 0755 janus_linux_amd64 /usr/local/bin/janus。
  2. 安装上游 OpenCode:执行 curl -fsSL https://opencode.ai/v2/install | bash(Janus 启动时会自动接管,没装会在日志提示)。
  3. 写配置文件:cp janus.env.example janus.env,至少设置 BRIDGE_API_KEY 与 BRIDGE_DIRECTORY,可选 BRIDGE_AGENT 与 BRIDGE_TOOL_CALLING。
  4. 启动 Janus: ./scripts/run.sh,监听 127.0.0.1:2810;客户端把 Base URL 指到 http://127.0.0.1:2810/v1、API Key 填 BRIDGE_API_KEY 即可工作(Anthropic 客户端把 ANTHROPIC_BASE_URL 指到 http://127.0.0.1:2810)。
  5. 进阶部署:用 docker build -t janus https://github.com/qist/janus.git 打包 distroless 非 root 静态镜像,或用仓库自带的 deploy/janus.service 注册成 systemd 守护进程。

适用人群

需要在多种 coding agent 之间切换的资深开发者、想给团队提供统一模型网关与权限审计的工程负责人、要把 OpenCode / Claude Code / Codex 接入自有系统的集成工程师,以及任何对"模型协议兼容性、工具执行边界、用量观测"有强诉求的 AI 工程团队。

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论