# 飞书 Agent 配置指南

> 让你的个人电脑变成飞书机器人的大脑，随时随地通过飞书对话控制你的电脑。

---

## 📋 目录

1. [前置条件](#前置条件)
2. [方案选择](#方案选择)
3. [企业用户配置](#企业用户配置)
4. [个人用户配置](#个人用户配置)
5. [项目配置](#项目配置)
6. [运行与测试](#运行与测试)
7. [常见问题](#常见问题)

---

## 前置条件

### 必需环境

- Python 3.8+
- 本项目完整代码
- LLM API 密钥（Claude/OpenAI 等，已在 `llmcore/mykeys` 中配置）

### 安装依赖

```bash
pip install lark-oapi
```

---

## 方案选择

| 你的情况           | 推荐方案                   | 预计耗时  |
| ------------------ | -------------------------- | --------- |
| 公司已有飞书企业版 | [企业用户配置](#企业用户配置) | 5-10分钟  |
| 个人用户/学习测试  | [个人用户配置](#个人用户配置) | 10-15分钟 |

---

## 企业用户配置

> 适用于：你的公司使用飞书，你有权限创建应用或联系管理员审批

### 步骤 1：创建应用

1. 访问 [飞书开放平台](https://open.feishu.cn/)
2. 登录你的企业飞书账号
3. 点击右上角「创建应用」→「企业自建应用」
4. 填写应用信息：
   - 应用名称：`我的Agent助手`（可自定义）
   - 应用描述：`个人AI助手`
   - 应用图标：可选

### 步骤 2：添加机器人能力

1. 进入应用详情页
2. 左侧菜单选择「添加应用能力」
3. 找到「机器人」，点击「添加」
4. 配置机器人信息（可保持默认）

### 步骤 3：配置权限

1. 左侧菜单「权限管理」→「API 权限」
2. 搜索并开通以下权限：
   - `im:message` - 获取与发送单聊、群组消息
   - `im:message:send_as_bot` - 以应用身份发送消息
   - `contact:user.id:readonly` - 获取用户 ID

### 步骤 4：获取凭证

1. 左侧菜单「凭证与基础信息」
2. 记录以下信息：
   - **App ID**：`cli_xxxxxxxx`
   - **App Secret**：`xxxxxxxxxxxxxxxx`

### 步骤 5：发布应用

1. 左侧菜单「版本管理与发布」
2. 点击「创建版本」
3. 填写版本信息，提交审核
4. **联系企业管理员审批**（或自己是管理员直接审批）

### 步骤 6：获取你的 Open ID

1. 应用审批通过后，在飞书中搜索你的机器人
2. 给机器人发送任意消息
3. 运行以下代码获取你的 Open ID：

```python
# 临时运行一次，获取 open_id
import lark_oapi as lark
from lark_oapi.api.im.v1 import *

client = lark.Client.builder().app_id("你的APP_ID").app_secret("你的APP_SECRET").build()

# 监听消息，打印发送者的 open_id
def handle(data):
    print(f"你的 Open ID: {data.event.sender.sender_id.open_id}")

# ... 或者查看 frontends/fsapp.py 运行时的日志输出
```

---

## 个人用户配置

> 适用于：没有企业飞书账号，想个人测试使用

### 步骤 1：创建测试企业

1. 访问 [飞书开放平台](https://open.feishu.cn/)
2. 使用个人手机号注册/登录
3. 点击右上角头像 →「创建测试企业」
4. 填写企业名称（如：`我的测试工作区`）
5. 创建完成后，你就是这个测试企业的**管理员**

### 步骤 2：创建应用

> 与企业用户步骤相同

1. 点击「创建应用」→「企业自建应用」
2. 填写应用信息

### 步骤 3：添加机器人能力

1. 进入应用详情页
2. 「添加应用能力」→「机器人」→「添加」

### 步骤 4：配置权限

1. 「权限管理」→「API 权限」
2. 开通权限：
   - `im:message`
   - `im:message:send_as_bot`
   - `contact:user.id:readonly`

### 步骤 5：获取凭证

1. 「凭证与基础信息」
2. 复制 **App ID** 和 **App Secret**

### 步骤 6：发布应用（测试企业可自审批）

1. 「版本管理与发布」→「创建版本」
2. 提交后，进入 [飞书管理后台](https://feishu.cn/admin)
3. 「工作台」→「应用审核」→ 通过你的应用

### 步骤 7：在飞书客户端使用

1. 下载 [飞书客户端](https://www.feishu.cn/download)
2. 登录你的测试企业账号
3. 搜索你创建的机器人名称
4. 开始对话！

---

## 项目配置

### 配置飞书凭证

编辑项目根目录的 `mykey.py`，添加：

```python
# 飞书应用凭证
fs_app_id = "cli_xxxxxxxxxxxxxxxx"      # 替换为你的 App ID
fs_app_secret = "xxxxxxxxxxxxxxxx"       # 替换为你的 App Secret

# 允许使用的用户 Open ID 列表（可选，留空则允许所有人）
fs_allowed_users = [
    "ou_xxxxxxxxxxxxxxxxxxxxxxxx",       # 你的 Open ID
]
```

### 确认 LLM 配置

确保 `llmcore/mykeys` 中已配置 LLM API 密钥：

```python
# 示例：Claude API
claude_config = {
    'apikey': 'sk-ant-xxxxx',
    'apibase': 'https://api.anthropic.com',
    'model': 'claude-sonnet-4-20250514'
}
```

---

## 运行与测试

### 启动服务

```bash
cd /path/to/pc-agent-loop
python frontends/fsapp.py
```

### 预期输出

```
==================================================
飞书 Agent 已启动（长连接模式）
App ID: cli_xxxxxxxxxxxxxxxx
等待消息...
==================================================
```

### 测试对话

1. 打开飞书客户端
2. 找到你的机器人
3. 发送：`你好`
4. 等待回复（首次可能需要几秒）

---

## 可用命令

在与机器人对话时，可以使用以下特殊命令：

| 命令 | 说明 |
| ---- | ---- |
| `/new` | 开始新对话，清除当前上下文 |
| `/stop` | 中止当前正在执行的任务 |
| `/restore <关键词>` | 恢复之前的对话上下文（根据关键词搜索历史记录） |

### 命令示例

```
/new                    # 清空对话，重新开始
/stop                   # 停止正在运行的任务
/restore 昨天的任务      # 恢复包含"昨天的任务"关键词的历史对话
```

### 消息显示说明

- ⏳ 表示任务正在执行中
- 消息会实时更新，无需等待完成
- 超长回复会自动分段发送

---

## 常见问题

### Q: 提示「应用未发布」或「无权限」

**A:** 确保应用已发布且管理员已审批。测试企业用户需要在管理后台手动审批。

### Q: 发送消息后没有回复

**A:** 检查：

1. `frontends/fsapp.py` 是否在运行
2. 终端是否有错误日志
3. LLM API 密钥是否配置正确

### Q: 提示「invalid app_id」

**A:** 检查 `mykey.py` 中的 `fs_app_id` 是否正确复制（包含 `cli_` 前缀）

### Q: 如何获取自己的 Open ID？

**A:** 运行 `frontends/fsapp.py` 后给机器人发消息，查看终端日志中的 `open_id`

### Q: 能否多人同时使用？

**A:** 不能。一个应用只能有一个长连接，连接到一台电脑。每个人需要创建自己的应用。

---

## 架构说明

```
你的飞书 ←→ 飞书云 ←→ 长连接 ←→ frontends/fsapp.py ←→ Agent ←→ 你的电脑
                              ↑
                         运行在你电脑上
```

- 消息通过飞书云转发到你电脑上运行的 `frontends/fsapp.py`
- Agent 处理请求后，通过飞书 API 回复消息
- **你的电脑必须保持运行** `frontends/fsapp.py` 才能响应消息

---

## 下一步

- 自定义 Agent 行为：编辑 `assets/sys_prompt.txt`
- 添加新工具：编辑 `assets/tools_schema.json`
- 查看日志：运行时观察终端输出

---

*文档版本：v1.1 | 更新日期：2026-03-07*

**v1.1 更新内容：**
- 新增「可用命令」章节（/new, /stop, /restore）
- 新增消息显示说明（⏳ 进行中标记、实时更新等）
