zhayujie/chatgpt-on-wechat
GitHub: zhayujie/chatgpt-on-wechat
基于大模型的多平台AI助理框架,支持Agent自主任务规划、长期记忆、技能系统和多渠道部署。
Stars: 41703 | Forks: 9787
[中文] | [English]
# 🚀 快速开始 项目提供了一键安装、配置、启动、管理程序的脚本,推荐使用脚本快速运行,也可以根据下文中的详细指引一步步安装运行。 在终端执行以下命令: bash <(curl -sS https://cdn.link-ai.tech/code/cow/run.sh) 脚本使用说明:[一键运行脚本](https://docs.cowagent.ai/guide/quick-start) ## 一、准备 ### 1. 模型API 项目支持国内外主流厂商的模型接口,可选模型及配置说明参考:[模型说明](#模型说明)。 同时支持使用 **LinkAI平台** 接口,可灵活切换 OpenAI、Claude、Gemini、DeepSeek、Qwen、Kimi 等多种常用模型,并支持知识库、工作流、插件等Agent能力,参考 [接口文档](https://docs.link-ai.tech/platform/api)。 ### 2.环境安装 支持 Linux、MacOS、Windows 操作系统,可在个人计算机及服务器上运行,需安装 `Python`,Python版本需在3.7 ~ 3.12 之间,推荐使用3.9版本。 **(1) 克隆项目代码:** git clone https://github.com/zhayujie/chatgpt-on-wechat cd chatgpt-on-wechat/ 若遇到网络问题可使用国内仓库地址:https://gitee.com/zhayujie/chatgpt-on-wechat **(2) 安装核心依赖 (必选):** pip3 install -r requirements.txt **(3) 拓展依赖 (可选,建议安装):** pip3 install -r requirements-optional.txt 如果某项依赖安装失败可注释掉对应的行后重试。 ## 二、配置 配置文件的模板在根目录的`config-template.json`中,需复制该模板创建最终生效的 `config.json` 文件: cp config-template.json config.json 然后在`config.json`中填入配置,以下是对默认配置的说明,可根据需要进行自定义修改(注意实际使用时请去掉注释,保证JSON格式的规范): # config.json 文件内容示例 { "channel_type": "web", # 接入渠道类型,默认为web,支持修改为:feishu,dingtalk,wechatcom_app,terminal,wechatmp,wechatmp_service "model": "MiniMax-M2.5", # 模型名称 "minimax_api_key": "", # MiniMax API Key "zhipu_ai_api_key": "", # 智谱GLM API Key "moonshot_api_key": "", # Kimi/Moonshot API Key "ark_api_key": "", # 豆包(火山方舟) API Key "dashscope_api_key": "", # 百炼(通义千问)API Key "claude_api_key": "", # Claude API Key "claude_api_base": "https://api.anthropic.com/v1", # Claude API 地址,修改可接入三方代理平台 "gemini_api_key": "", # Gemini API Key "gemini_api_base": "https://generativelanguage.googleapis.com", # Gemini API地址 "open_ai_api_key": "", # OpenAI API Key "open_ai_api_base": "https://api.openai.com/v1", # OpenAI API 地址 "linkai_api_key": "", # LinkAI API Key "proxy": "", # 代理客户端的ip和端口,国内环境需要开启代理的可填写该项,如 "127.0.0.1:7890" "speech_recognition": false, # 是否开启语音识别 "group_speech_recognition": false, # 是否开启群组语音识别 "voice_reply_voice": false, # 是否使用语音回复语音 "use_linkai": false, # 是否使用LinkAI接口,默认关闭,设置为true后可对接LinkAI平台接口 "agent": true, # 是否启用Agent模式,启用后拥有多轮工具决策、长期记忆、Skills能力等 "agent_workspace": "~/cow", # Agent的工作空间路径,用于存储memory、skills、系统设定等 "agent_max_context_tokens": 40000, # Agent模式下最大上下文tokens,超出将自动丢弃最早的上下文 "agent_max_context_turns": 30, # Agent模式下最大上下文记忆轮次,每轮包括一次用户提问和AI回复 "agent_max_steps": 15 # Agent模式下单次任务的最大决策步数,超出后将停止继续调用工具 } **配置补充说明:**
1. 语音配置
+ 添加 `"speech_recognition": true` 将开启语音识别,默认使用openai的whisper模型识别为文字,同时以文字回复,该参数仅支持私聊 (注意由于语音消息无法匹配前缀,一旦开启将对所有语音自动回复,支持语音触发画图); + 添加 `"group_speech_recognition": true` 将开启群组语音识别,默认使用openai的whisper模型识别为文字,同时以文字回复,参数仅支持群聊 (会匹配group_chat_prefix和group_chat_keyword, 支持语音触发画图); + 添加 `"voice_reply_voice": true` 将开启语音回复语音(同时作用于私聊和群聊)2. 其他配置
+ `model`: 模型名称,Agent模式下推荐使用 `MiniMax-M2.5`、`glm-5`、`kimi-k2.5`、`qwen3.5-plus`、`claude-sonnet-4-6`、`gemini-3.1-pro-preview`,全部模型名称参考[common/const.py](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/common/const.py)文件 + `character_desc`:普通对话模式下的机器人系统提示词。在Agent模式下该配置不生效,由工作空间中的文件内容构成。 + `subscribe_msg`:订阅消息,公众号和企业微信channel中请填写,当被订阅时会自动回复, 可使用特殊占位符。目前支持的占位符有{trigger_prefix},在程序中它会自动替换成bot的触发词。3. LinkAI配置
+ `use_linkai`: 是否使用LinkAI接口,默认关闭,设置为true后可对接LinkAI平台,使用知识库、工作流、插件等能力, 参考[接口文档](https://docs.link-ai.tech/platform/api/chat) + `linkai_api_key`: LinkAI Api Key,可在 [控制台](https://link-ai.tech/console/interface) 创建 + `linkai_app_code`: LinkAI 应用或工作流的code,选填,普通对话模式中使用。OpenAI
1. API Key创建:在 [OpenAI平台](https://platform.openai.com/api-keys) 创建API Key 2. 填写配置 { "model": "gpt-4.1-mini", "open_ai_api_key": "YOUR_API_KEY", "open_ai_api_base": "https://api.openai.com/v1", "bot_type": "chatGPT" } - `model`: 与OpenAI接口的 [model参数](https://platform.openai.com/docs/models) 一致,支持包括 o系列、gpt-5.2、gpt-5.1、gpt-4.1等系列模型 - `open_ai_api_base`: 如果需要接入第三方代理接口,可通过修改该参数进行接入 - `bot_type`: 使用OpenAI相关模型时无需填写。当使用第三方代理接口接入Claude等非OpenAI官方模型时,该参数设为 `chatGPT`LinkAI
1. API Key创建:在 [LinkAI平台](https://link-ai.tech/console/interface) 创建API Key 2. 填写配置 { "use_linkai": true, "linkai_api_key": "YOUR API KEY", "linkai_app_code": "YOUR APP CODE" } + `use_linkai`: 是否使用LinkAI接口,默认关闭,设置为true后可对接LinkAI平台的智能体,使用知识库、工作流、数据库、MCP插件等丰富的Agent能力 + `linkai_api_key`: LinkAI平台的API Key,可在 [控制台](https://link-ai.tech/console/interface) 中创建 + `linkai_app_code`: LinkAI智能体 (应用或工作流) 的code,选填,普通对话模式可用。智能体创建可参考 [说明文档](https://docs.link-ai.tech/platform/quick-start) + `model`: model字段填写空则直接使用智能体的模型,可在平台中灵活切换,[模型列表](https://link-ai.tech/console/models)中的全部模型均可使用MiniMax
方式一:官方接入,配置如下(推荐): { "model": "MiniMax-M2.5", "minimax_api_key": "" } - `model`: 可填写 `MiniMax-M2.5、MiniMax-M2.1、MiniMax-M2.1-lightning、MiniMax-M2、abab6.5-chat` 等 - `minimax_api_key`:MiniMax平台的API-KEY,在 [控制台](https://platform.minimaxi.com/user-center/basic-information/interface-key) 创建 方式二:OpenAI兼容方式接入,配置如下: { "bot_type": "chatGPT", "model": "MiniMax-M2.5", "open_ai_api_base": "https://api.minimaxi.com/v1", "open_ai_api_key": "" } - `bot_type`: OpenAI兼容方式 - `model`: 可填 `MiniMax-M2.5、MiniMax-M2.1、MiniMax-M2.1-lightning、MiniMax-M2`,参考[API文档](https://platform.minimaxi.com/document/%E5%AF%B9%E8%AF%9D?key=66701d281d57f38758d581d0#QklxsNSbaf6kM4j6wjO5eEek) - `open_ai_api_base`: MiniMax平台API的 BASE URL - `open_ai_api_key`: MiniMax平台的API-KEY智谱AI (GLM)
方式一:官方接入,配置如下(推荐): { "model": "glm-5", "zhipu_ai_api_key": "" } - `model`: 可填 `glm-5、glm-4.7、glm-4-plus、glm-4-flash、glm-4-air、glm-4-airx、glm-4-long` 等, 参考 [glm系列模型编码](https://bigmodel.cn/dev/api/normal-model/glm-4) - `zhipu_ai_api_key`: 智谱AI平台的 API KEY,在 [控制台](https://www.bigmodel.cn/usercenter/proj-mgmt/apikeys) 创建 方式二:OpenAI兼容方式接入,配置如下: { "bot_type": "chatGPT", "model": "glm-5", "open_ai_api_base": "https://open.bigmodel.cn/api/paas/v4", "open_ai_api_key": "" } - `bot_type`: OpenAI兼容方式 - `model`: 可填 `glm-5、glm-4.7、glm-4-plus、glm-4-flash、glm-4-air、glm-4-airx、glm-4-long` 等 - `open_ai_api_base`: 智谱AI平台的 BASE URL - `open_ai_api_key`: 智谱AI平台的 API KEY通义千问 (Qwen)
方式一:官方SDK接入,配置如下(推荐): { "model": "qwen3.5-plus", "dashscope_api_key": "sk-qVxxxxG" } - `model`: 可填写 `qwen3.5-plus、qwen3-max、qwen-max、qwen-plus、qwen-turbo、qwen-long、qwq-plus` 等 - `dashscope_api_key`: 通义千问的 API-KEY,参考 [官方文档](https://bailian.console.aliyun.com/?tab=api#/api) ,在 [控制台](https://bailian.console.aliyun.com/?tab=model#/api-key) 创建 方式二:OpenAI兼容方式接入,配置如下: { "bot_type": "chatGPT", "model": "qwen3.5-plus", "open_ai_api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1", "open_ai_api_key": "sk-qVxxxxG" } - `bot_type`: OpenAI兼容方式 - `model`: 支持官方所有模型,参考[模型列表](https://help.aliyun.com/zh/model-studio/models?spm=a2c4g.11186623.0.0.78d84823Kth5on#9f8890ce29g5u) - `open_ai_api_base`: 通义千问API的 BASE URL - `open_ai_api_key`: 通义千问的 API-KEYKimi (Moonshot)
方式一:官方接入,配置如下: { "model": "kimi-k2.5", "moonshot_api_key": "" } - `model`: 可填写 `kimi-k2.5、kimi-k2、moonshot-v1-8k、moonshot-v1-32k、moonshot-v1-128k` - `moonshot_api_key`: Moonshot的API-KEY,在 [控制台](https://platform.moonshot.cn/console/api-keys) 创建 方式二:OpenAI兼容方式接入,配置如下: { "bot_type": "chatGPT", "model": "kimi-k2.5", "open_ai_api_base": "https://api.moonshot.cn/v1", "open_ai_api_key": "" } - `bot_type`: OpenAI兼容方式 - `model`: 可填写 `kimi-k2.5、kimi-k2、moonshot-v1-8k、moonshot-v1-32k、moonshot-v1-128k` - `open_ai_api_base`: Moonshot的 BASE URL - `open_ai_api_key`: Moonshot的 API-KEY豆包 (Doubao)
1. API Key创建:在 [火山方舟控制台](https://console.volcengine.com/ark/region:ark+cn-beijing/apikey) 创建API Key 2. 填写配置 { "model": "doubao-seed-2-0-code-preview-260215", "ark_api_key": "YOUR_API_KEY" } - `model`: 可填写 `doubao-seed-2-0-code-preview-260215、doubao-seed-2-0-pro-260215、doubao-seed-2-0-lite-260215、doubao-seed-2-0-mini-260215` 等 - `ark_api_key`: 火山方舟平台的 API Key,在 [控制台](https://console.volcengine.com/ark/region:ark+cn-beijing/apikey) 创建 - `ark_base_url`: 可选,默认为 `https://ark.cn-beijing.volces.com/api/v3`Claude
1. API Key创建:在 [Claude控制台](https://console.anthropic.com/settings/keys) 创建API Key 2. 填写配置 { "model": "claude-sonnet-4-6", "claude_api_key": "YOUR_API_KEY" } - `model`: 参考 [官方模型ID](https://docs.anthropic.com/en/docs/about-claude/models/overview#model-aliases) ,支持 `claude-sonnet-4-6、claude-opus-4-6、claude-sonnet-4-5、claude-sonnet-4-0、claude-opus-4-0、claude-3-5-sonnet-latest` 等Gemini
API Key创建:在 [控制台](https://aistudio.google.com/app/apikey?hl=zh-cn) 创建API Key ,配置如下 { "model": "gemini-3.1-pro-preview", "gemini_api_key": "" } - `model`: 参考[官方文档-模型列表](https://ai.google.dev/gemini-api/docs/models?hl=zh-cn),支持 `gemini-3.1-pro-preview、gemini-3-flash-preview、gemini-3-pro-preview、gemini-2.5-pro、gemini-2.0-flash` 等DeepSeek
1. API Key创建:在 [DeepSeek平台](https://platform.deepseek.com/api_keys) 创建API Key 2. 填写配置 { "model": "deepseek-chat", "open_ai_api_key": "sk-xxxxxxxxxxx", "open_ai_api_base": "https://api.deepseek.com/v1", "bot_type": "chatGPT" } - `bot_type`: OpenAI兼容方式 - `model`: 可填 `deepseek-chat、deepseek-reasoner`,分别对应的是 DeepSeek-V3 和 DeepSeek-R1 模型 - `open_ai_api_key`: DeepSeek平台的 API Key - `open_ai_api_base`: DeepSeek平台 BASE URLAzure
1. API Key创建:在 [Azure平台](https://oai.azure.com/) 创建API Key 2. 填写配置 { "model": "", "use_azure_chatgpt": true, "open_ai_api_key": "", "open_ai_api_base": "", "azure_deployment_id": "", "azure_api_version": "2025-01-01-preview" } - `model`: 留空即可 - `use_azure_chatgpt`: 设为 true - `open_ai_api_key`: Azure平台的密钥 - `open_ai_api_base`: Azure平台的 BASE URL - `azure_deployment_id`: Azure平台部署的模型名称 - `azure_api_version`: api版本以及以上参数可以在部署的 [模型配置](https://oai.azure.com/resource/deployments) 界面查看百度文心
方式一:官方SDK接入,配置如下: { "model": "wenxin-4", "baidu_wenxin_api_key": "IajztZ0bDxgnP9bEykU7lBer", "baidu_wenxin_secret_key": "EDPZn6L24uAS9d8RWFfotK47dPvkjD6G" } - `model`: 可填 `wenxin`和`wenxin-4`,对应模型为 文心-3.5 和 文心-4.0 - `baidu_wenxin_api_key`:参考 [千帆平台-access_token鉴权](https://cloud.baidu.com/doc/WENXINWORKSHOP/s/dlv4pct3s) 文档获取 API Key - `baidu_wenxin_secret_key`:参考 [千帆平台-access_token鉴权](https://cloud.baidu.com/doc/WENXINWORKSHOP/s/dlv4pct3s) 文档获取 Secret Key 方式二:OpenAI兼容方式接入,配置如下: { "bot_type": "chatGPT", "model": "ERNIE-4.0-Turbo-8K", "open_ai_api_base": "https://qianfan.baidubce.com/v2", "open_ai_api_key": "bce-v3/ALTxxxxxxd2b" } - `bot_type`: OpenAI兼容方式 - `model`: 支持官方所有模型,参考[模型列表](https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Wm9cvy6rl) - `open_ai_api_base`: 百度文心API的 BASE URL - `open_ai_api_key`: 百度文心的 API-KEY,参考 [官方文档](https://cloud.baidu.com/doc/qianfan-api/s/ym9chdsy5) ,在 [控制台](https://console.bce.baidu.com/iam/#/iam/apikey/list) 创建API Key讯飞星火
方式一:官方接入,配置如下: 参考 [官方文档-快速指引](https://www.xfyun.cn/doc/platform/quickguide.html#%E7%AC%AC%E4%BA%8C%E6%AD%A5-%E5%88%9B%E5%BB%BA%E6%82%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%BA%94%E7%94%A8-%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8%E6%9C%8D%E5%8A%A1) 获取 `APPID、 APISecret、 APIKey` 三个参数 { "model": "xunfei", "xunfei_app_id": "", "xunfei_api_key": "", "xunfei_api_secret": "", "xunfei_domain": "4.0Ultra", "xunfei_spark_url": "wss://spark-api.xf-yun.com/v4.0/chat" } - `model`: 填 `xunfei` - `xunfei_domain`: 可填写 `4.0Ultra、generalv3.5、max-32k、generalv3、pro-128k、lite` - `xunfei_spark_url`: 填写参考 [官方文档-请求地址](https://www.xfyun.cn/doc/spark/Web.html#_1-1-%E8%AF%B7%E6%B1%82%E5%9C%B0%E5%9D%80) 的说明 方式二:OpenAI兼容方式接入,配置如下: { "bot_type": "chatGPT", "model": "4.0Ultra", "open_ai_api_base": "https://spark-api-open.xf-yun.com/v1", "open_ai_api_key": "" } - `bot_type`: OpenAI兼容方式 - `model`: 可填写 `4.0Ultra、generalv3.5、max-32k、generalv3、pro-128k、lite` - `open_ai_api_base`: 讯飞星火平台的 BASE URL - `open_ai_api_key`: 讯飞星火平台的[APIPassword](https://console.xfyun.cn/services/bm3) ,因模型而已ModelScope
{ "bot_type": "modelscope", "model": "Qwen/QwQ-32B", "modelscope_api_key": "your_api_key", "modelscope_base_url": "https://api-inference.modelscope.cn/v1/chat/completions", "text_to_image": "MusePublic/489_ckpt_FLUX_1" } - `bot_type`: modelscope接口格式 - `model`: 参考[模型列表](https://www.modelscope.cn/models?filter=inference_type&page=1) - `modelscope_api_key`: 参考 [官方文档-访问令牌](https://modelscope.cn/docs/accounts/token) ,在 [控制台](https://modelscope.cn/my/myaccesstoken) - `modelscope_base_url`: modelscope平台的 BASE URL - `text_to_image`: 图像生成模型,参考[模型列表](https://www.modelscope.cn/models?filter=inference_type&page=1)1. Web
项目启动后会默认运行Web控制台,配置如下: { "channel_type": "web", "web_port": 9899 } - `web_port`: 默认为 9899,可按需更改,需要服务器防火墙和安全组放行该端口 - 如本地运行,启动后请访问 `http://localhost:9899/chat` ;如服务器运行,请访问 `http://ip:9899/chat`2. Feishu - 飞书
飞书支持两种事件接收模式:WebSocket 长连接(推荐)和 Webhook。 **方式一:WebSocket 模式(推荐,无需公网 IP)** { "channel_type": "feishu", "feishu_app_id": "APP_ID", "feishu_app_secret": "APP_SECRET", "feishu_event_mode": "websocket" } **方式二:Webhook 模式(需要公网 IP)** { "channel_type": "feishu", "feishu_app_id": "APP_ID", "feishu_app_secret": "APP_SECRET", "feishu_token": "VERIFICATION_TOKEN", "feishu_event_mode": "webhook", "feishu_port": 9891 } - `feishu_event_mode`: 事件接收模式,`websocket`(推荐)或 `webhook` - WebSocket 模式需安装依赖:`pip3 install lark-oapi` 详细步骤和参数说明参考 [飞书接入](https://docs.cowagent.ai/channels/feishu)3. DingTalk - 钉钉
钉钉需要在开放平台创建智能机器人应用,将以下配置填入 `config.json`: { "channel_type": "dingtalk", "dingtalk_client_id": "CLIENT_ID", "dingtalk_client_secret": "CLIENT_SECRET" } 详细步骤和参数说明参考 [钉钉接入](https://docs.cowagent.ai/channels/dingtalk)4. WeCom App - 企业微信应用
企业微信自建应用接入需在后台创建应用并启用消息回调,配置示例: { "channel_type": "wechatcom_app", "wechatcom_corp_id": "CORPID", "wechatcomapp_token": "TOKEN", "wechatcomapp_port": 9898, "wechatcomapp_secret": "SECRET", "wechatcomapp_agent_id": "AGENTID", "wechatcomapp_aes_key": "AESKEY" } 详细步骤和参数说明参考 [企微自建应用接入](https://docs.cowagent.ai/channels/wecom)5. WeChat MP - 微信公众号
本项目支持订阅号和服务号两种公众号,通过服务号(`wechatmp_service`)体验更佳。 **个人订阅号(wechatmp)** { "channel_type": "wechatmp", "wechatmp_token": "TOKEN", "wechatmp_port": 80, "wechatmp_app_id": "APPID", "wechatmp_app_secret": "APPSECRET", "wechatmp_aes_key": "" } **企业服务号(wechatmp_service)** { "channel_type": "wechatmp_service", "wechatmp_token": "TOKEN", "wechatmp_port": 80, "wechatmp_app_id": "APPID", "wechatmp_app_secret": "APPSECRET", "wechatmp_aes_key": "" } 详细步骤和参数说明参考 [微信公众号接入](https://docs.cowagent.ai/channels/wechatmp)6. Terminal - 终端
修改 `config.json` 中的 `channel_type` 字段: { "channel_type": "terminal" } 运行后可在终端与机器人进行对话。# 🔗 相关项目 - [bot-on-anything](https://github.com/zhayujie/bot-on-anything):轻量和高可扩展的大模型应用框架,支持接入Slack, Telegram, Discord, Gmail等海外平台,可作为本项目的补充使用。 - [AgentMesh](https://github.com/MinimalFuture/AgentMesh):开源的多智能体(Multi-Agent)框架,可以通过多智能体团队的协同来解决复杂问题。本项目基于该框架实现了[Agent插件](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/plugins/agent/README.md),可访问终端、浏览器、文件系统、搜索引擎 等各类工具,并实现了多智能体协同。 # 🔎 常见问题 FAQs:
标签:Agent, AIAgent, AI助手, AutoGPT, Chatbot, Claude, CowAgent, CVE检测, DeepSeek, Function Calling, Gemini, GLM, Kimi, LinkAI, OpenAI, Petitpotam, Python, RAG, Skills, Web聊天, 任务规划, 企业微信, 企业数字化, 内存规避, 向量检索, 图片理解, 多模态, 大模型Agent, 工具调用, 开源搜索引擎, 微信公众号, 技能系统, 操作系统交互, 数字员工, 文件处理, 文本生成, 无后门, 智能客服, 熵值分析, 生产力工具, 网络调试, 自动化, 语音识别, 请求拦截, 超级助理, 逆向工具, 通义千问, 钉钉机器人, 长期记忆, 飞书机器人