Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ogi — 开源链接分析与OSINT框架 | Kitploit
工具/GitHubGitHub/khashashin/ogi
OSINT (开源情报)侦察信息收集Web安全社会工程学威胁情报电子邮件收集学习与教育网络爬虫DNS 分析
GitHubkhashashin/ogi

ogi

280373315天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

开源链接分析与OSINT框架

查看仓库网站
<div align="center">

<img src="https://assets.kitploit.com/production/public/readmes/12241/4d60ae367bb5f1d9b7d1d95df2b16186f01454c9610e40703f636923a0a70ced.png" alt="OGI Mascot" width="200" />

# OpenGraph Intel (OGI)

**开源可视化链接分析与OSINT框架。**
**免费、可自托管、社区驱动。**

[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![CI](https://github.com/khashashin/ogi/actions/workflows/ci.yml/badge.svg)](https://github.com/khashashin/ogi/actions/workflows/ci.yml)
[![Docker](https://github.com/khashashin/ogi/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/khashashin/ogi/actions/workflows/docker-publish.yml)
[![Python 3.14+](https://img.shields.io/badge/python-3.14+-3776AB.svg?logo=python&logoColor=white)](https://www.python.org)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6.svg?logo=typescript&logoColor=white)](https://www.typescriptlang.org)
[![React](https://img.shields.io/badge/React-19-61DAFB.svg?logo=react&logoColor=black)](https://react.dev)
[![FastAPI](https://img.shields.io/badge/FastAPI-0.134-009688.svg?logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com)
![Version](https://img.shields.io/github/v/release/khashashin/ogi?display_name=tag&color=green)

[特性](#features) &bull; [截图](#screenshots) &bull; [快速开始](#quick-start) &bull; [Docker](#docker) &bull; [转换中心](#transform-hub) &bull; [架构](#architecture) &bull; [参与贡献](#contributing)

</div>

---

> **注意:** 该项目正在积极开发中。它拥有稳定的核心能力和测试覆盖,我们持续在每个版本中改进文档、加固和特性深度。欢迎贡献、报告错误和提供反馈。

## 特性

- **可视化图谱调查** — 拖拽实体,交互式探索连接
- **20+内置转换** — DNS、WHOIS、SSL证书、地理位置、网页/邮箱/哈希/社交增强等
- **转换中心** — 从[注册中心](https://github.com/opengraphintel/ogi-transforms)浏览和安装社区转换
- **AI调查员** — 提示驱动的智能调查,规划转换运行,实时流式传输进度,并总结可审计的发现
- **导入/导出** — 支持JSON、CSV、GraphML和MTGX格式导入
- **图谱分析** — 中心性、社区检测、最短路径
- **实时协作** — 通过Supabase Realtime实现项目、共享和实时同步
- **异步转换任务** — 使用Redis/RQ队列和WebSocket进度更新
- **插件系统** — 基于目录的插件发现,使用YAML清单
- **CLI工具** — 从终端搜索、安装和管理转换
- **随处运行** — 本地SQLite模式(零配置)或PostgreSQL + Supabase用于团队/云设置
- **Docker就绪** — 一键部署:`docker compose up`

## 截图

<div align="center">

|              图谱调查               |              实体丰富              |
| :---------------------------------: | :--------------------------------: |
| ![图谱调查](https://assets.kitploit.com/production/public/readmes/12241/736f7dcefbbf9d6fe364a9485e3cdfbbe58abb28f544befa703c96f21c4af25f.png)  | ![实体丰富](https://assets.kitploit.com/production/public/readmes/12241/2f82a9ff6205006bf1cc00870f2456f4070c5b56237e62bfc23854ac328147f8.png) |

|              转换中心              |              导出导入              |
| :--------------------------------: | :--------------------------------: |
| ![转换中心](https://assets.kitploit.com/production/public/readmes/12241/1aad4060afe92b4b922a37bc2223994e072d9c91154223ed74bfbd1fb6c5332d.png) | ![导出导入](https://assets.kitploit.com/production/public/readmes/12241/91c2d3ec087b52685a352bc6acd465784f56d45b4d8bdae1af5e1ed6a4af3523.png) |

</div>

## 快速开始

### 前置条件

| 工具                             | 版本    |
| -------------------------------- | ------- |
| [Python](https://www.python.org) | 3.14+   |
| [uv](https://docs.astral.sh/uv/) | latest  |
| [Node.js](https://nodejs.org)    | 20+     |
| [pnpm](https://pnpm.io)          | latest  |

### 后端```bash
cd backend
uv sync
uv run uvicorn ogi.main:app --reload
```
API 将在 `http://localhost:8000` 可用。

对于本地转换执行,Redis 和转换工作进程也必须运行。仅 Redis 是不够的。

启动 Redis:```bash
docker run -d --name ogi-redis -p 6379:6379 redis:7-alpine
```
在第二个终端中启动转换工作器:```bash
cd backend
uv run python -m ogi.worker.run_worker
```
如果你看到 `Job queue not available` 或 `Redis not available`,请确认:

- `OGI_REDIS_URL` 指向 `redis://localhost:6379/0`(对于本地基于主机的运行)
- 在 Redis 启动后,后端已重新启动
- 独立的 worker 进程正在运行
- 你没有在 Docker Compose 之外使用仅限 Docker 的主机名 `redis`

如果你将后端与 PostgreSQL 一起运行(`OGI_USE_SQLITE=false`),启动时会自动应用 Alembic 迁移,然后再处理请求。Docker 部署在后端容器入口点中也执行相同操作。

AI Investigator 的运行由另一个独立的 worker 处理:```bash
cd backend
uv run python -m ogi.agent.run_worker
```
### 前端```bash
cd frontend
pnpm install
pnpm dev
```
打开 http://localhost:5173。就这样。

### AI 调查员

AI 调查员是一个可选的后台支持的工作流,可以规划转换序列、请求审批,并在工作区内汇总调查进度。

- 在项目内打开 `AI Investigator` 标签页
- 在调查员设置对话框中配置提供者和模型
- 将提供者 API 密钥存储到 `API Keys`
- 与后端一起运行独立的 `agent-worker` 进程

当前实现支持每个用户的提供者配置,以及一个专用的工作进程,独立于主 API 服务器执行调查步骤。

### CLI

运行 CLI 的两种支持方式:

**推荐**(无需激活):```bash
cd backend
uv sync
uv run ogi --help
```
**已激活的虚拟环境**(普通 `ogi` 命令):```bash
cd backend
uv venv
# PowerShell:
.\.venv\Scripts\Activate.ps1
uv pip install -e .
ogi --help
```
## Docker

### 开发```bash
cp .env.example .env
docker compose up
```
### 生产

使用预构建的GHCR镜像。

重要:[docker-compose.prod.yml](https://github.com/khashashin/ogi/blob/main/docker-compose.prod.yml) 需要外部的PostgreSQL数据库。它不包含 `db` 服务。

如果您想要包含内置Postgres和Redis的一体化本地Docker栈,请使用:```bash
docker compose up -d
```
仅当你已经有一个可访问的PostgreSQL实例并已相应设置`OGI_DATABASE_URL`时,才使用生产compose文件:```bash
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d
```
在 `.env` 中设置 `OGI_IMAGE_TAG` 以固定特定的发布镜像标签(例如 `v0.2.6`)。默认为 `latest`。

### Hetzner Cloud

[![获取 Hetzner Cloud 积分](https://img.shields.io/badge/Get_Hetzner_Cloud_credits-D50C2D?style=for-the-badge&logo=hetzner&logoColor=white)](https://hetzner.cloud/?ref=LspEGc99USBa)
[![在 Hetzner 上部署 Docker CE](https://img.shields.io/badge/Deploy_Docker_CE_on_Hetzner-D50C2D?style=for-the-badge&logo=hetzner&logoColor=white)](https://console.hetzner.com/deploy/docker-ce)

新 Hetzner 用户可以使用第一个链接注册并获得 Hetzner Cloud 积分。这是一个推荐链接,因此如果推荐符合条件,OGI 维护者也可能获得 Hetzner Cloud 积分。创建服务器后,使用上面的 Docker 部署命令来运行 OGI。

### 可配置的转换上限

OGI 内置了合理的每次转换最大值,例如 `max_results`、`max_links`、`max_urls` 和 `max_content_chars`,但这些上限现在可以集中覆盖,因此云部署可以在不硬编码本地限制的情况下强制执行它们。

在 `.env` 中使用 `OGI_TRANSFORM_SETTING_MAX_OVERRIDES`:```env
OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=50,max_urls=25,max_links=40,max_content_chars=20000
```
在本地优先部署中移除特定限制:```env
OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=none,max_urls=none,max_links=none,max_content_chars=none
```
覆盖项由转换设置名称键控,适用于内置转换和使用 OGI 共享转换基础/运行时的社区插件。

### 托管云实例与支持者计划

托管云版本位于 [ogi.khas.app](https://ogi.khas.app),最初设计为让用户快速试用 OGI,再决定是否自行部署。如今它已成为该项目最受欢迎的使用方式,拥有超过 350 名活跃云用户。

使用量的增加也提高了这个副项目的基础设施成本。因此,仓库包含了一个云专属的支持者订阅(Supporter)和转换运行冷却系统。在公共云实例上,免费用户可能在转换运行之间受到超时限制,而支持者用户可以以象征性的每月 3 美元订阅,以帮助支付 Supabase 和 VPS 费用。

支持者订阅可以在个人资料计费控制或 Stripe 计费门户中取消。取消将停止未来计费,但已付费的订阅期不予退款或按比例折算。

此计费代码通过配置有意进行防护:仅当 `OGI_DEPLOYMENT_MODE=cloud` 且 `OGI_CLOUD_BILLING_ENABLED=true` 时才生效。自托管部署应保持计费禁用,并且不应看到任何计费或付费墙行为。

### 遥测

OGI 包含安装级别的产品遥测,旨在帮助我们了解实际使用情况,特别是在自托管部署中。

- `OGI_TELEMETRY_ENABLED=true` 启用遥测收集
- `OGI_TELEMETRY_LEVEL=full` 是默认收集级别
- 设置 `OGI_TELEMETRY_ENABLED=false` 完全禁用遥测
- 设置 `OGI_TELEMETRY_LEVEL=basic` 减少发送内容

`basic` 发送:

- OGI 版本
- 每日活跃安装的 ping

`full` 额外发送:

- 实例创建日期
- 项目、实体、边、转换运行、调查员运行及活跃用户的聚合计数(周期内)
- 已安装的转换及其版本

遥测设计为避免发送图内容、实体值、API 密钥、提示或其他调查数据。当前政策详情也已发布在[隐私政策](https://ogi.khas.app/privacy#telemetry)中。

<details>
<summary><strong>开发环境 Compose 服务</strong></summary>

| 服务 | 描述 | 端口 |
| --- | --- | --- |
| `backend` | FastAPI 应用服务器 | 8000 |
| `worker` | RQ 异步任务工人 | - |
| `agent-worker` | AI 调查员工人 | - |
| `frontend` | 通过 nginx 提供的 React 应用 | 80 |
| `db` | PostgreSQL 16 | 5432 |
| `redis` | Redis 7(任务队列) | 6379 |

</details>

<details>
<summary><strong>生产环境 Compose 服务</strong></summary>

| 服务 | 描述 | 端口 |
| --- | --- | --- |
| `backend` | FastAPI 应用服务器 | 8000 |
| `worker` | RQ 异步任务工人 | - |
| `agent-worker` | AI 调查员工人 | - |
| `frontend` | 通过 nginx 提供的 React 应用 | 80 |
| `redis` | Redis 7(任务队列) | 6379 |

`docker-compose.prod.yml` 期望通过 `OGI_DATABASE_URL` 提供外部 PostgreSQL 数据库。

</details>

---

<details>
<summary><strong>启动时插件依赖</strong></summary>

如果您使用预构建镜像且插件需要额外的 Python 库,OGI 会在容器启动时从以下位置安装插件依赖:

1. `plugins/requirements.txt`(首选),或
2. 当 `plugins/requirements.txt` 缺失时,从 `plugins/ogi-lock.json` 自动生成依赖。

**环境变量:**

| 变量 | 默认值 | 描述 |
| --- | --- | --- |
| `OGI_BOOT_REQUIREMENTS_ENABLE` | `true` | 启用/禁用启动时安装 |
| `OGI_BOOT_REQUIREMENTS_FILE` | `/app/plugins/requirements.txt` | 依赖文件路径 |
| `OGI_BOOT_LOCK_FILE` | `/app/plugins/ogi-lock.json` | 锁定文件路径 |
| `OGI_BOOT_REQUIREMENTS_STRICT` | `false` | 依赖缺失时启动失败 |
| `OGI_BOOT_REQUIREMENTS_CACHE_DIR` | `/tmp/ogi-boot` | 生成的依赖的临时/缓存目录 |

</details>

---

## Transform 中心

OpenGraphIntel 内置了一个转换市场。从[社区仓库](https://github.com/opengraphintel/ogi-transforms)浏览、安装和管理转换。

> **安全提示:** 需要 API 密钥的插件应被视为特权代码。如果插件可以访问您的密钥并发出出站网络请求,它可能会滥用或泄露这些密钥。在安装或运行第三方插件之前,请审查信任层级、权限和所需服务。```bash
# Search for transforms
uv run ogi transform search dns

# Install a transform
uv run ogi transform install shodan-host-lookup
```
### 内置转换类别

| 类别      | 示例                                    |
| -------- | --------------------------------------- |
| DNS      | A, AAAA, MX, NS, CNAME 记录              |
| IP & ASN | GeoIP, 反向IP, ASN 信息                  |
| SSL/TLS  | 证书透明度, SSL Labs                      |
| 电子邮件  | 邮件服务器验证, 泄露检查                   |
| Web      | WHOIS, 域名信息, 网页提取                  |
| 社交      | 用户名枚举, 社交资料                       |
| 哈希      | MD5, SHA1, SHA256 查询                    |
| 位置      | 地理编码, 天气, 附近ASN数据                |

### 支持的实体类型

`Person` &bull; `Username` &bull; `Domain` &bull; `IPAddress` &bull; `EmailAddress` &bull; `PhoneNumber` &bull; `Organization` &bull; `URL` &bull; `SocialMedia` &bull; `Hash` &bull; `Document` &bull; `Location` &bull; `ASNumber` &bull; `Network` &bull; `MXRecord` &bull; `NSRecord` &bull; `Nameserver` &bull; `SSLCertificate` &bull; `Subdomain` &bull; `HTTPHeader`

### 构建您自己的转换

想要构建自己的?请参阅[贡献指南](https://github.com/opengraphintel/ogi-transforms/blob/main/CONTRIBUTING.md)。

如果您的转换需要外部服务凭据,请在 `api_keys_required` 中声明。不要将机密存储在转换设置中。OGI 在 `API Keys` 下管理这些凭据,使用机密的插件被视为特权代码。

如果您的转换暴露了有上限的设置,例如 `max_results` 或 `max_content_chars`,请尽可能使用稳定的设置名称,而不是自定义的一次性名称。OGI 可以通过 `OGI_TRANSFORM_SETTING_MAX_OVERRIDES` 集中覆盖最大值,这有助于云部署强制执行限制,而本地用户可以移除它们。

每个插件都是一个包含 `plugin.yaml` 清单的目录:```yaml
name: my-transform
version: "1.0.0"
display_name: My Transform
description: What it does
author: Your Name
license: MIT
category: dns
input_types: [Domain]
output_types: [IPAddress]
permissions:
  network: true
  filesystem: false
  subprocess: false
```
## 架构

### 技术栈

| 层级            | 技术                                                                        |
| ---------------- | --------------------------------------------------------------------------- |
| 后端          | Python 3.14+, FastAPI, SQLModel, asyncpg / aiosqlite                        |
| 前端         | React 19, TypeScript 5.9, Sigma.js (graphology), Zustand, Tailwind CSS 4    |
| 数据库         | PostgreSQL 16 (primary) / SQLite (local fallback)                           |
| 认证与实时  | Supabase Auth + JWT + Realtime (optional in local mode)                     |
| 任务队列        | Redis 7 + RQ (async transforms)                                             |
| AI运行时       | Provider-backed AI Investigator worker with audited transform orchestration |
| 包管理器 | uv (backend), pnpm (frontend)                                               |
| 部署       | Docker, nginx, GHCR                                                         |

### 项目结构```
ogi/
├── backend/
│   └── ogi/
│       ├── api/            # REST API routes
│       ├── cli/            # CLI tool (Typer)
│       ├── db/             # Database layer (asyncpg + aiosqlite)
│       ├── engine/         # Graph engine & transform engine
│       ├── models/         # SQLModel definitions
│       ├── store/          # Data stores
│       ├── transforms/     # Built-in transforms
│       │   ├── dns/        # DNS resolution transforms
│       │   ├── cert/       # SSL certificate transforms
│       │   ├── email/      # Email enrichment
│       │   ├── hash/       # Hash lookups
│       │   ├── ip/         # IP/ASN/geolocation
│       │   ├── org/        # Organization info
│       │   ├── social/     # Social media
│       │   └── web/        # Web scraping/extraction
│       ├── worker/         # Async job queue (RQ)
│       ├── config.py       # Pydantic settings
│       └── main.py         # FastAPI entry point
├── frontend/
│   └── src/
│       ├── api/            # API client
│       ├── components/     # React components
│       ├── hooks/          # Custom hooks (realtime sync, etc.)
│       ├── stores/         # Zustand state management
│       ├── types/          # TypeScript types
│       └── App.tsx         # Main application
├── plugins/                # Community plugins directory
├── docs/                   # Documentation & images
├── docker-compose.yml      # Development deployment
├── docker-compose.prod.yml # Production deployment
└── .env.example            # Environment template
```
### 配置

OGI 使用 [pydantic-settings](https://docs.pydantic.dev/latest/concepts/pydantic_settings/) 并支持 `.env` 文件。运行时/后端变量以 `OGI_` 为前缀。

列表式设置可以接受:

- JSON 数组,例如 `["plugins","../plugins"]`
- 逗号分隔的字符串,例如 `plugins,../plugins`

<details>
<summary><strong>关键环境变量</strong></summary>

| 变量                                        | 描述                                                                                                      | 默认值                                             |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| `OGI_APP_NAME`                                  | 应用程序名称                                                                                                 | `OGI`                                               |
| `OGI_HOST`                                      | 后端绑定主机                                                                                                | `0.0.0.0`                                           |
| `OGI_PORT`                                      | 后端端口                                                                                                     | `8000`                                              |
| `OGI_CORS_ORIGINS`                              | 允许的前端来源                                                                                         | `http://localhost:5173,http://localhost:3000`       |
| `OGI_USE_SQLITE`                                | 使用 SQLite 而非 PostgreSQL                                                                                 | `true`                                              |
| `OGI_DB_PATH`                                   | SQLite 数据库文件路径                                                                                        | `ogi.db`                                            |
| `OGI_DATABASE_URL`                              | PostgreSQL 连接字符串                                                                                     | `postgresql://postgres:postgres@localhost:5432/ogi` |
| `OGI_REDIS_URL`                                 | 用于 RQ/任务的 Redis 连接字符串                                                                              | `redis://localhost:6379/0`                          |
| `OGI_RQ_QUEUE_NAME`                             | 转换任务的队列名称                                                                                    | `transforms`                                        |
| `OGI_TRANSFORM_TIMEOUT`                         | 每个转换任务的超时时间(秒)                                                                             | `300`                                               |
| `OGI_AGENT_WORKER_POLL_INTERVAL_SEC`            | AI 调查员工作线程的轮询间隔                                                                     | `2.0`                                               |
| `OGI_AGENT_CLAIM_TIMEOUT_SEC`                   | AI 调查员步骤恢复的过期声明超时                                                            | `120`                                               |
| `OGI_AUTO_RUN_MIGRATIONS`                       | 在本地非 SQLite 应用启动时自动运行 Alembic                                                                 | `true`                                              |
| `OGI_RUN_DB_MIGRATIONS`                         | 在容器入口点运行数据库迁移                                                                        | `false`                                             |
| `OGI_DB_MIGRATION_RETRIES`                      | 入口点迁移重试次数                                                                                | `30`                                                |
| `OGI_DB_MIGRATION_DELAY_SECONDS`                | 入口点迁移重试之间的延迟                                                                      | `2`                                                 |
| `OGI_PLUGIN_DIRS`                               | 插件搜索目录                                                                                        | `plugins,../plugins`                                |
| `OGI_DEPLOYMENT_MODE`                           | 部署模式(`self-hosted` 或 `cloud`)                                                                       | `self-hosted`                                       |
| `OGI_CLOUD_BILLING_ENABLED`                     | 启用仅限云的支持者计费和转换冷却强制执行                                           | `false`                                             |
| `OGI_FREE_TRANSFORM_COOLDOWN_SECONDS`           | 免费云用户转换器运行之间的冷却时间                                                                | `1800`                                              |
| `OGI_PAID_TRANSFORM_COOLDOWN_SECONDS`           | 付费云用户转换器运行之间的冷却时间                                                                | `0`                                                 |
| `OGI_STRIPE_SECRET_KEY`                         | 用于结账和门户会话的 Stripe 服务端密钥                                                   | 未设置                                               |
| `OGI_STRIPE_WEBHOOK_SECRET`                     | Stripe webhook 签名密钥                                                                                    | 未设置                                               |
| `OGI_STRIPE_SUPPORTER_PRICE_ID`                 | 支持者计划的 Stripe 周期性价格 ID                                                                 | 未设置                                               |
| `OGI_STRIPE_SUPPORTER_AMOUNT_CENTS`             | 支持者计划的显示金额                                                                            | `300`                                               |
| `OGI_STRIPE_SUPPORTER_CURRENCY`                 | 支持者计划的显示货币                                                                          | `usd`                                               |
| `OGI_BILLING_SUCCESS_URL`                       | 可选的 Stripe Checkout 成功重定向                                                                        | 从请求派生                                |
| `OGI_BILLING_CANCEL_URL`                        | 可选的 Stripe Checkout 取消重定向                                                                         | 从请求派生                                |
| `OGI_BILLING_PORTAL_RETURN_URL`                 | 可选的 Stripe 计费门户返回 URL                                                                        | 从请求派生                                |
| `OGI_REGISTRY_REPO`                             | 转换注册表 GitHub 仓库                                                                                   | `opengraphintel/ogi-transforms`                     |
| `OGI_REGISTRY_CACHE_TTL`                        | 注册表缓存 TTL(秒)                                                                                    | `3600`                                              |
| `OGI_TRANSFORM_SETTING_MAX_OVERRIDES`           | 可选全局最大覆盖映射,用于转换设置                                                          | 空                                               |
| `OGI_GITHUB_TOKEN`                              | 可选的 GitHub 令牌,用于注册表/API 速率限制                                                               | 未设置                                               |
| `OGI_SUPABASE_URL`                              | Supabase 项目 URL                                                                                             | 未设置                                               |
| `OGI_SUPABASE_ANON_KEY`                         | Supabase 匿名/公钥                                                                                         | 未设置                                               |
| `OGI_SUPABASE_SERVICE_ROLE_KEY`                 | Supabase 服务角色密钥                                                                                        | 未设置                                               |
| `OGI_SUPABASE_JWT_SECRET`                       | Supabase JWT 密钥                                                                                              | 未设置                                               |
| `OGI_SUPABASE_REDIRECT_URL`                     | 前端认证流程使用的重定向 URL                                                                         | 未设置                                               |
| `OGI_ADMIN_EMAILS`                              | 用于注册表/插件管理的管理员用户                                                                       | 未设置                                               |
| `OGI_TELEMETRY_ENABLED`                         | 启用或禁用安装级遥测                                                                   | `true`                                              |
| `OGI_TELEMETRY_LEVEL`                           | 遥测级别(`basic` 或 `full`)                                                                              | `full`                                              |
| `OGI_API_KEY_ENCRYPTION_KEY`                    | 用于加密 API 密钥存储的 Fernet 密钥                                                                         | 未设置,但强烈推荐                      |
| `OGI_API_KEY_INJECTION_ALLOW_COMMUNITY_PLUGINS` | 允许社区插件接收存储的 API 密钥                                                               | `true`                                              |
| `OGI_API_KEY_INJECTION_TRUSTED_TIERS_ONLY`      | 将存储的密钥注入限制为仅受信任层级                                                              | `false`                                             |
| `OGI_API_KEY_INJECTION_ALLOWED_TIERS`           | 当仅受信任模式启用时允许的层级                                                                  | `official,verified`                                 |
| `OGI_API_KEY_SERVICE_ALLOWLIST`                 | 用于存储密钥注入的可选允许服务                                                               | 空                                               |
| `OGI_API_KEY_SERVICE_BLOCKLIST`                 | 用于存储密钥注入的可选阻止服务                                                               | 空                                               |
| `OGI_LLM_PROVIDER`                              | 默认 AI 调查员提供程序回退                                                                        | `openai`                                            |
| `OGI_LLM_MODEL`                                 | 默认 AI 调查员模型回退                                                                           | `gpt-4.1-mini`                                      |
| `OGI_EXPOSE_ERROR_DETAILS`                      | 在 500 响应中包含内部详细信息                                                                        | `false`                                             |
| `OGI_SANDBOX_ENABLED`                           | 启用沙盒执行模式                                                                                    | `false`                                             |
| `OGI_SANDBOX_TIMEOUT`                           | 沙盒超时时间(秒)                                                                                       | `30`                                                |
| `OGI_SANDBOX_MEMORY_MB`                         | 沙盒内存限制(MB)                                                                                       | `256`                                               |
| `OGI_SANDBOX_ALLOWED_TIERS`                     | 云沙盒模式下允许的层级                                                                              | `official,verified`                                 |
| `OGI_BOOT_REQUIREMENTS_ENABLE`                  | 启用启动时插件依赖安装                                                                       | `true`                                              |
| `OGI_BOOT_REQUIREMENTS_FILE`                    | 启动依赖文件路径                                                                                      | `/app/plugins/requirements.txt`                     |
| `OGI_BOOT_LOCK_FILE`                            | 启动锁定文件路径                                                                                              | `/app/plugins/ogi-lock.json`                        |
| `OGI_BOOT_REQUIREMENTS_STRICT`                  | 如果缺少插件依赖则启动失败                                                                  | `false`                                             |
| `OGI_BOOT_REQUIREMENTS_CACHE_DIR`               | 启动依赖生成的临时/缓存目录                                                             | `/tmp/ogi-boot`                                     |
| `OGI_FRONTEND_PORT`                             | 本地 Docker 前端端口映射                                                                               | `3000`                                              |
| `OGI_IMAGE_TAG`                                 | 用于 compose/Coolify 风格部署的生产镜像标签                                                                                                            | `latest`                                            |
| `OGI_BACKEND_IMAGE`                             | 可选的后端镜像覆盖                                                                                  | `ghcr.io/khashashin/ogi-backend`                    |
| `OGI_WORKER_IMAGE`                              | 可选的工作线程镜像覆盖。默认为后端镜像,因为工作线程和后端共享相同的镜像构建。 | `ghcr.io/khashashin/ogi-backend`                    |
| `OGI_FRONTEND_IMAGE`                            | 可选的前端镜像覆盖                                                                                 | `ghcr.io/khashashin/ogi-frontend`                   |
| `OGI_CLI_BEARER_TOKEN`                          | 可选的 CLI 持有者令牌,用于启用认证的后端                                                              | 未设置                                               |

完整列表请参见 [`.env.example`](https://github.com/khashashin/ogi/blob/main/.env.example)。

</details>

## 开发

### 运行测试```bash
# Backend
cd backend
OGI_DB_PATH=":memory:" OGI_USE_SQLITE=true uv run pytest

# Frontend
cd frontend
pnpm test
```
### Lint 检查与类型检查```bash
# Backend
cd backend

---

[Read more](https://github.com/khashashin/ogi)
下载工具