diff --git a/channel/web/chat.html b/channel/web/chat.html index 886a857..37f28ae 100644 --- a/channel/web/chat.html +++ b/channel/web/chat.html @@ -192,10 +192,24 @@ + + + + + + + + + + + cursor-pointer transition-colors duration-150" title="GitHub"> diff --git a/docs/channels/dingtalk.mdx b/docs/channels/dingtalk.mdx index c01bb36..df11019 100644 --- a/docs/channels/dingtalk.mdx +++ b/docs/channels/dingtalk.mdx @@ -7,15 +7,29 @@ description: 将 CowAgent 接入钉钉应用 ## 一、创建应用 -1. 进入 [钉钉开发者后台](https://open-dev.dingtalk.com/fe/app#/corp/app),点击 **创建应用**,填写应用信息 -2. 点击添加应用能力,选择 **机器人** 能力并添加 -3. 配置机器人信息后点击 **发布** +1. 进入 [钉钉开发者后台](https://open-dev.dingtalk.com/fe/app#/corp/app),登录后点击 **创建应用**,填写应用相关信息: + + + +2. 点击添加应用能力,选择 **机器人** 能力,点击 **添加**: + + + +3. 配置机器人信息后点击 **发布**。发布后,点击 "**点击调试**",会自动创建测试群聊,可在客户端查看: + + + +4. 点击 **版本管理与发布**,创建新版本发布: + + ## 二、项目配置 -1. 在 **凭证与基础信息** 中获取 `Client ID` 和 `Client Secret` +1. 点击 **凭证与基础信息**,获取 `Client ID` 和 `Client Secret`: -2. 填入 `config.json`: + + +2. 将以下配置加入项目根目录的 `config.json` 文件: ```json { @@ -31,8 +45,12 @@ description: 将 CowAgent 接入钉钉应用 pip3 install dingtalk_stream ``` -4. 启动项目后,在钉钉开发者后台点击 **事件订阅**,点击 **已完成接入,验证连接通道**,显示"连接接入成功"即表示配置完成 +4. 启动项目后,在钉钉开发者后台点击 **事件订阅**,点击 **已完成接入,验证连接通道**,显示 **连接接入成功** 即表示配置完成: + + ## 三、使用 -与机器人私聊或将机器人拉入企业群中均可开启对话。 +与机器人私聊或将机器人拉入企业群中均可开启对话: + + diff --git a/docs/channels/feishu.mdx b/docs/channels/feishu.mdx index f69e3af..575aa48 100644 --- a/docs/channels/feishu.mdx +++ b/docs/channels/feishu.mdx @@ -3,65 +3,67 @@ title: 飞书 description: 将 CowAgent 接入飞书应用 --- -通过自建应用将 CowAgent 接入飞书,支持 WebSocket 长连接(推荐)和 Webhook 两种事件接收模式。 +通过自建应用将 CowAgent 接入飞书,需要是飞书企业用户且具有企业管理权限。 ## 一、创建企业自建应用 ### 1. 创建应用 -进入 [飞书开发平台](https://open.feishu.cn/app/),点击 **创建企业自建应用**,填写必要信息后创建。 +进入 [飞书开发平台](https://open.feishu.cn/app/),点击 **创建企业自建应用**,填写必要信息后点击 **创建**: + + ### 2. 添加机器人能力 -在 **添加应用能力** 菜单中,为应用添加 **机器人** 能力。 +在 **添加应用能力** 菜单中,为应用添加 **机器人** 能力: + + ### 3. 配置应用权限 -点击 **权限管理**,粘贴以下权限配置,全选并批量开通: +点击 **权限管理**,复制以下权限配置,粘贴到 **权限配置** 下方的输入框内,全选筛选出来的权限,点击 **批量开通** 并确认: ``` im:message,im:message.group_at_msg,im:message.group_at_msg:readonly,im:message.p2p_msg,im:message.p2p_msg:readonly,im:message:send_as_bot,im:resource ``` + + ## 二、项目配置 -在 **凭证与基础信息** 中获取 `App ID` 和 `App Secret`,填入 `config.json`: +1. 在 **凭证与基础信息** 中获取 `App ID` 和 `App Secret`: - - - 无需公网 IP,配置如下: + - ```json - { - "channel_type": "feishu", - "feishu_app_id": "YOUR_APP_ID", - "feishu_app_secret": "YOUR_APP_SECRET", - "feishu_event_mode": "websocket" - } - ``` +2. 将以下配置加入项目根目录的 `config.json` 文件: - 需安装依赖:`pip3 install lark-oapi` - - - 需要公网 IP,配置如下: +```json +{ + "channel_type": "feishu", + "feishu_app_id": "YOUR_APP_ID", + "feishu_app_secret": "YOUR_APP_SECRET", + "feishu_bot_name": "YOUR_BOT_NAME" +} +``` - ```json - { - "channel_type": "feishu", - "feishu_app_id": "YOUR_APP_ID", - "feishu_app_secret": "YOUR_APP_SECRET", - "feishu_token": "VERIFICATION_TOKEN", - "feishu_event_mode": "webhook", - "feishu_port": 9891 - } - ``` - - +| 参数 | 说明 | +| --- | --- | +| `feishu_app_id` | 飞书机器人应用 App ID | +| `feishu_app_secret` | 飞书机器人 App Secret | +| `feishu_bot_name` | 飞书机器人名称(创建应用时设置),群聊中使用依赖此配置 | + +配置完成后启动项目。 ## 三、配置事件订阅 -1. 启动项目后,在飞书开放平台点击 **事件与回调**,选择 **长连接** 方式并保存 -2. 点击 **添加事件**,搜索 "接收消息",选择 "接收消息v2.0",确认添加 -3. 点击 **版本管理与发布**,创建版本并申请线上发布,审核通过后即可使用 +1. 成功运行项目后,在飞书开放平台点击 **事件与回调**,选择 **长连接** 方式,点击保存: + + + +2. 点击下方的 **添加事件**,搜索 "接收消息",选择 "**接收消息v2.0**",确认添加。 + +3. 点击 **版本管理与发布**,创建版本并申请 **线上发布**,在飞书客户端查看审批消息并审核通过: + + 完成后在飞书中搜索机器人名称,即可开始对话。 diff --git a/docs/channels/web.mdx b/docs/channels/web.mdx index b2237aa..5d1528a 100644 --- a/docs/channels/web.mdx +++ b/docs/channels/web.mdx @@ -1,9 +1,9 @@ --- -title: Web 网页 -description: 通过 Web 网页端使用 CowAgent +title: Web 控制台 +description: 通过 Web 控制台使用 CowAgent --- -Web 是 CowAgent 的默认通道,启动后会自动运行 Web 控制台,通过浏览器即可与 Agent 对话。 +Web 控制台是 CowAgent 的默认通道,启动后会自动运行,通过浏览器即可与 Agent 对话,并支持在线管理模型、技能、记忆、通道等配置。 ## 配置 @@ -19,13 +19,57 @@ Web 是 CowAgent 的默认通道,启动后会自动运行 Web 控制台,通 | `channel_type` | 设为 `web` | `web` | | `web_port` | Web 服务监听端口 | `9899` | -## 使用 +## 访问地址 启动项目后访问: -- 本地运行:`http://localhost:9899/chat` -- 服务器运行:`http://:9899/chat` +- 本地运行:`http://localhost:9899` +- 服务器运行:`http://:9899` 请确保服务器防火墙和安全组已放行对应端口。 + +## 功能介绍 + +### 对话界面 + +支持流式输出,可实时展示 Agent 的思考过程(Reasoning)和工具调用过程(Tool Calls),更直观地观察 Agent 的决策过程: + + + +### 模型管理 + +支持在线管理模型配置,无需手动编辑配置文件: + + + +### 技能管理 + +支持在线查看和管理 Agent 技能(Skills): + + + +### 记忆管理 + +支持在线查看和管理 Agent 记忆: + + + +### 通道管理 + +支持在线管理接入通道,支持实时连接/断开操作: + + + +### 定时任务 + +支持在线查看和管理定时任务,包括一次性任务、固定间隔、Cron 表达式等多种调度方式的可视化管理: + + + +### 日志 + +支持在线实时查看 Agent 运行日志,便于监控运行状态和排查问题: + + diff --git a/docs/channels/wechatmp.mdx b/docs/channels/wechatmp.mdx index 69f6957..917df41 100644 --- a/docs/channels/wechatmp.mdx +++ b/docs/channels/wechatmp.mdx @@ -7,21 +7,22 @@ CowAgent 支持接入个人订阅号和企业服务号两种公众号类型。 | 类型 | 要求 | 特点 | | --- | --- | --- | -| **个人订阅号** | 个人可申请 | 回复生成后需用户主动发消息获取 | +| **个人订阅号** | 个人可申请 | 收到消息时会回复一条提示,回复生成后需用户主动发消息获取 | | **企业服务号** | 企业申请,需通过微信认证开通客服接口 | 回复生成后可主动推送给用户 | - 公众号仅支持服务器和 Docker 部署,需额外安装扩展依赖:`pip3 install -r requirements-optional.txt` + 公众号仅支持服务器和 Docker 部署,不支持本地运行。需额外安装扩展依赖:`pip3 install -r requirements-optional.txt` ## 一、个人订阅号 -在 `config.json` 中配置: +在 `config.json` 中添加以下配置: ```json { "channel_type": "wechatmp", - "wechatmp_app_id": "YOUR_APP_ID", + "single_chat_prefix": [""], + "wechatmp_app_id": "wx73f9******d1e48", "wechatmp_app_secret": "YOUR_APP_SECRET", "wechatmp_aes_key": "", "wechatmp_token": "YOUR_TOKEN", @@ -31,22 +32,37 @@ CowAgent 支持接入个人订阅号和企业服务号两种公众号类型。 ### 配置步骤 -1. 在 [微信公众平台](https://mp.weixin.qq.com/) 的 **设置与开发 → 基本配置 → 服务器配置** 中获取参数 -2. 启用开发者密码,将服务器 IP 加入白名单 -3. 启动程序(监听 80 端口) -4. 在公众号后台 **启用服务器配置**,URL 格式为 `http://{HOST}/wx` +这些配置需要和 [微信公众号后台](https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev) 中的保持一致,进入页面后,在左侧菜单选择 **设置与开发 → 基本配置 → 服务器配置**,按下图进行配置: + + + +1. 在公众平台启用开发者密码(对应配置 `wechatmp_app_secret`),并将服务器 IP 填入白名单 +2. 按上图填写 `config.json` 中与公众号相关的配置,要与公众号后台的配置一致 +3. 启动程序,启动后会监听 80 端口(若无权限监听,则在启动命令前加上 `sudo`;若 80 端口已被占用,则关闭该占用进程) +4. 在公众号后台 **启用服务器配置** 并提交,保存成功则表示已成功配置。注意 **"服务器地址(URL)"** 需要配置为 `http://{HOST}/wx` 的格式,其中 `{HOST}` 可以是服务器的 IP 或域名 + +随后关注公众号并发送消息即可看到以下效果: + + + +由于受订阅号限制,回复内容较短的情况下(15s 内),可以立即完成回复,但耗时较长的回复则会先回复一句 "正在思考中",后续需要用户输入任意文字主动获取答案,而服务号则可以通过客服接口解决这一问题。 + + + **语音识别**:可利用微信自带的语音识别功能,需要在公众号管理页面的 "设置与开发 → 接口权限" 页面开启 "接收语音识别结果"。 + ## 二、企业服务号 -与个人订阅号流程基本相同,差异如下: +企业服务号与上述个人订阅号的接入过程基本相同,差异如下: -1. 在公众平台申请企业服务号并完成微信认证,确认已获得 **客服接口** 权限 -2. 在 `config.json` 中设置 `"channel_type": "wechatmp_service"` -3. 即使是较长耗时的回复,也可以主动推送给用户 +1. 在公众平台申请企业服务号并完成微信认证,在接口权限中确认已获得 **客服接口** 的权限 +2. 在 `config.json` 中设置 `"channel_type": "wechatmp_service"`,其他配置与上述订阅号相同 +3. 交互效果上,即使是较长耗时的回复,也可以主动推送给用户,无需用户手动获取 ```json { "channel_type": "wechatmp_service", + "single_chat_prefix": [""], "wechatmp_app_id": "YOUR_APP_ID", "wechatmp_app_secret": "YOUR_APP_SECRET", "wechatmp_aes_key": "", diff --git a/docs/channels/wecom.mdx b/docs/channels/wecom.mdx index efce119..d58afd7 100644 --- a/docs/channels/wecom.mdx +++ b/docs/channels/wecom.mdx @@ -19,17 +19,35 @@ description: 将 CowAgent 接入企业微信自建应用 ## 二、创建企业微信应用 -1. 在 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#profile) **我的企业** 中获取 **企业ID** -2. 切换到 **应用管理**,点击创建应用,记录 `AgentId` 和 `Secret` -3. 点击 **设置API接收**,配置应用接口: - - URL 格式为 `http://ip:port/wxcomapp`(认证企业需使用备案域名) - - 随机获取 `Token` 和 `EncodingAESKey` 并保存 +1. 在 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#profile) 点击 **我的企业**,在最下方获取 **企业ID**(后续填写到 `wechatcom_corp_id` 字段中)。 + +2. 切换到 **应用管理**,点击创建应用: + + + +3. 进入应用创建页面,记录 `AgentId` 和 `Secret`: + + + +4. 点击 **设置API接收**,配置应用接口: + + + +- URL 格式为 `http://ip:port/wxcomapp`(认证企业需使用备案域名) +- 随机获取 `Token` 和 `EncodingAESKey` 并保存 + + + 此时保存 API 接收配置会失败,因为程序还未启动,等项目运行后再回来保存。 + ## 三、配置和运行 +在 `config.json` 中添加以下配置(各参数与企业微信后台的对应关系见上方截图): + ```json { "channel_type": "wechatcom_app", + "single_chat_prefix": [""], "wechatcom_corp_id": "YOUR_CORP_ID", "wechatcomapp_token": "YOUR_TOKEN", "wechatcomapp_secret": "YOUR_SECRET", @@ -48,12 +66,25 @@ description: 将 CowAgent 接入企业微信自建应用 | `wechatcomapp_aes_key` | API 接收配置中的 EncodingAESKey | | `wechatcomapp_port` | 监听端口,默认 9898 | -启动程序后,回到企业微信后台保存 **消息服务器配置**,并将服务器 IP 添加到 **企业可信IP** 中。 +配置完成后启动程序。当后台日志显示 `http://0.0.0.0:9898/` 时说明程序运行成功,需要将该端口对外开放(如在云服务器安全组中放行)。 + +程序启动后,回到企业微信后台保存 **消息服务器配置**,保存成功后还需将服务器 IP 添加到 **企业可信IP** 中,否则无法收发消息: + + - 如遇到配置失败:1. 确保防火墙和安全组已放行端口;2. 检查各参数配置是否一致;3. 认证企业需配置备案域名。 + 如遇到 URL 配置回调不通过或配置失败: + 1. 确保服务器防火墙关闭且安全组放行监听端口 + 2. 仔细检查 Token、Secret Key 等参数配置是否一致,URL 格式是否正确 + 3. 认证企业微信需要配置与主体一致的备案域名 ## 四、使用 -在企业微信中搜索应用名称即可直接对话。如需让外部微信用户使用,可在 **我的企业 → 微信插件** 中分享邀请关注二维码。 +在企业微信中搜索刚创建的应用名称,即可直接对话: + + + +如需让外部个人微信用户使用,可在 **我的企业 → 微信插件** 中分享邀请关注二维码,个人微信扫码关注后即可与应用对话: + + diff --git a/docs/docs.json b/docs/docs.json index 47844b5..86a42e9 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -311,6 +311,7 @@ "group": "Release Notes", "pages": [ "en/releases/overview", + "en/releases/v2.0.2", "en/releases/v2.0.1", "en/releases/v2.0.0" ] diff --git a/docs/en/channels/dingtalk.mdx b/docs/en/channels/dingtalk.mdx index b896469..1db5f53 100644 --- a/docs/en/channels/dingtalk.mdx +++ b/docs/en/channels/dingtalk.mdx @@ -7,15 +7,29 @@ Integrate CowAgent into DingTalk by creating an intelligent robot app on the Din ## 1. Create App -1. Go to [DingTalk Developer Console](https://open-dev.dingtalk.com/fe/app#/corp/app), click **Create App**, fill in app information -2. Click **Add App Capability**, select **Robot** capability and add -3. Configure robot information and click **Publish** +1. Go to [DingTalk Developer Console](https://open-dev.dingtalk.com/fe/app#/corp/app), log in and click **Create App**, fill in the app information: + + + +2. Click **Add App Capability**, select **Robot** capability and click **Add**: + + + +3. Configure the robot information and click **Publish**. After publishing, click "**Debug**" to automatically create a test group chat, which can be viewed in the client: + + + +4. Click **Version Management & Release**, create a new version and publish: + + ## 2. Project Configuration -1. Get `Client ID` and `Client Secret` from **Credentials & Basic Info** +1. Click **Credentials & Basic Info**, get the `Client ID` and `Client Secret`: -2. Fill in `config.json`: + + +2. Add the following configuration to `config.json` in the project root: ```json { @@ -25,14 +39,20 @@ Integrate CowAgent into DingTalk by creating an intelligent robot app on the Din } ``` -3. Install dependency: +3. Install the dependency: ```bash pip3 install dingtalk_stream ``` -4. After starting the project, go to DingTalk Developer Console **Event Subscription**, click **Connection verified, verify channel**. When "Connection successful" is displayed, configuration is complete + + +4. After starting the project, go to the DingTalk Developer Console, click **Event Subscription**, then click **Connection verified, verify channel**. When "**Connection successful**" is displayed, the configuration is complete: + + ## 3. Usage -Chat privately with the robot or add it to an enterprise group to start a conversation. +Chat privately with the robot or add it to an enterprise group to start a conversation: + + diff --git a/docs/en/channels/feishu.mdx b/docs/en/channels/feishu.mdx index 7a74274..de90da0 100644 --- a/docs/en/channels/feishu.mdx +++ b/docs/en/channels/feishu.mdx @@ -3,65 +3,67 @@ title: Feishu (Lark) description: Integrate CowAgent into Feishu application --- -Integrate CowAgent into Feishu by creating a custom app. Supports WebSocket (recommended, no public IP required) and Webhook event receiving modes. +Integrate CowAgent into Feishu by creating a custom enterprise app. You need to be a Feishu enterprise user with admin privileges. ## 1. Create Enterprise Custom App ### 1.1 Create App -Go to [Feishu Developer Platform](https://open.feishu.cn/app/), click **Create Enterprise Custom App**, fill in the required information and create. +Go to [Feishu Developer Platform](https://open.feishu.cn/app/), click **Create Enterprise Custom App**, fill in the required information and click **Create**: + + ### 1.2 Add Bot Capability -In **Add App Capabilities**, add **Bot** capability to the app. +In **Add App Capabilities**, add **Bot** capability to the app: + + ### 1.3 Configure App Permissions -Click **Permission Management**, paste the following permission string, select all and enable in batch: +Click **Permission Management**, paste the following permission string into the input box below **Permission Configuration**, select all filtered permissions, click **Batch Enable** and confirm: ``` im:message,im:message.group_at_msg,im:message.group_at_msg:readonly,im:message.p2p_msg,im:message.p2p_msg:readonly,im:message:send_as_bot,im:resource ``` + + ## 2. Project Configuration -Get `App ID` and `App Secret` from **Credentials & Basic Info**, then fill in `config.json`: +1. Get `App ID` and `App Secret` from **Credentials & Basic Info**: - - - No public IP required. Configuration: + - ```json - { - "channel_type": "feishu", - "feishu_app_id": "YOUR_APP_ID", - "feishu_app_secret": "YOUR_APP_SECRET", - "feishu_event_mode": "websocket" - } - ``` +2. Add the following configuration to `config.json` in the project root: - Install dependency: `pip3 install lark-oapi` - - - Requires public IP. Configuration: +```json +{ + "channel_type": "feishu", + "feishu_app_id": "YOUR_APP_ID", + "feishu_app_secret": "YOUR_APP_SECRET", + "feishu_bot_name": "YOUR_BOT_NAME" +} +``` - ```json - { - "channel_type": "feishu", - "feishu_app_id": "YOUR_APP_ID", - "feishu_app_secret": "YOUR_APP_SECRET", - "feishu_token": "VERIFICATION_TOKEN", - "feishu_event_mode": "webhook", - "feishu_port": 9891 - } - ``` - - +| Parameter | Description | +| --- | --- | +| `feishu_app_id` | Feishu bot App ID | +| `feishu_app_secret` | Feishu bot App Secret | +| `feishu_bot_name` | Bot name (set when creating the app), required for group chat usage | + +Start the project after configuration is complete. ## 3. Configure Event Subscription -1. After starting the project, go to Feishu Developer Platform **Events & Callbacks**, select **Long Connection** and save -2. Click **Add Event**, search for "Receive Message", select "Receive Message v2.0", confirm and add -3. Click **Version Management & Release**, create a version and apply for production release. After approval, you can use it +1. After the project is running successfully, go to the Feishu Developer Platform, click **Events & Callbacks**, select **Long Connection** mode, and click save: -Search for the bot name in Feishu to start chatting. + + +2. Click **Add Event** below, search for "Receive Message", select "**Receive Message v2.0**", and confirm. + +3. Click **Version Management & Release**, create a new version and apply for **Production Release**. Check the approval message in the Feishu client and approve: + + + +Once completed, search for the bot name in Feishu to start chatting. diff --git a/docs/en/channels/web.mdx b/docs/en/channels/web.mdx index d8be926..845b219 100644 --- a/docs/en/channels/web.mdx +++ b/docs/en/channels/web.mdx @@ -1,9 +1,9 @@ --- -title: Web -description: Use CowAgent through the web interface +title: Web Console +description: Use CowAgent through the web console --- -Web is CowAgent's default channel. The web console starts automatically after launch, allowing you to chat with the Agent through a browser. +The Web Console is CowAgent's default channel. It starts automatically after launch, allowing you to chat with the Agent through a browser and manage models, skills, memory, channels, and other configurations online. ## Configuration @@ -19,13 +19,57 @@ Web is CowAgent's default channel. The web console starts automatically after la | `channel_type` | Set to `web` | `web` | | `web_port` | Web service listen port | `9899` | -## Usage +## Access URL After starting the project, visit: -- Local: `http://localhost:9899/chat` -- Server: `http://:9899/chat` +- Local: `http://localhost:9899` +- Server: `http://:9899` Ensure the server firewall and security group allow the corresponding port. + +## Features + +### Chat Interface + +Supports streaming output with real-time display of the Agent's reasoning process and tool calls, providing intuitive observation of the Agent's decision-making: + + + +### Model Management + +Manage model configurations online without manually editing config files: + + + +### Skill Management + +View and manage Agent skills (Skills) online: + + + +### Memory Management + +View and manage Agent memory online: + + + +### Channel Management + +Manage connected channels online with real-time connect/disconnect operations: + + + +### Scheduled Tasks + +View and manage scheduled tasks online, including one-time tasks, fixed intervals, and Cron expressions: + + + +### Logs + +View Agent runtime logs in real-time for monitoring and troubleshooting: + + diff --git a/docs/en/channels/wechatmp.mdx b/docs/en/channels/wechatmp.mdx index 1de9c8a..3c6c2c8 100644 --- a/docs/en/channels/wechatmp.mdx +++ b/docs/en/channels/wechatmp.mdx @@ -7,19 +7,22 @@ CowAgent supports both personal subscription accounts and enterprise service acc | Type | Requirements | Features | | --- | --- | --- | -| **Personal Subscription** | Available to individuals | Users must send a message to retrieve replies | +| **Personal Subscription** | Available to individuals | Sends a placeholder reply first; users must send a message to retrieve the full response | | **Enterprise Service** | Enterprise with verified customer service API | Can proactively push replies to users | - Official Accounts only support server and Docker deployment. Install extended dependencies: `pip3 install -r requirements-optional.txt` + Official Accounts only support server and Docker deployment, not local run mode. Install extended dependencies: `pip3 install -r requirements-optional.txt` -## Personal Subscription Account +## 1. Personal Subscription Account + +Add the following configuration to `config.json`: ```json { "channel_type": "wechatmp", - "wechatmp_app_id": "YOUR_APP_ID", + "single_chat_prefix": [""], + "wechatmp_app_id": "wx73f9******d1e48", "wechatmp_app_secret": "YOUR_APP_SECRET", "wechatmp_aes_key": "", "wechatmp_token": "YOUR_TOKEN", @@ -29,22 +32,37 @@ CowAgent supports both personal subscription accounts and enterprise service acc ### Setup Steps -1. Get parameters from [WeChat Official Account Platform](https://mp.weixin.qq.com/) under **Settings & Development → Basic Configuration → Server Configuration** -2. Enable developer secret and add server IP to the whitelist -3. Start the program (listens on port 80) -4. Enable server configuration with URL format `http://{HOST}/wx` +These configurations must be consistent with the [WeChat Official Account Platform](https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev). Navigate to **Settings & Development → Basic Configuration → Server Configuration** and configure as shown below: -## Enterprise Service Account + -Same setup with these differences: +1. Enable the developer secret on the platform (corresponds to `wechatmp_app_secret`), and add the server IP to the whitelist +2. Fill in the `config.json` with the official account parameters matching the platform configuration +3. Start the program, which listens on port 80 (use `sudo` if you don't have permission; stop any process occupying port 80) +4. **Enable server configuration** on the official account platform and submit. A successful save means the configuration is complete. Note that the **"Server URL"** must be in the format `http://{HOST}/wx`, where `{HOST}` can be the server IP or domain -1. Register an enterprise service account with verified **Customer Service API** permission -2. Set `"channel_type": "wechatmp_service"` in `config.json` -3. Replies can be proactively pushed to users +After following the account and sending a message, you should see the following result: + + + +Due to subscription account limitations, short replies (within 15s) can be returned immediately, but longer replies will first send a "Thinking..." placeholder, requiring users to send any text to retrieve the answer. Enterprise service accounts can solve this with the customer service API. + + + **Voice Recognition**: You can use WeChat's built-in voice recognition. Enable "Receive Voice Recognition Results" under "Settings & Development → API Permissions" on the official account management page. + + +## 2. Enterprise Service Account + +The setup process for enterprise service accounts is essentially the same as personal subscription accounts, with the following differences: + +1. Register an enterprise service account on the platform and complete WeChat certification. Confirm that the **Customer Service API** permission has been granted +2. Set `"channel_type": "wechatmp_service"` in `config.json`; other configurations remain the same +3. Even for longer replies, they can be proactively pushed to users without requiring manual retrieval ```json { "channel_type": "wechatmp_service", + "single_chat_prefix": [""], "wechatmp_app_id": "YOUR_APP_ID", "wechatmp_app_secret": "YOUR_APP_SECRET", "wechatmp_aes_key": "", diff --git a/docs/en/channels/wecom.mdx b/docs/en/channels/wecom.mdx index 1960839..7b07cd0 100644 --- a/docs/en/channels/wecom.mdx +++ b/docs/en/channels/wecom.mdx @@ -13,23 +13,41 @@ Integrate CowAgent into WeCom through a custom enterprise app, supporting one-on Required resources: -1. A server with public IP -2. A registered WeCom account (individual registration is possible, but cannot be certified) -3. Certified WeCom requires a domain with corresponding entity filing +1. A server with public IP (overseas server, or domestic server with a proxy for international API access) +2. A registered WeCom account (individual registration is possible but cannot be certified) +3. Certified WeCom accounts additionally require a domain filed under the corresponding entity ## 2. Create WeCom App -1. Get **Corp ID** from **My Enterprise** in [WeCom Admin Console](https://work.weixin.qq.com/wework_admin/frame#profile) -2. Switch to **Application Management**, click Create Application, record `AgentId` and `Secret` -3. Click **Set API Reception**, configure application interface: - - URL format: `http://ip:port/wxcomapp` (certified enterprises must use filed domain) - - Generate random `Token` and `EncodingAESKey` and save +1. In the [WeCom Admin Console](https://work.weixin.qq.com/wework_admin/frame#profile), click **My Enterprise** and find the **Corp ID** at the bottom of the page. Save this ID for the `wechatcom_corp_id` configuration field. + +2. Switch to **Application Management** and click Create Application: + + + +3. On the application creation page, record the `AgentId` and `Secret`: + + + +4. Click **Set API Reception** to configure the application interface: + + + +- URL format: `http://ip:port/wxcomapp` (certified enterprises must use a filed domain) +- Generate random `Token` and `EncodingAESKey` and save them for the configuration file + + + The API reception configuration cannot be saved at this point because the program hasn't started yet. Come back to save it after the project is running. + ## 3. Configuration and Run +Add the following configuration to `config.json` (the mapping between each parameter and the WeCom console is shown in the screenshots above): + ```json { "channel_type": "wechatcom_app", + "single_chat_prefix": [""], "wechatcom_corp_id": "YOUR_CORP_ID", "wechatcomapp_token": "YOUR_TOKEN", "wechatcomapp_secret": "YOUR_SECRET", @@ -48,12 +66,25 @@ Required resources: | `wechatcomapp_aes_key` | EncodingAESKey from API reception config | | `wechatcomapp_port` | Listen port, default 9898 | -After starting the program, return to WeCom Admin Console to save **Message Server Configuration**, and add the server IP to **Enterprise Trusted IPs**. +After configuration, start the program. When the log shows `http://0.0.0.0:9898/`, the program is running successfully. You need to open this port externally (e.g., allow it in the cloud server security group). + +After the program starts, return to the WeCom Admin Console to save the **Message Server Configuration**. After saving successfully, you also need to add the server IP to **Enterprise Trusted IPs**, otherwise messages cannot be sent or received: + + - If configuration fails: 1. Ensure firewall and security group allow the port; 2. Verify all parameters are consistent; 3. Certified enterprises must configure a filed domain. + If the URL configuration callback fails or the configuration is unsuccessful: + 1. Ensure the server firewall is disabled and the security group allows the listening port + 2. Carefully check that Token, Secret Key and other parameter configurations are consistent, and that the URL format is correct + 3. Certified WeCom accounts must configure a filed domain matching the entity ## 4. Usage -Search for the app name in WeCom to start chatting. To allow external WeChat users, share the invite QR code from **My Enterprise → WeChat Plugin**. +Search for the app name you just created in WeCom to start chatting directly. You can run multiple instances listening on different ports to create multiple WeCom apps: + + + +To allow external personal WeChat users to use the app, go to **My Enterprise → WeChat Plugin**, share the invite QR code. After scanning and following, personal WeChat users can join and chat with the app: + + diff --git a/docs/en/releases/overview.mdx b/docs/en/releases/overview.mdx index 8d6019c..38445fd 100644 --- a/docs/en/releases/overview.mdx +++ b/docs/en/releases/overview.mdx @@ -5,6 +5,7 @@ description: CowAgent version history | Version | Date | Description | | --- | --- | --- | +| [2.0.2](/en/releases/v2.0.2) | 2026.02.27 | Web Console upgrade, multi-channel concurrency, session persistence | | [2.0.1](/en/releases/v2.0.1) | 2026.02.27 | Built-in Web Search tool, smart context management, multiple fixes | | [2.0.0](/en/releases/v2.0.0) | 2026.02.03 | Full upgrade to AI super assistant | | 1.7.6 | 2025.05.23 | Web Channel optimization, AgentMesh plugin | diff --git a/docs/en/releases/v2.0.2.mdx b/docs/en/releases/v2.0.2.mdx new file mode 100644 index 0000000..b833adf --- /dev/null +++ b/docs/en/releases/v2.0.2.mdx @@ -0,0 +1,98 @@ +--- +title: v2.0.2 +description: CowAgent 2.0.2 - Web Console upgrade, multi-channel concurrency, session persistence +--- + +**Release Date**: 2026.02.27 | [Full Changelog](https://github.com/zhayujie/chatgpt-on-wechat/compare/2.0.1...master) + +## Highlights + +### 🖥️ Web Console Upgrade + +The Web Console has been fully upgraded with streaming conversation output, visual display of tool execution and reasoning processes, and online management of **models, skills, memory, channels, and Agent configuration**. + +#### Chat Interface + +Supports streaming output with real-time display of the Agent's reasoning process and tool calls, providing intuitive observation of the Agent's decision-making: + + + +#### Model Management + +Manage model configurations online without manually editing config files: + + + +#### Skill Management + +View and manage Agent skills (Skills) online: + + + +#### Memory Management + +View and manage Agent memory online: + + + +#### Channel Management + +Manage connected channels online with real-time connect/disconnect operations: + + + +#### Scheduled Tasks + +View and manage scheduled tasks online, including one-time tasks, fixed intervals, and Cron expressions: + + + +#### Logs + +View Agent runtime logs in real-time for monitoring and troubleshooting: + + + +Related commits: [f1a1413](https://github.com/zhayujie/chatgpt-on-wechat/commit/f1a1413), [c0702c8](https://github.com/zhayujie/chatgpt-on-wechat/commit/c0702c8), [394853c](https://github.com/zhayujie/chatgpt-on-wechat/commit/394853c), [1c71c4e](https://github.com/zhayujie/chatgpt-on-wechat/commit/1c71c4e), [5e3eccb](https://github.com/zhayujie/chatgpt-on-wechat/commit/5e3eccb), [e1dc037](https://github.com/zhayujie/chatgpt-on-wechat/commit/e1dc037), [5edbf4c](https://github.com/zhayujie/chatgpt-on-wechat/commit/5edbf4c), [7d258b5](https://github.com/zhayujie/chatgpt-on-wechat/commit/7d258b5) + +### 🔀 Multi-Channel Concurrency + +Multiple channels (e.g., Feishu, DingTalk, WeCom, Web) can now run simultaneously, each in an independent thread without interference. + +Configuration: Set multiple channels in `config.json` via `channel_type` separated by commas, or connect/disconnect channels in real-time from the Web Console's channel management page. + +```json +{ + "channel_type": "web,feishu,dingtalk" +} +``` + +Related commits: [4694594](https://github.com/zhayujie/chatgpt-on-wechat/commit/4694594), [7cce224](https://github.com/zhayujie/chatgpt-on-wechat/commit/7cce224), [7d258b5](https://github.com/zhayujie/chatgpt-on-wechat/commit/7d258b5), [c9adddb](https://github.com/zhayujie/chatgpt-on-wechat/commit/c9adddb) + +### 💾 Session Persistence + +Session history is now persisted to a local SQLite database. Conversation context is automatically restored after service restarts. Historical conversations in the Web Console are also restored. + +Related commits: [29bfbec](https://github.com/zhayujie/chatgpt-on-wechat/commit/29bfbec), [9917552](https://github.com/zhayujie/chatgpt-on-wechat/commit/9917552), [925d728](https://github.com/zhayujie/chatgpt-on-wechat/commit/925d728) + +## New Models + +- **Gemini 3.1 Pro Preview**: Added `gemini-3.1-pro-preview` model support ([52d7cad](https://github.com/zhayujie/chatgpt-on-wechat/commit/52d7cad)) +- **Claude 4.6 Sonnet**: Added `claude-4.6-sonnet` model support ([52d7cad](https://github.com/zhayujie/chatgpt-on-wechat/commit/52d7cad)) +- **Qwen3.5 Plus**: Added `qwen3.5-plus` model support ([e59a289](https://github.com/zhayujie/chatgpt-on-wechat/commit/e59a289)) +- **MiniMax M2.5**: Added `Minimax-M2.5` model support ([48db538](https://github.com/zhayujie/chatgpt-on-wechat/commit/48db538)) +- **GLM-5**: Added `glm-5` model support ([48db538](https://github.com/zhayujie/chatgpt-on-wechat/commit/48db538)) +- **Kimi K2.5**: Added `kimi-k2.5` model support ([48db538](https://github.com/zhayujie/chatgpt-on-wechat/commit/48db538)) +- **Doubao 2.0 Code**: Added `doubao-2.0-code` coding-specialized model ([ab28ee5](https://github.com/zhayujie/chatgpt-on-wechat/commit/ab28ee5)) +- **DashScope Models**: Added Alibaba Cloud DashScope model name support ([ce58f23](https://github.com/zhayujie/chatgpt-on-wechat/commit/ce58f23)) + +## Website & Documentation + +- **Official Website**: [cowagent.ai](https://cowagent.ai/) +- **Documentation**: [docs.cowagent.ai](https://docs.cowagent.ai/) + +## Bug Fixes + +- **Gemini DingTalk image recognition**: Fixed Gemini unable to process image markers in DingTalk channel ([05a3304](https://github.com/zhayujie/chatgpt-on-wechat/commit/05a3304)) ([#2670](https://github.com/zhayujie/chatgpt-on-wechat/pull/2670)) Thanks [@SgtPepper114](https://github.com/SgtPepper114) +- **Startup script dependencies**: Fixed dependency installation issue in `run.sh` script ([b6fc9fa](https://github.com/zhayujie/chatgpt-on-wechat/commit/b6fc9fa)) +- **Bare except cleanup**: Replaced `bare except` with `except Exception` for better exception handling ([adca89b](https://github.com/zhayujie/chatgpt-on-wechat/commit/adca89b)) ([#2674](https://github.com/zhayujie/chatgpt-on-wechat/pull/2674)) Thanks [@haosenwang1018](https://github.com/haosenwang1018) diff --git a/docs/guide/manual-install.mdx b/docs/guide/manual-install.mdx index 51bb15c..311bbe2 100644 --- a/docs/guide/manual-install.mdx +++ b/docs/guide/manual-install.mdx @@ -48,7 +48,7 @@ cp config-template.json config.json python3 app.py ``` -运行后默认启动 Web 服务,访问 `http://localhost:9899/chat` 开始对话。 +运行后默认启动 Web 控制台,访问 `http://localhost:9899` 开始对话和管理Agent。 **服务器后台运行:** diff --git a/docs/guide/quick-start.mdx b/docs/guide/quick-start.mdx index f9529d1..2143941 100644 --- a/docs/guide/quick-start.mdx +++ b/docs/guide/quick-start.mdx @@ -22,7 +22,7 @@ bash <(curl -sS https://cdn.link-ai.tech/code/cow/run.sh) 5. 引导配置 AI 模型和通信渠道 6. 启动服务 -运行后默认启动 Web 服务,访问 `http://localhost:9899/chat` 开始对话。 +运行后默认启动 Web 控制台,访问 `http://localhost:9899` 开始对话和管理Agent。 ## 管理命令