# Duclaw

AI Agent 管理框架 — 支持飞书 Channel、团队协作、定时任务、Skill 扩展、Web 管理界面。

使用 Anthropic 标准协议（兼容 Claude / GLM / Kimi 等），一行命令启动你的 AI Agent。

## Quick Start

> **前提**：Node.js >= 18，Redis 运行中（默认 `redis://localhost:6379`）

```bash
# 安装
npm install -g duclaw-cli

# 初始化项目
mkdir my-agent && cd my-agent
duclaw-cli init

# 编辑配置（见下方说明）
# 启动
duclaw-cli start
```

## 配置

`duclaw-cli init` 会生成以下文件：

| 文件 | 说明 |
|------|------|
| `duclaw.json` | Channel 配置（飞书 appId / appSecret） |
| `.env` | LLM API、Redis、OSS 等环境变量 |
| `skills/` | 自定义技能目录 |

### duclaw.json

```json
{
    "channels": {
        "feishu": {
            "enabled": true,
            "appId": "YOUR_FEISHU_APP_ID",
            "appSecret": "YOUR_FEISHU_APP_SECRET"
        }
    }
}
```

### .env (必填项)

```bash
# LLM 配置（Anthropic 兼容协议）
export ANTHROPIC_BASE_URL="https://api.anthropic.com"
export ANTHROPIC_AUTH_TOKEN="your-api-key"
export ANTHROPIC_MODEL="claude-sonnet-4-20250514"

# Redis
export REDIS_URL="redis://localhost:6379"
```

支持的 LLM 提供商（只要兼容 Anthropic Messages API）：

| 提供商 | BASE_URL | 示例模型 |
|--------|----------|----------|
| Anthropic | `https://api.anthropic.com` | `claude-sonnet-4-20250514` |
| 智谱 GLM | `https://open.bigmodel.cn/api/anthropic` | `glm-5` |
| Kimi | `https://api.moonshot.cn/anthropic` | `kimi-k2.5` |

> 如果 API 使用 Bearer Token 风格，需额外设置 `ANTHROPIC_AUTH_STYLE="bearer"`

## 飞书机器人配置

1. 前往 [飞书开放平台](https://open.feishu.cn/app) 创建应用
2. 添加权限：`im:message`（消息读写）
3. 添加事件订阅：`im.message.receive_v1`，订阅方式选择 **长连接**
4. 发布应用版本
5. 将 appId 和 appSecret 填入 `duclaw.json`

## CLI 命令

```bash
duclaw-cli init [目录]     # 初始化项目
duclaw-cli start           # 启动服务
duclaw-cli                 # 等同于 start
duclaw-cli --help          # 帮助
duclaw-cli --version       # 版本
```

## 数据目录

运行时数据默认存储在 `~/.duclaw/`：

| 路径 | 说明 | 环境变量覆盖 |
|------|------|-------------|
| `~/.duclaw/cron/jobs.json` | 定时任务配置 | `JOB_PATH` |
| `~/.duclaw/cron/` | 任务执行历史 | `JOB_HISTORY_DIR` |
| `~/.duclaw/data/` | 临时文件 | `APP_TEMP_DIR` |


## 依赖

- Node.js >= 18
- Redis（无密码）
- 飞书开放平台应用（用于 Channel 接入）

## License

Private

## 打赏

如果 Duclaw 对你有帮助，欢迎请作者喝杯咖啡 ☕

<p align="center">
  <img src="https://public-img0.oss-cn-beijing.aliyuncs.com/a26aee81e6e5ba739ebb7abfd9dadfad.jpg" alt="打赏二维码" width="300">
</p>
