Files
oniagent/README.md

177 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ONI Agent — 缺氧 AI 助手工具集
[Oxygen Not Included](https://www.kleientertainment.com/games/oxygen-not-included)(《缺氧》)高难度太空殖民模拟游戏。
**ONI Agent** 为 AI 提供"眼手"系统RESTful API + ModC# Harmony+ Python 工具链,让任何支持 Tool Use 的模型都能像人类一样操作游戏。
## 架构
```
AI Agent (Claude/GPT/任何支持 Tool Use 的模型)
↕ Python CLI (tools/oni_api.py) + HTTP API (RESTful JSON, 端口 23876)
ONI Mod (C# Harmony) ←→ Python Toolchain
Oxygen Not Included (游戏进程)
```
## 快速开始
### 1. 安装 Mod
编译后将 `mod/` 下的 `mod.yaml` + `mod_info.yaml` + 编译产出的 `ONIAgentBridge.dll` 放入游戏 Mod 目录:
```
Windows: %USERPROFILE%\Documents\Klei\OxygenNotIncluded\mods\local\ONIAgentBridge\
```
部署后目录结构:
```
ONIAgentBridge/
├── mod.yaml # Mod 元信息
├── mod_info.yaml # DLC/版本配置
└── ONIAgentBridge.dll # Mod DLL
```
### 2. 启动游戏
启动 ONI → Mod 菜单 → 启用 **ONI Agent Bridge** → 加载存档。
### 3. 验证连接
```bash
python tools/oni_api.py health
# 输出: Status: ok Version: 2.0.0
```
## 工具链
### `tools/oni_api.py` — 主 CLI 客户端
```bash
# 状态查询
python tools/oni_api.py status # 游戏总览
python tools/oni_api.py resources # 资源清单
python tools/oni_api.py buildings # 全部建筑
python tools/oni_api.py duplicants # 复制人
python tools/oni_api.py research # 科研
python tools/oni_api.py rooms # 房间
python tools/oni_api.py events # 事件日志
# 地图数据
python tools/oni_api.py cell <x> <y> # 单格
python tools/oni_api.py cells <x> <y> <w> <h> # 矩形区域
python tools/oni_api.py slice <axis> <i> <s> <e> # 行列扫描
python tools/oni_api.py gas <x> <y> <r> # 气体分布
python tools/oni_api.py explore <x> <y> <w> <h> # AI摘要
# 注册表查询
python tools/oni_api.py registry buildings [filter]
python tools/oni_api.py registry elements [filter]
python tools/oni_api.py registry techs
# 操作(自动拉视角)
python tools/oni_api.py dig <x> <y> <w> <h> # 挖掘
python tools/oni_api.py build <id> <x> <y> # 建造
python tools/oni_api.py deconstruct <x> <y> # 拆除
python tools/oni_api.py prioritize <x> <y> <1-9> # 优先级
python tools/oni_api.py research_select <techId> # 科研
python tools/oni_api.py mop <x> <y> # 清理
python tools/oni_api.py harvest <x> <y> # 收获
python tools/oni_api.py pause [reason] # 暂停
python tools/oni_api.py unpause [speed] # 恢复
python tools/oni_api.py speed <1-3> # 速度
python tools/oni_api.py camera <x> <y> [zoom] # 视角
python tools/oni_api.py batch <file> # 批量
python tools/oni_api.py save [name] # 存档
python tools/oni_api.py load <name> # 读档
python tools/oni_api.py priority_global <t> <p> # 全局优先级
python tools/oni_api.py priority_type <t> <p> # 类型优先级
```
### `tools/oni_analyzer.py` — 智能分析器
```bash
python tools/oni_analyzer.py
# 分析:氧气/食物/电力/温度/水/科研 六维度 + 建议
```
### `tools/oni_builder.py` — 蓝图
```bash
python tools/oni_builder.py list # 列出蓝图
python tools/oni_builder.py build spom x y # 部署SPOM
```
蓝图spom, spom_mini, toilet_loop, farm_mealwood, bedroom, cooling, ranch_hatch
### `tools/oni_commander.py` — 高级指令
```bash
python tools/oni_commander.py diagnose # 全面诊断
python tools/oni_commander.py emergency_o2 # 紧急制氧
python tools/oni_commander.py fix_co2 # 处理CO₂
python tools/oni_commander.py fix_overload # 过载电路
python tools/oni_commander.py expand_base x y w h # 拓展
```
### `tools/event_daemon.py` — 事件守护进程
```bash
python tools/event_daemon.py [interval_seconds]
# 持续轮询事件,分类显示到控制台
```
## API 端点
| 类别 | 端点 | 方法 |
|------|------|------|
| 健康 | `/health` | GET |
| 状态 | `/api/state/game`, `resources`, `buildings`, `duplicants`, `research`, `rooms`, `alert`, `camera`, `storage`, `saves`, `events` | GET |
| 地图 | `/api/state/cell`, `cells`, `cells/slice`, `gas` | GET |
| 注册表 | `/api/registry/buildings`, `elements`, `techs` | GET |
| 截图 | `/api/screenshot/latest` | GET |
| 操作 | `/api/action/pause`, `unpause`, `speed`, `dig`, `build`, `deconstruct`, `prioritize`, `research`, `mop`, `harvest`, `batch`, `save`, `load`, `camera`, `priority_global`, `priority_type` | POST |
| | **所有操作自动拉视角到坐标** | |
错误格式:`{success: false, error: "...", errorMessage: "..."}`
## 项目结构
```
oni-agent/
├── README.md
├── SKILL.md # AI Agent 完整缺氧教程
├── config.json # Mod 连接配置
├── mod/
│ ├── ONIAgentBridge.cs # Mod 源码 (C# Harmony)
│ ├── ONIAgentBridge.csproj
│ ├── mod.yaml / mod_info.yaml
├── tools/ # AI 直接调用的运行时工具
│ ├── oni_api.py # CLI 客户端 (20+ 子命令)
│ ├── oni_analyzer.py # 六维度智能分析
│ ├── oni_builder.py # 蓝图建造
│ ├── oni_commander.py # 高级指令
│ └── event_daemon.py # 事件守护进程
├── scripts/ # 开发者/构建用脚本
│ ├── build_mod.sh # 编译 Mod
│ ├── setup.sh # 环境初始化
│ ├── watch.sh # 热重载
│ ├── fix_csharp.py # C# 修复
│ ├── annotate_apis.py # API 标注
│ ├── auto_analyze.sh # 自动分析
│ └── auto_repair.sh # 自动修复
├── docs/
│ ├── AI_KNOWLEDGE_BASE.md # AI 知识库 (建筑/元素/科技)
│ └── MOD_DEV_GUIDE.md # Mod 开发指南
```
## 文档索引
| 文档 | 目标 | 内容 |
|------|------|------|
| `SKILL.md` | AI Agent | 完整游玩教程:分阶段目标/材料/可达性/方块/操作协议 |
| `docs/AI_KNOWLEDGE_BASE.md` | AI Agent | 建筑ID/元素属性/科技树/游戏机制参考 |
| `README.md` | 人类用户 | ← 你在看这个 |
## 许可证
MIT