From c6ac175ce436307599d64b363324511051c94def Mon Sep 17 00:00:00 2001 From: saboteur7 Date: Tue, 3 Feb 2026 00:43:42 +0800 Subject: [PATCH] docs: update README.md --- README.md | 16 ++++++----- agent/protocol/agent_stream.py | 10 ------- agent/skills/types.py | 1 + config.py | 2 +- docs/agent.md | 45 +++++++++++++++---------------- models/dashscope/dashscope_bot.py | 3 ++- requirements-optional.txt | 10 ------- requirements.txt | 8 ++++++ 8 files changed, 42 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 282689f9..433e674f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

Chatgpt-on-Wechat

+

Chatgpt-on-Wechat

Latest release @@ -6,11 +6,11 @@ Stars

-**chatgpt-on-wechat**(简称CoW)项目是基于大模型的智能对话机器人,支持自由切换多种模型,可接入网页、微信公众号、企业微信应用、飞书、钉钉中使用,能处理文本、语音、图片、文件等多模态消息,支持通过插件访问操作系统和互联网等外部资源,以及基于自有知识库定制企业AI应用。 +**CowAgent** 是基于大模型的超级AI助理,能够主动思考和任务规划、操作计算机和外部资源、创造和执行Skill、拥有长期记忆并不断成长。CowAgent 支持灵活切换多种模型,能处理文本、语音、图片、文件等多模态消息,可接入网页、飞书、钉钉、企业微信应用、微信公众号中使用,7*24小时运行于你的个人电脑或服务器中。 # 简介 -> 该项目既是一个可以开箱即用的对话机器人,也是一个支持高度扩展的AI应用框架,可以通过为项目添加大模型接口、接入渠道、自定义插件来灵活实现各种定制需求。支持的功能如下: +> 该项目既是一个可以开箱即用的AI助理,也是一个支持高度扩展的Agent框架,可以通过为项目扩展大模型接口、接入渠道、内置工具、Skill系统来灵活实现各种定制需求。核心功能如下: - ✅ **多端部署:** 有多种部署方式可选择且功能完备,目前已支持网页、微信公众号、企业微信应用、飞书、钉钉等部署方式 - ✅ **基础对话:** 私聊及群聊的AI智能回复,支持多轮会话上下文记忆,基础模型支持OpenAI, Claude, Gemini, DeepSeek, 通义千问, Kimi, 文心一言, 讯飞星火, ChatGLM, MiniMax, GiteeAI, ModelScope, LinkAI @@ -22,13 +22,15 @@ ## 声明 -1. 本项目遵循 [MIT开源协议](/LICENSE),仅用于技术研究和学习,使用本项目时需遵守所在地法律法规、相关政策以及企业章程,禁止用于任何违法或侵犯他人权益的行为。任何个人、团队和企业,无论以何种方式使用该项目、对何对象提供服务,所产生的一切后果,本项目均不承担任何责任 -2. 境内使用该项目时,建议使用国内厂商的大模型服务,并进行必要的内容安全审核及过滤 -3. 本项目当前主要接入协同办公平台,推荐使用网页、公众号、企微自建应用、钉钉、飞书等接入通道,其他通道为历史产物暂不维护 +1. 本项目遵循 [MIT开源协议](/LICENSE),用于技术研究和学习,使用本项目时需遵守所在地法律法规、相关政策以及企业章程,禁止用于任何违法或侵犯他人权益的行为。任何个人、团队和企业,无论以何种方式使用该项目、对何对象提供服务,所产生的一切后果,本项目均不承担任何责任 +2. 境内使用该项目时,推荐使用国内厂商的大模型服务,并进行必要的内容安全审核及过滤 +3. 本项目当前主要接入协同办公平台,推荐使用飞书、钉钉、企微自建应用、网页、公众号等接入通道,其他通道持续扩展中,欢迎贡献代码或提交反馈 ## 演示 -DEMO视频:https://cdn.link-ai.tech/doc/cow_demo.mp4 +使用说明(Agent模式):[CowAgent介绍](/docs/agent.md) + +DEMO视频(对话模式):https://cdn.link-ai.tech/doc/cow_demo.mp4 ## 社区 diff --git a/agent/protocol/agent_stream.py b/agent/protocol/agent_stream.py index 8730fd3f..52a2fa9c 100644 --- a/agent/protocol/agent_stream.py +++ b/agent/protocol/agent_stream.py @@ -476,17 +476,7 @@ class AgentStreamExecutor: # Prepare messages messages = self._prepare_messages() - - # Debug: log message structure logger.debug(f"Sending {len(messages)} messages to LLM") - for i, msg in enumerate(messages): - role = msg.get("role", "unknown") - content = msg.get("content", "") - if isinstance(content, list): - content_types = [c.get("type") for c in content if isinstance(c, dict)] - logger.debug(f" Message {i}: role={role}, content_blocks={content_types}") - else: - logger.debug(f" Message {i}: role={role}, content_length={len(str(content))}") # Prepare tool definitions (OpenAI/Claude format) tools_schema = None diff --git a/agent/skills/types.py b/agent/skills/types.py index dd2a1292..e44189cb 100644 --- a/agent/skills/types.py +++ b/agent/skills/types.py @@ -2,6 +2,7 @@ Type definitions for skills system. """ +from __future__ import annotations from typing import Dict, List, Optional, Any from dataclasses import dataclass, field diff --git a/config.py b/config.py index 3c095d07..ce8fb91c 100644 --- a/config.py +++ b/config.py @@ -183,7 +183,7 @@ available_setting = { "linkai_api_key": "", "linkai_app_code": "", "linkai_api_base": "https://api.link-ai.tech", # linkAI服务地址 - "Minimax_api_key": "", + "minimax_api_key": "", "Minimax_group_id": "", "Minimax_base_url": "", "web_port": 9899, diff --git a/docs/agent.md b/docs/agent.md index c7e38d1d..fd63bb1e 100644 --- a/docs/agent.md +++ b/docs/agent.md @@ -2,15 +2,15 @@ ## 概述 -Cow项目从简单的聊天机器人全面升级为超级智能助理 **CowAgent**,能够主动规思考和规划任务、拥有长期记忆、操作计算机和外部资源、创造和执行Skill,真正理解你并和你一起成长。CowAgent能够长期运行在个人电脑或服务器中,通过飞书、钉钉、企业微信、网页等多种方式进行交互。核心能力如下: +Cow项目从简单的聊天机器人全面升级为超级智能助理 **CowAgent**,能够主动思考和规划任务、拥有长期记忆、操作计算机和外部资源、创造和执行Skill,真正理解你并和你一起成长。CowAgent能够长期运行在个人电脑或服务器中,通过飞书、钉钉、企业微信、网页等多种方式进行交互。核心能力如下: - **复杂任务规划**:能够理解复杂任务并自主规划执行,持续思考和调用工具直到完成目标,支持多轮推理和上下文理解 - **工具系统**:内置 10+ 种工具,包括文件操作、bash终端、浏览器、文件发送、定时任务、记忆管理等 - **长期记忆**:持久化记忆自动保存到本地,通过向量数据库实现智能检索,分为核心记忆、每日记忆、用户记忆三个层次 -- **Skill系统**:可无限扩展的技能系统,内置技能创造器、网络搜索、图像识别等技能,可通过自然语言 -- **多渠道和多模型支持**:支持在Web、飞书、钉钉、企微等多渠道与Agent交互,兼容 OpenAI、Claude、Gemini等多种主流模型 -- **安全和成本**:通过秘钥管理工具、提示词控制、系统权限等手段控制Agent的访问权限;通过 +- **Skill系统**:可无限扩展的技能系统,内置技能创造器、网络搜索、图像识别等技能,支持通过自然语言完成技能创造 +- **多渠道和多模型支持**:支持在Web、飞书、钉钉、企微等多渠道与Agent交互,支持Claude、Gemini、OpenAI、GLM、MiniMax、Qwen 等多种国内外主流模型 +- **安全和成本**:通过秘钥管理工具、提示词控制、系统权限等手段控制Agent的访问安全;通过最大记忆轮次、最大上下文token、工具执行步数对token成本进行限制 ## 核心功能 @@ -20,28 +20,24 @@ Cow项目从简单的聊天机器人全面升级为超级智能助理 **CowAgent > 记忆系统让 Agent 能够长期记住重要信息。Agent 会在用户分享偏好、决策、事实等重要信息时主动存储,也会在对话达到一定长度时自动提取摘要。记忆分为核心记忆、天级记忆,支持语义搜索和向量检索的混合检索模式。 -第一次启动Agent会主动向用户获取询问关键信息,并记录至工作空间 (默认为 ~/cow) 中的智能体设定、用户身份、记忆文件中: +第一次启动Agent会主动向用户获取询问关键信息,并记录至工作空间 (默认为 ~/cow) 中的智能体设定、用户身份、记忆文件中。 - - -在后续的长期对话中,Agent会在需要的时候智能记录或检索记忆,并对自身设定、用户偏好、记忆文件等进行不断更新,总结和记录经验和教训,真正实现自主思考和不断成长: - - - +在后续的长期对话中,Agent会在需要的时候智能记录或检索记忆,并对自身设定、用户偏好、记忆文件等进行不断更新,总结和记录经验和教训,真正实现自主思考和不断成长。 + ### 2. 任务规划和工具调用 -工具是 Agent 与外部世界交互的桥梁。Agent会根据任务需求智能选择和调用工具,完成文件管理、命令执行、网页访问、定时任务等各类操作。所有工具调用对用户透明,Agent 会在执行时说明正在做什么,遇到敏感操作会征求确认。 +工具是Agent访问操作系统资源的核心,Agent会根据任务需求智能选择和调用工具,完成文件读写、命令执行、定时任务等各类操作。内置工具的视线在项目的 `tools` 目录下。 -**主要工具:** 文件读写编辑、bash 终端、浏览器、文件发送、定时调度、记忆搜索、环境配置等。 +**主要工具:** 文件读写编辑、Bash终端、浏览器、文件发送、定时调度、记忆搜索、环境配置等。 #### 1.1 终端和文件访问能力 针对操作系统的终端和文件的访问能力,是最基础和核心的工具,其他很多工具或技能都是基于基础工具进行扩展。用户可通过手机端与Agent交互,操作个人电脑或服务器上的资源: - + #### 1.2 编程能力 @@ -56,16 +52,16 @@ Cow项目从简单的聊天机器人全面升级为超级智能助理 **CowAgent 基于 scheduler 工具实现动态定时任务,支持 **一次性任务、固定时间间隔、Cron表达式** 三种形式,任务触发可选择**固定消息发送** 或 **Agent动态任务** 执行两种模式,有很高灵活性: - + 同时你也可以通过自然语言快速查看和管理已有的定时任务。 #### 1.4 环境变量管理 -技能所需要的秘钥存储在环境变量文件中,由 `env_config` 工具进行管理,你可以通过对话的方式让 - +技能所需要的秘钥存储在环境变量文件中,由 `env_config` 工具进行管理,你可以通过对话的方式更新秘钥,工具内置了安全保护和脱敏策略,会严格保护秘钥安全: + ### 3. 技能系统 @@ -80,7 +76,7 @@ Cow项目从简单的聊天机器人全面升级为超级智能助理 **CowAgent 通过 `skill-creator` 技能可以通过对话的方式快速创建技能。你可以在与Agent的写作中让他对将某个工作流程固化为技能,或者把任意接口文档和示例发送给Agent,让他直接完成对接: - + #### 3.2 搜索和图像识别 @@ -88,12 +84,14 @@ Cow项目从简单的聊天机器人全面升级为超级智能助理 **CowAgent - **搜索技能:** 系统内置实现了 `bocha-search`(博查搜索)的Skill,依赖环境变量 `BOCHA_SEARCH_API_KEY`,可在[控制台]()进行创建,并发送给Agent完成配置 - **图像识别技能:** 实现了 `openai-image-vision` 插件,可使用 gpt-4.1-mini、gpt-4.1 等图像识别模型。依赖秘钥 `OPENAI_API_KEY`,可通过config.json或env_config工具进行维护。 - + #### 3.3 三方知识库和插件 -`linkai-agent` 技能可以将 [LinkAI](https://link-ai.tech/) 上的所有智能体作为skill交给Agent使用,并实现多智能体决策的效果。配置文件在 `skills/linkai-agent/config.json`中,示例如下: +`linkai-agent` 技能可以将 [LinkAI](https://link-ai.tech/) 上的所有智能体作为skill交给Agent使用,并实现多智能体决策的效果。 + +使用方式:需通过对话的方式配置 `LINKAI_API_KEY`,或在config.json中添加 `linkai_api_key`。 并在 `skills/linkai-agent/config.json`中添加智能体说明,示例如下: ```json { @@ -114,10 +112,9 @@ Cow项目从简单的聊天机器人全面升级为超级智能助理 **CowAgent Agent可根据智能体的名称和描述进行决策,并通过 app_code 调用接口访问对应的应用/工作流,通过该技能,可以灵活访问LinkAI平台上的智能体、知识库、插件等能力,实现效果如下: - - - -注:需通过env_config配置 `LINKAI_API_KEY`,或在config.json中添加 linkai_api_key 配置。 + + +注:需通过 `env_config` 配置 `LINKAI_API_KEY`,或在config.json中添加 `linkai_api_key` 配置。 diff --git a/models/dashscope/dashscope_bot.py b/models/dashscope/dashscope_bot.py index 45b8ac52..5d9060e7 100644 --- a/models/dashscope/dashscope_bot.py +++ b/models/dashscope/dashscope_bot.py @@ -35,7 +35,8 @@ class DashscopeBot(Bot): self.sessions = SessionManager(DashscopeSession, model=conf().get("model") or "qwen-plus") self.model_name = conf().get("model") or "qwen-plus" self.api_key = conf().get("dashscope_api_key") - os.environ["DASHSCOPE_API_KEY"] = self.api_key + if self.api_key: + os.environ["DASHSCOPE_API_KEY"] = self.api_key self.client = dashscope.Generation def reply(self, query, context=None): diff --git a/requirements-optional.txt b/requirements-optional.txt index c6d90c6c..06bb9289 100644 --- a/requirements-optional.txt +++ b/requirements-optional.txt @@ -15,10 +15,6 @@ elevenlabs==1.0.3 # elevenlabs TTS #install plugin dulwich -# wechatmp && wechatcom && feishu -web.py -wechatpy - # xunfei spark websocket-client==1.2.0 @@ -32,11 +28,5 @@ broadscope_bailian # google google-generativeai -# zhipuai -zai-sdk - -# tongyi qwen new sdk -dashscope - # tencentcloud sdk tencentcloud-sdk-python>=3.0.0 diff --git a/requirements.txt b/requirements.txt index 9dc82bd6..106656b1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,6 +13,14 @@ python-dotenv>=1.0.0 PyYAML>=6.0 croniter>=2.0.0 +# zhipuai +zai-sdk +# tongyi qwen sdk +dashscope + +# wechatcom & wechatmp +web.py +wechatpy # feishu websocket mode lark-oapi # dingtalk