# AgentWindow

<p align="center">
  <strong>简单而强大的 AI 代理交互窗口</strong>
</p>

<p align="center">
  <i>通过熟悉的聊天平台，轻松驾驭后端 AI 能力</i>
</p>

<p align="center">
  <a href="README.zh-CN.md">🇨🇳 中文版</a> | <a href="README.md">🇺🇸 English</a>
</p>

---

## 为什么选择 AgentWindow？

**AgentWindow = 你的聊天软件 + 强大 AI 后端**

- **极简交互** - 在 Discord/Slack/Telegram 中自然对话，无需学习新界面
- **统一窗口** - 所有 AI 代理能力通过一个"窗口"呈现，像使用同事一样简单
- **多平台支持** - 今天用 Discord，明天无缝切换到 Slack 或 Telegram
- **安全隔离** - Docker 沙箱环境，AI 操作与你的系统安全隔离
- **权限可控** - 通过聊天按钮批准敏感操作，完全掌控 AI 行为
- **多实例管理** - 一套代码，多个项目，统一管理

### 适用场景

- **代码协作** - 让 AI 团队直接在你的开发频道中工作
- **文档处理** - 扔给 AI 文档，获得结构化输出
- **数据分析** - 描述需求，AI 处理后返回结果
- **自动化任务** - 通过聊天触发脚本和定时任务

---

## 快速开始

```bash
# 全局安装
npm install -g agent-window

# 初始化多机器人目录
agent-window init

# 添加一个机器人实例
agent-window add-bot myproject

# 启动所有机器人
pm2 start ~/bots/ecosystem.config.cjs
```

---

## CLI 命令

```bash
# 单机器人命令
agent-window setup              # 交互式设置向导
agent-window start              # 启动网关
agent-window stop               # 停止网关
agent-window restart            # 重启网关
agent-window status             # 显示状态
agent-window logs               # 查看日志（实时）
agent-window update             # 更新到最新版本
agent-window config             # 显示配置位置

# 多机器人命令
agent-window init                # 初始化 ~/bots 目录
agent-window add-bot <name>     # 添加新的机器人实例
```

---

## 配置

每个机器人实例都有自己的 `config.json`：

```json
{
  "BOT_TOKEN": "你的 Discord 机器人令牌",
  "CLAUDE_CODE_OAUTH_TOKEN": "你的 Claude Code OAuth 令牌",
  "PROJECT_DIR": "/你的/项目/路径",
  "ALLOWED_CHANNELS": "频道ID-1,频道ID-2"
}
```

### 必填项

| 键 | 说明 |
|-----|------|
| `BOT_TOKEN` | Discord 机器人令牌 |
| `CLAUDE_CODE_OAUTH_TOKEN` | Claude Code OAuth 令牌 |
| `PROJECT_DIR` | 要工作的项目目录 |
| `ALLOWED_CHANNELS` | 逗号分隔的频道 ID |

### 可选项

查看 `config/config.example.json` 了解所有选项。

---

## 聊天命令

在 Discord 中，提及机器人：

```
@bot <消息>               # 发送消息（继续上次会话）
@bot -n <消息>            # 开始新会话
@bot -r <会话ID> <消息>   # 恢复指定会话
@bot /pick                # 选择会话（按钮界面）
@bot /sessions            # 列出最近的会话
@bot /status              # 显示机器人状态
@bot /help                # 显示帮助
```

---

## 多机器人管理

在一个目录中组织多个机器人实例：

```
~/bots/
├── agent-window/          # 共享代码（链接到全局安装）
├── project1/config.json   # 机器人1 配置
├── project2/config.json   # 机器人2 配置
└── ecosystem.config.cjs    # PM2 统一管理
```

**统一命令：**
```bash
pm2 start ~/bots/ecosystem.config.cjs   # 启动所有
pm2 stop all                             # 停止所有
pm2 restart all                          # 重启所有
pm2 logs                                  # 查看所有日志
```

---

## 更新

```bash
agent-window update
```

---

## 许可证

MIT
