# Ask Agent

> 一个终端智能体工具 - 支持多模型切换、角色扮演、Telegram Bot 、QQ Bot 和 微信 Bot

- **Type:** MCP server
- **Install:** `agentstack add mcp-lanlinju-ask-agent`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [lanlinju](https://agentstack.voostack.com/s/lanlinju)
- **Installs:** 0
- **Category:** [Communication](https://agentstack.voostack.com/c/communication)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [lanlinju](https://github.com/lanlinju)
- **Source:** https://github.com/lanlinju/ask-agent

## Install

```sh
agentstack add mcp-lanlinju-ask-agent
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Ask Agent (ag)

一个基于 DeepSeek API 的高效终端问答工具，支持智能体模式

## 特性

- 🚀 **流式输出** - 实时显示 API 响应，无需等待
- 💬 **对话上下文** - 保持完整的对话历史，支持多轮对话
- ⚡  **管道友好** - 支持管道输入，可与其他命令组合
- 📝 **交互式模式** - 直观的聊天界面
- 🔧 **多种使用方式** - 交互、一问一答、管道模式
- 🤖 **智能体模式** - 支持代码编辑、文件操作等高级功能
- 🧩 **可扩展技能** - 通过 Skills 加载领域知识
- 🔌 **MCP 支持** - 集成 Model Context Protocol，支持外部工具
- 📱 **Telegram Bot 集成** - 支持通过 Telegram Bot 远程控制智能体
- 🐧 **QQ Bot 集成** - 支持通过 QQ Bot 远程控制智能体
- 💬 **微信 Bot 集成** - 支持通过微信 Bot 远程控制智能体 (仅支持文本消息)
- 🎭 **角色扮演模式** - 支持角色扮演对话，每个角色独立对话历史
- 🎯 **多 Provider 支持** - 支持多个 AI Provider（OpenAI、DeepSeek 等）
- 🔄 **模型切换** - 交互式选择和切换不同的 AI 模型
- 📦 **自定义命令** - 将常用提示词保存为命令，快速调用
- 📁 **统一配置管理** - 支持全局配置目录 `~/.ask-agent/` 和项目本地配置
- 🧠 **记忆系统** - 跨会话持久记忆
- 🔗 **ACP 支持** - Agent Client Protocol，可在 Zed、JetBrains 等 IDE 中使用
- 🧩 **Agent Team** - 持久化命名队友，独立线程运行，通过 JSONL 邮箱通信（`--agent-team` 启用）
- 🖼️ **图片理解** - 支持图片识别和分析，通过 URL 或本地文件发送图片给模型
- 🎤 **语音合成** - 角色扮演模式支持语音回复，可使用预置音色或克隆音色
- 🎙️ **语音识别** - Telegram Bot 支持语音消息识别，自动转文字并处理
- 💤 **主动消息** - 用户长时间未聊天时自动发送问候消息（QQ/Telegram/WeChat）

## 使用示例截图

  
    角色扮演模式
    ACP 使用示例
  
  
    智能体模式示例
    Telegram Bot 示例
  

## 安装

### 前置要求

- Python 3.7+
- 至少一个有效的 AI Provider API 密钥（DeepSeek、OpenAI 等）

### 步骤

1. 克隆项目
```bash
git clone https://github.com/lanlinju/ask-agent
cd ask-agent
```

2. 安装依赖
```bash
# 方式一：从 requirements.txt 安装（推荐）
pip install -r requirements.txt

# 方式二：单独安装依赖
pip install python-dotenv requests python-telegram-bot prompt-toolkit websockets silk-python qrcode
```

3. 初始化配置目录

将项目自带的角色、智能体、语音样本及示例配置文件复制到全局配置目录：

```bash
# 创建全局配置目录
mkdir -p ~/.ask-agent

# 复制角色、智能体、技能、命令、语音样本
cp -r roles ~/.ask-agent/roles
cp -r agents ~/.ask-agent/agents
cp -r skills ~/.ask-agent/skills
cp -r command ~/.ask-agent/command
cp -r voices ~/.ask-agent/voices

# 复制示例配置并重命名为 config.json
cp config.example.json ~/.ask-agent/config.json
```

然后编辑 `~/.ask-agent/config.json`，根据你的需求修改配置：

- **Provider** — 在 `provider.providers` 中设置你的 API Key（推荐使用 `env:xxx` 环境变量引用）
- **MCP 服务器** — 在 `mcp.servers` 中配置或移除不需要的服务器
- **角色/智能体** — `role` 和 `agent` 部分可按需增删，提示词文件在 `roles/` 和 `agents/` 目录中

> **提示：** 你也可以只保留 `config.json` 中需要的部分，删除不用的 namespace。程序会自动回退到对应的旧文件（`providers.json`、`mcp.json` 等）。

4. 启动程序
```bash
# 方式一：使用启动脚本（Linux/Mac）
./ag

# 方式二：使用 Python 直接运行
python ag

# 方式三：Windows 系统
./ag.bat
```

6. 创建软链接（可选，简化使用）
```bash
# 创建 ~/.local/bin 目录（如果不存在）
mkdir -p ~/.local/bin

# 创建软链接
ln -s "$(pwd)/ag" ~/.local/bin/ag

# 确保 ~/.local/bin 在 PATH 中（如果不在，添加到 ~/.bashrc 或 ~/.zshrc）
export PATH="$HOME/.local/bin:$PATH"
```

之后就可以直接使用 `ag` 命令了！

7. 配置 AI Providers

 ag 支持多个 AI Provider，通过 `providers.json` 配置文件管理。

 创建 `~/.ask-agent/providers.json` 配置文件（示例）：

```json
{
  "model": "deepseek/deepseek-chat",
  "thinking": "enabled",
  "reasoning_effort": "high",
  "providers": {
    "deepseek": {
      "name": "DeepSeek",
      "enabled": true,
      "options": {
        "baseURL": "https://api.deepseek.com/v1",
        "apiKey": "your_api_key_here",
      },
      "models": {
        "deepseek-v4-flash": {
          "name": "DeepSeek V4 Flash",
          "thinking": "enabled"
        },
        "deepseek-v4-pro": {
          "name": "DeepSeek V4 Pro"
        }
      }
    },
    "openai": {
      "name": "OpenAI",
      "enabled": true,
      "options": {
        "baseURL": "https://api.openai.com/v1",
        "apiKey": "your_api_key_here"
      },
      "models": {
        "gpt-4o": {
          "name": "GPT-4o"
        },
        "gpt-4-turbo": {
          "name": "GPT-4 Turbo"
        }
      }
    },
    "mimo": {
      "name": "MiMo",
      "enabled": true,
      "options": {
        "baseURL": "https://api.xiaomimimo.com/v1",
        "apiKey": "env:MIMO_API_KEY",
        "thinking": "enabled"
      },
      "models": {
        "mimo-v2.5": {
          "name": "Mimo V2.5",
          "modalities": {
            "input": ["text", "image", "audio"],
            "output": ["text"]
          }
        },
        "mimo-v2.5-pro": {
          "name": "Mimo V2.5 Pro"
        },
        "mimo-v2.5-tts-voiceclone": {
          "name": "Mimo V2.5 TTS VoiceClone"
        }
      }
    }
  }
}
```

**API Key 设置：**

支持环境变量引用（推荐），格式为 `env:ENV_VAR_NAME`。

**方式一：环境变量（推荐用于长期使用）**
```bash
# Linux
export DEEPSEEK_API_KEY="sk-your-api-key-here"
export OPENAI_API_KEY="sk-openai-api-key-here"

# Windows
$env:DEEPSEEK_API_KEY="sk-your-api-key-here"
$env:OPENAI_API_KEY="sk-openai-api-key-here"

# 为了永久设置，添加到 ~/.bashrc 或 ~/.zshrc
echo 'export DEEPSEEK_API_KEY="sk-your-api-key-here"' >> ~/.bashrc
source ~/.bashrc
```

**方式二：直接在配置文件中设置**
```json
"options": {
  "baseURL": "https://api.deepseek.com/v1",
  "apiKey": "sk-your-api-key-here"
}
```

**方式三：命令行参数（不推荐，仅用于单次测试）**
```bash
ag --api-key "sk-your-api-key-here" "你的问题"
```

**方式四：.env 文件**

在项目根目录创建 `.env` 文件：

```bash
# DeepSeek API 配置
DEEPSEEK_API_KEY=sk-your-api-key-here

# OpenAI API 配置
OPENAI_API_KEY=sk-openai-api-key-here

# 日志配置
LOG_LEVEL=ERROR
```

 .env 文件会自动被加载，无需手动设置环境变量。

 6. 配置文件路径管理

 Ask Agent 支持全局配置和项目本地配置两种方式，配置文件存储规则如下：

 | 配置文件 | 存储位置 | 查找规则 |
 |----------|---------|---------|
 | `config.json` | `~/.ask-agent/config.json` | 固定存储在用户目录 |
 | `roles.json` | `./roles.json` 或 `~/.ask-agent/roles.json` | 优先项目目录，备选用户目录 |
 | `agents.json` | `./agents.json` | 优先项目目录，备选用户目录 |
 | `providers.json` | `~/.ask-agent/providers.json` | 优先用户目录，备选项目目录 |
 | `command.json` | 当前目录 `command.json` | 优先项目目录，备选用户目录 |
 | `roles/` 目录 | `./roles/` | 优先项目目录（有文件），备选用户目录 |
 | `agents/` 目录 | `./agents/` | 优先项目目录（有文件），备选用户目录 |

 **配置目录结构：**
 ```
 ~/.ask-agent/
 ├── config.json       # 全局配置文件（模式、设置等）
 ├── providers.json    # 全局 AI Provider 配置
 ├── roles.json        # 全局角色配置
 ├── roles/            # 全局角色文件
 │   ├── frieren.md
 │   └── 纳西妲.md
 ├── agents/           # 全局智能体文件
 │   ├── coding-agent.md
 │   └── command-line-agent.md
 ├── skills/           # 技能目录
 │   ├── pdf/
 │   │   └── SKILL.md
 │   └── mcp-builder/
 │       └── SKILL.md
 ├── command/          # 自定义命令目录
 │   ├── review.md
 │   └── explain.md
 ├── voices/           # 语音样本目录（用于音色克隆）
 │   └── nahida.mp3
 └── cache/            # 缓存目录
     ├── ask/
     ├── agent/
     ├── translate/
     └── role/
 ```

 **首次使用：**
 - 程序会自动创建 `~/.ask-agent/` 目录
 - 配置文件会在首次使用时生成或从示例创建

 7. 获取 API 密钥

访问以下官网获取 API 密钥：

**DeepSeek：**
访问 [DeepSeek 官网](https://www.deepseek.com) 获取 API 密钥：
1. 前往 https://platform.deepseek.com/
2. 注册或登录账户
3. 进入 API Keys 页面
4. 创建新的 API 密钥
5. 在 providers.json 中设置环境变量引用或直接设置

## 使用

### 1. 交互模式 - 持续对话

```bash
ag

# 或者使用完整路径
python ag
./ag
```

输入问题后，ag 会保持对话历史，支持多轮交互。

**支持的命令：**

| 命令 | 说明 |
|------|------|
| `exit` 或 `/exit` | 退出程序 |
| `/ask` | 进入问答模式 |
| `/agent` | 进入智能体模式 |
| `/agent ` | 进入指定智能体 |
| `/agent -l` | 列出所有可用智能体 |
| `/agents` | 交互式选择智能体 |
| `/e` | 进入翻译模式 |
| `/role` | 进入角色扮演模式 |
| `/role ` | 进入指定角色 |
| `/role -l` | 列出所有可用角色 |
| `/roles` | 交互式选择角色 |
| `/voice` | 显示当前角色语音状态 |
| `/voice enable` | 启用角色语音 |
| `/voice disable` | 禁用角色语音 |
| `/model` | 交互式选择模型 |
| `/model ` | 切换到指定ID的模型 |
| `/model -l` | 列出所有可用模型 |
| `/new` | 创建新会话（清空对话历史） |
| `/clear` | 清除当前对话历史 |
| `/compact` | 压缩对话历史，将前 3/4 的消息压缩为摘要 |
| `/session` | 列出当前模式的所有会话 |
| `/load ` | 加载指定会话（使用 `/session` 查看 ID） |
| `/skills` | 列出所有可用的 Skills |
| `/commands` | 列出所有自定义命令 |
| `/memories` | 列出所有跨会话记忆 |
| `/memories -d ` | 删除指定记忆 |
| `/mcp` | 交互式选择并连接 MCP 服务器 |
| `/mcp -l` | 列出所有可用的 MCP 服务器 |
| `/bot` | 启动 Telegram Bot（需设置 TELEGRAM_BOT_TOKEN） |
| `/qqbot` | 启动 QQ Bot（需设置 QQ_APP_ID 和 QQ_APP_SECRET） |
| `/webot` | 启动微信 Bot（通过 QR 码扫码登录） |
| `/team` | 列出所有团队成员及状态（需 `--agent-team`） |
| `/inbox` | 读取并清空团队收件箱（需 `--agent-team`） |
| `/help` | 显示帮助信息 |
| `!command` | 执行shell命令（如 `!ls`, `!pwd`） |

### 模型切换

ag 支持在多个 AI Provider 之间切换模型：

```bash
# 列出所有可用模型
ag
/model -l

# 切换到指定模型
/model deepseek/deepseek-chat
/model openai/gpt-4o

# 交互式选择模型
/model
```

选择的模型会自动保存为默认模型，下次启动时自动使用。

### 智能体切换

ag 支持多个智能体配置，可以快速切换：

```bash
# 列出所有可用智能体
ag
/agent -l

# 切换到指定智能体
/agent coding-agent
/agent command-line-agent
/agent builtin  # 使用内置智能体

# 交互式选择智能体
/agents
```

智能体配置存放在 `agents/` 目录下的 `.md` 文件中，每个文件定义一个智能体的系统提示词。

### 角色切换

ag 支持多个角色配置，可以快速切换：

```bash
# 列出所有可用角色
ag
/role -l

# 切换到指定角色
/role frieren
/role 纳西妲

# 交互式选择角色
/roles
```

### 2. 一问一答模式

```bash
ag "你的问题" -q
```

回答后直接退出，不进入交互模式。

### 3. 翻译模式

```bash
# 使用 -e 选项进入翻译模式
ag -e "computer"

# 或在交互模式中输入 /e 进入翻译模式
ag -e
```

### 4. Shell命令模式

在交互模式中，可以执行shell命令。命令和输出都会添加到消息历史，便于AI助手基于命令结果进行后续分析：

```bash
ag

# 进入后输入以下命令
!ls                    # 列出当前目录
!pwd                   # 显示当前路径
!cat filename          # 查看文件内容
```
### 5. 管道模式

从管道读取输入：

```bash
echo "解释一下这个命令" | ag

# 或配合管道处理
cat file.py | ag "这段代码有什么问题？"
```

### 6. 无上下文模式

不记忆对话历史，每次问答后清空历史：

```bash
ag "第一个问题" -n

# 或在交互模式中使用
ag -n
```

这对需要独立问答的场景很有用。

## 命令行选项

```
usage: ag [-q] [-a] [-e] [-n] [--agent] [--agent-team] [--acp] [--api-key API_KEY] [--log-level LOG_LEVEL] [query]

Ask Agent - DeepSeek 聊天客户端

positional arguments:
  query                要提问的内容（如果未提供，将从标准输入读取）

optional arguments:
  -q, --quit           一问一答模式，回答后直接退出
  -a, --after          管道模式中，回答后进入连续对话模式
  -e, --translate      进入翻译模式
  --agent              进入智能体模式
  --agent-team         启用智能体团队模式（需配合 --agent 使用）
  --acp                以 ACP Agent 模式运行（用于 IDE 集成）
  -n, --no-memory      不记忆上下文，每次问答后只保留系统提示词
  --api-key API_KEY    API 密钥（临时覆盖配置文件中的设置，不推荐长期使用）
  --log-level LOG_LEVEL  设置日志级别（DEBUG, INFO, WARNING, ERROR, CRITICAL）
```

## 使用示例

### 查询系统信息
```bash
ag "如何查看系统内存使用情况?"
```

### 分析代码
```bash
cat app.js | ag "这段代码有什么性能问题？"
```

### 调试脚本
```bash
./script.sh 2>&1 | ag "为什么会出现这个错误？"
```

### 翻译英语单词
```bash
ag -e "computer"
```

### 无上下文问答
```bash
ag -n "这是独立的问题，不需要记忆历史"
```

### 使用命令行指定 API 密钥
```bash
ag --api-key "sk-your-api-key" "你的问题"
```
建议使用 `providers.json` 配置文件管理 API 密钥。

### 学习和讨论
```bash
ag
# 进入交互模式后可以持续追问
# 输入 /e 进入翻译模式
# 输入 /ask 返回问答模式
# 输入 !ls 执行 ls 命令，结果会添加到对话历史
```

### 智能体模式
```bash
# 使用 --agent 选项进入智能体模式
ag --agent "帮我写一个 Python 脚本来读取文件"

# 或在交互模式中输入 /agent 进入智能体模式
ag
/agent
```

智能体模式支持以下功能：
- 文件读写操作
- Shell 命令执行
- 任务管理
- 子智能体调用
- 技能加载
- MCP 服务器工具调用
- Agent Team 团队协作（需 `--agent-team`）
- 图片识别和分析（支持 URL 和本地文件）

### 角色扮演模式
```bash
# 使用 /role 命令进入角色扮演模式
ag
/role

# 或使用 /role  直接指定角色
/role frieren

# 进入角色扮演模式后，使用 /roles 切换角色
/roles
```

角色扮演模式支持以下功能：
- 多角色管理，每个角色独立对话历史
- 自动保存和加载角色对话历史
- 支持中英文角色名称
- 角色配置存储在 `roles.json`，提示词存放在 `roles/` 目录

### 使用 MCP 工具
```bash
# 1. 进入智能体模式
ag --agent

# 2. 连接 MCP 服务器
/mcp
# 选择需要的服务器编号

# 3. 智能体将自动使用 MCP 提供的工具
帮我读取 /tmp 目录下的文件列表
```

## Telegram Bot 集成

Ask Agent 支持通过 Telegram Bot 远程控制，让你可以从手机发送任务给智能体处理。

### 设置步骤

**1. 获取 Bot Token**

1. 打开 Telegram 应用（手机或桌面版均可）
2. 在搜索栏输入 `@BotFather` 并进入对话
3. 发送命令 `/newbot`
4. 按照提示输入机器人名称（显示名称，可随意填写）
5. 输入机器人用户名（必须以 `bot` 结尾，如 `my_assistant_bot`）
6. BotFather 会返回一个 HTTP API Token，格式如：`123456789:ABCdefGHIjklMNOpqrSTUvwxYZ`
7. 复制并保存此 Token

> **提示：** 如果忘记 Token，可以向 BotFather 发送 `/mybots` 查看已创建的机器人。

**2. 配置环境变量**

在项目根目录的 `.env` 文件中添加：

```bash
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
```

或设置系统环境变量：

```bash
# Linux/macOS
export TELEGRAM_BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrSTUvwxYZ"

# Windows PowerShell
$env:TELEGRAM_BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrSTUvwxYZ"
```

**3. 启动 Bot**

```bash
# 方式一：在交互模式中启动
ag
/bot

# 方式二：直接启动（如果已配置默认智能体）
ag --agent
/bot
```

启动成功后会显示：`机器人已启动！按 Ctrl+C 停止`

### 使用 Bot

**基本操作：**
- 向 Bot 发送文本消息，智能体会自动处理你的任务
- 发送图片，Bot 会自动识别图片内容（需模型支持图片理解）
- 发送语音消息，Bot 会自动识别语音内容并处理（需模型支持音频理解）
- 支持所有智能体模式的功能（代码编辑、文件操作等）
- 处理结果会通过 Telegram 返回

**支持的命令：**

| 命令 | 说明 |
|------|------|
| `/start` | 显示欢迎信息 |
| `/help` | 显示帮助信息 |
| `/save` | 保存当前会话 |
| `/exit` | 保存会话并退出 Bot |

**注意事项：**
- Bot 运行期间会持续监听消息，按 `Ctrl+C` 可停止
- 建议使用智能体模式（`/agent`）以获得完整功能
- 图片识别需要当前模型支持 `modalities.input` 包含 `"image"`
- 语音识别需要当前模型支持 `modalities.input` 包含 `"audio"`

### 群组配置

Telegram Bot 支持在群组中使用，可以通过 `config.json` 配置群组消息行为。

**配置文件位置：** `~/.ask-agent/config.json`

**完整配置示例：**

```json
{
  "mode": 0,
  "channels": {
    "telegram": {
      "enabled": true,
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["123456789"],
      "groups": {
        "*": {
          "requireMention": true,
          "historyLimit": 50,
          "toolPolicy": "full"
        },
        "-1001234567890": {
          "name": "技术交流群",
          "requireMention": false,
          "ignoreOtherMentions": true,
          "historyLimit": 20,
          "toolPolicy": "restricted",
          "prompt": "在这个群里请用通俗易懂的语言回答，可以适当使用表情包。",
          "allowFrom": ["123456789", "987654321"]
        }
      }
    }
  }
}
```

**配置说明：**

| 配置项 | 类型 | 说明 |
|--------|------|------|
| `enabled` | bool | 是否启用该频道 |
| `groupPolicy` | string | 群组策略：`allowlist`(白名单) / `blocklist`(黑名单) / `disabled`(禁用) |
| `groupAllowFrom` | array | 全局用户白名单/黑名单（用户 ID） |
| `groups` | object | 群组配置（`*` 为默认配置） |

**群组配置：**

| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `name` | string | `""` | 群组友好名称（日志显示） |
| `requireMention` | bool | `true` | 是否需要 @机器人才响应 |
| `ignoreOtherMentions` | bool | `false` | 忽略提及他人但未提及机器人的消息 |
| `historyLimit` | int | `50` | 保留的历史消息数量 |
| `toolPolicy` | string | `"full"` | 工具策略：`full`(全部) / `restricted`(受限) / `none`(禁用) |
| `prompt` | string | `""` | 群组专属提示词 |
| `allowFrom` | array | `[]` | 群组级别用户白名单（覆盖全局配置） |
| `blockFrom` | array | `[]` | 群组级别用户黑名单 |

**群组策略说明：**

| 策略 | 说明 |
|------|------|
| `allowlist` | 白名单模式 - 默认拒绝，只允许列表中的用户/群组 |
| `blocklist` | 黑名单模式 - 默认允许，只拒绝列表中的用户/群组 |
| `disabled` | 禁用群组 - 不响应任何群组消息，只处理私聊 |

**获取群组 ID：**

1. 将 Bot 添加到群组
2. 向群组发送消息
3. 查看 Bot 控制台输出的群组 ID（格式如 `-1001234567890`）

**获取用户 ID：**

1. 向 Bot 发送私聊消息
2. 查看控制台输出的用户 ID

### 消息缓冲配置

Telegram Bot 支持消息缓冲功能，允许用户连续发送多条消息后，Bot 一次性回复，更像真人聊天。

**配置示例：**

```json
{
  "channels": {
    "telegram": {
      "messageBuffer": {
        "enabled": true,
        "timeout": 3.0,
        "groupOnly": true
      }
    }
  }
}
```

**配置说明：**

| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `enabled` | bool | `false` | 是否启用消息缓冲 |
| `timeout` | float | `3.0` | 超时时间（秒），收到消息后等待多久再处理 |
| `groupOnly` | bool | `true` | 是否只在群组中启用（`false` 时私聊也启用） |

**工作原理：**

1. 收到消息后不立即处理，启动超时计时器
2. 如果在超时时间内收到新消息，重置计时器并累积消息
3. 超时后，将所有累积的消息合并，一次性发送给 AI 处理

**示例效果：**

```
# 启用缓冲前（一问一答）
用户: 我想问一个问题
Bot: [立即] 请说
用户: 关于 Python 的
Bot: [立即] 什么问题？

# 启用缓冲后（像真人聊天）
用户: 我想问一个问题
用户: 关于 Python 的
用户: 关于列表推导式
Bot: [3秒后] 好的，请问关于 Python 列表推导式什么问题？
```

**建议超时时间：**

| 超时时间 | 适用场景 |
|---------|---------|
| `3.0` 秒 | 快速连续输入（推荐） |
| `5.0` 秒 | 需要更多思考时间 |

## QQ Bot 集成

Ask Agent 支持通过 QQ Bot远程控制智能体。

### 设置步骤

**1. 创建 QQ 机器人**

1. 前往 [QQ 开放平台](https://q.qq.com) 注册并创建机器人
2. 获取 AppID 和 AppSecret

**2. 配置环境变量**

在项目根目录的 `.env` 文件中添加：

```bash
QQ_APP_ID=1903967151
QQ_APP_SECRET=c9UbVSEm6IG4ez52
```

或设置系统环境变量：

```bash
# Linux/macOS
export QQ_APP_ID="your_app_id"
export QQ_APP_SECRET="your_app_secret"

# Windows PowerShell
$env:QQ_APP_ID="your_app_id"
$env:QQ_APP_SECRET="your_app_secret"
```

**3. 启动 Bot**

```bash
# 方式一：在交互模式中启动
ag
/qqbot

# 方式二：直接启动（如果已配置默认智能体）
ag --agent
/qqbot
```

启动成功后会显示：`QQ Bot已启动！按 Ctrl+C 停止`

### 使用 Bot

**基本操作：**
- 向 Bot 发送文本消息，智能体会自动处理你的任务
- 支持所有智能体模式的功能（代码编辑、文件操作等）
- 处理结果会通过 QQ 返回（支持 Markdown 格式）

**支持的命令：**

| 命令 | 说明 |
|------|------|
| `/start` | 显示欢迎信息 |
| `/help` | 显示帮助信息 |
| `/save` | 保存当前会话 |
| `/exit` | 保存会话并退出 Bot |
| `/new` | 创建新会话 |
| `/clear` | 清除对话历史 |

**注意事项：**
- Bot 运行期间会持续监听消息，按 `Ctrl+C` 可停止
- 建议使用智能体模式（`/agent`）以获得完整功能
- 模块详细文档见 [core/bot/qqbot/README.md](core/bot/qqbot/README.md)

### QQ Bot 消息缓冲配置

QQ Bot 同样支持消息缓冲功能，配置方式与 Telegram 相同。

**配置示例：**

```json
{
  "channels": {
    "qqbot": {
      "messageBuffer": {
        "enabled": true,
        "timeout": 3.0,
        "groupOnly": true
      }
    }
  }
}
```

**配置说明：**

| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `enabled` | bool | `false` | 是否启用消息缓冲 |
| `timeout` | float | `3.0` | 超时时间（秒） |
| `groupOnly` | bool | `true` | 是否只在群组中启用 |

## 微信 Bot 集成

Ask Agent 支持通过微信 Bot 远程控制智能体。

### 设置步骤

**1. 获取微信 Bot 凭证**

微信 Bot 使用 iLink 协议，通过 QR 码扫码登录。

**2. 启动 Bot**

```bash
# 方式一：在交互模式中启动
ag
/webot
```

启动后会显示 QR 码，使用微信扫码登录。

启动成功后会显示：`微信Bot已启动！按 Ctrl+C

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [lanlinju](https://github.com/lanlinju)
- **Source:** [lanlinju/ask-agent](https://github.com/lanlinju/ask-agent)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-lanlinju-ask-agent
- Seller: https://agentstack.voostack.com/s/lanlinju
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
