From b058af122cdf6b224c52979ec2c42cf3c6726141 Mon Sep 17 00:00:00 2001 From: zhayujie Date: Wed, 1 Apr 2026 12:24:21 +0800 Subject: [PATCH] feat: release 2.0.5 --- README.md | 11 +- agent/memory/summarizer.py | 57 +++++++--- channel/web/chat.html | 5 + channel/web/static/js/console.js | 6 +- cli/VERSION | 2 +- cli/commands/skill.py | 12 +- docs/agent.md | 185 ------------------------------- docs/channels/wecom-bot.mdx | 65 +++++++---- docs/docs.json | 9 +- docs/intro/features.mdx | 50 ++++++++- docs/releases/overview.mdx | 2 +- docs/releases/v2.0.5.mdx | 35 +++--- docs/skills/create.mdx | 2 +- docs/skills/hub.mdx | 65 +++++++++++ docs/skills/index.mdx | 6 +- docs/skills/install.mdx | 21 +++- plugins/cow_cli/cow_cli.py | 1 + pyproject.toml | 2 +- 18 files changed, 267 insertions(+), 269 deletions(-) delete mode 100644 docs/agent.md create mode 100644 docs/skills/hub.mdx diff --git a/README.md b/README.md index 67b4b83c..e356fe90 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ 🌐 官网  ·  📖 文档中心  ·  🚀 快速开始  ·  + 🧩 技能广场  ·  ☁️ 在线体验

@@ -23,7 +24,7 @@ - ✅ **自主任务规划**:能够理解复杂任务并自主规划执行,持续思考和调用工具直到完成目标 - ✅ **长期记忆:** 自动将对话记忆持久化至本地文件和数据库中,包括核心记忆和日级记忆,支持关键词及向量检索 -- ✅ **技能系统:** Skills 安装和运行的引擎,支持从 Skill Hub、GitHub 等安装技能,或通过对话创造 Skills +- ✅ **技能系统:** Skills 安装和运行的引擎,支持从 [Skill Hub](https://skills.cowagent.ai/)、GitHub 等一键安装技能,或通过对话创造 Skills - ✅ **工具系统:** 内置文件读写、终端执行、浏览器操作、定时任务等工具,Agent 自主调用以完成复杂任务 - ✅ **CLI系统:** 提供终端命令和对话命令,支持进程管理、技能安装、配置修改等操作 - ✅ **多模态消息:** 支持对文本、图片、语音、文件等多类型消息进行解析、处理、生成、发送等操作 @@ -68,6 +69,8 @@ # 🏷 更新日志 +>**2026.04.01:** [2.0.5版本](https://github.com/zhayujie/chatgpt-on-wechat/releases/tag/2.0.5),Cow CLI 命令系统、Skill Hub 开源、浏览器工具、企微扫码创建、多项优化和修复。 + >**2026.03.22:** [2.0.4版本](https://github.com/zhayujie/chatgpt-on-wechat/releases/tag/2.0.4),新增个人微信通道(微信扫码即用)、新增 MiniMax-M2.7 和 GLM-5-Turbo 模型、run.sh 脚本重构、日文文档及多项修复。 >**2026.03.18:** [2.0.3版本](https://github.com/zhayujie/chatgpt-on-wechat/releases/tag/2.0.3),新增企微智能机器人和 QQ 通道、支持 Coding Plan、新增多个模型、Web 端文件处理、记忆系统升级。 @@ -866,8 +869,10 @@ QQ 机器人使用 WebSocket 长连接模式,无需公网 IP 和域名,支 # 🔗 相关项目 +- [Cow Skill Hub](https://github.com/zhayujie/cow-skill-hub):开源的 AI Agent 技能广场,浏览、搜索、安装和发布技能,支持 CowAgent、OpenClaw、Claude Code 等多种 Agent。 - [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),可访问终端、浏览器、文件系统、搜索引擎 等各类工具,并实现了多智能体协同。 +- [AgentMesh](https://github.com/MinimalFuture/AgentMesh):开源的多智能体( Multi-Agent )框架,可以通过多智能体团队的协同来解决复杂问题。 + @@ -879,7 +884,7 @@ FAQs: # 🛠️ 开发 -欢迎接入更多应用通道,参考 [飞书通道](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/channel/feishu/feishu_channel.py) 新增自定义通道,实现接收和发送消息逻辑即可完成接入。同时欢迎贡献新的 Skills,参考 [技能创建文档](https://docs.cowagent.ai/skills/create)。 +欢迎接入更多应用通道,参考 [飞书通道](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/channel/feishu/feishu_channel.py) 新增自定义通道,实现接收和发送消息逻辑即可完成接入。同时欢迎贡献新的 Skills,向 [Skill Hub](https://skills.cowagent.ai/submit) 提交技能。 # ✉ 联系 diff --git a/agent/memory/summarizer.py b/agent/memory/summarizer.py index 20900fb3..b280e1c1 100644 --- a/agent/memory/summarizer.py +++ b/agent/memory/summarizer.py @@ -16,16 +16,26 @@ from datetime import datetime from common.log import logger -SUMMARIZE_SYSTEM_PROMPT = """你是一个记忆提取助手。你的任务是从对话记录中提取值得记住的信息,生成简洁的记忆摘要。 +SUMMARIZE_SYSTEM_PROMPT = """你是一个记忆提取助手。你的任务是从对话记录中提炼出值得长期记住的关键事件和核心信息。 + +核心原则: +- 按「事件」维度归纳,而不是按对话轮次逐条记录 +- 多轮对话如果围绕同一件事,合并为一条摘要 +- 只记录有长期价值的信息,忽略闲聊、问候、无意义的短消息 输出要求: -1. 以事件/关键信息为维度记录,每条一行,用 "- " 开头 -2. 记录有价值的关键信息,例如用户提出的要求及助手的解决方案,对话中涉及的事实信息,用户的偏好、决策或重要结论 -3. 每条摘要需要简明扼要,只保留关键信息 -4. 直接输出摘要内容,不要加任何前缀说明 -5. 当对话没有任何记录价值例如只是简单问候,可回复"无\"""" +1. 每条一行,用 "- " 开头,格式为:事件/主题 + 关键结论或结果 +2. 值得记录的信息类型:用户提出的需求及最终解决方案、重要的事实信息、用户的偏好或决策、关键技术方案或配置变更 +3. 不值得记录的信息:简单问候、闲聊、无实质内容的短消息、重复的中间过程 +4. 每条摘要应当简明扼要,一句话概括事件的核心内容和结果 +5. 直接输出摘要内容,不要加任何前缀说明 +6. 当对话没有任何记录价值(仅含问候或无意义内容),回复"无" -SUMMARIZE_USER_PROMPT = """请从以下对话记录中提取关键信息,生成记忆摘要: +示例(仅供参考格式): +- 用户配置了 XX 功能,设置参数为 YY,已生效 +- 用户反馈了 XX 问题,原因是 YY,通过 ZZ 方式解决""" + +SUMMARIZE_USER_PROMPT = """请从以下对话记录中,按关键事件维度提炼记忆摘要(合并同一事件的多轮对话,不要逐条列出): {conversation}""" @@ -220,14 +230,16 @@ class MemoryFlushManager: if not conversation_text.strip(): return "" - # Try LLM summarization first if self.llm_model: try: summary = self._call_llm_for_summary(conversation_text) if summary and summary.strip() and summary.strip() != "无": return summary.strip() + logger.info(f"[MemoryFlush] LLM returned empty or '无', using fallback") except Exception as e: logger.warning(f"[MemoryFlush] LLM summarization failed, using fallback: {e}") + else: + logger.info("[MemoryFlush] No LLM model available, using rule-based fallback") return self._extract_summary_fallback(messages, max_messages) @@ -277,27 +289,38 @@ class MemoryFlushManager: @staticmethod def _extract_summary_fallback(messages: List[Dict], max_messages: int = 0) -> str: - """Rule-based fallback when LLM is unavailable.""" + """ + Rule-based fallback when LLM is unavailable. + Groups consecutive user+assistant messages into events instead of + listing each message individually. + """ msgs = messages if max_messages == 0 else messages[-max_messages * 2:] - - items = [] + + events: List[str] = [] + current_user_text = "" for msg in msgs: role = msg.get("role", "") text = MemoryFlushManager._extract_text_from_content(msg.get("content", "")) if not text or not text.strip(): continue text = text.strip() - + if role == "user": if len(text) <= 5: continue - items.append(f"- 用户请求: {text[:200]}") - elif role == "assistant": + current_user_text = text[:150] + elif role == "assistant" and current_user_text: first_line = text.split("\n")[0].strip() if len(first_line) > 10: - items.append(f"- 处理结果: {first_line[:200]}") - - return "\n".join(items[:15]) + events.append(f"- {current_user_text} → {first_line[:150]}") + else: + events.append(f"- {current_user_text}") + current_user_text = "" + + if current_user_text: + events.append(f"- {current_user_text}") + + return "\n".join(events[:10]) @staticmethod def _extract_text_from_content(content) -> str: diff --git a/channel/web/chat.html b/channel/web/chat.html index f9dd1eee..6d3ba6e3 100644 --- a/channel/web/chat.html +++ b/channel/web/chat.html @@ -455,6 +455,11 @@

Skills

View, enable, or disable agent skills

+ + + Skill Hub + diff --git a/channel/web/static/js/console.js b/channel/web/static/js/console.js index dc0625b2..756c1ba4 100644 --- a/channel/web/static/js/console.js +++ b/channel/web/static/js/console.js @@ -33,7 +33,7 @@ const I18N = { config_save: '保存', config_saved: '已保存', config_save_error: '保存失败', config_custom_option: '自定义...', - skills_title: '技能管理', skills_desc: '查看、启用或禁用 Agent 技能', + skills_title: '技能管理', skills_desc: '查看、启用或禁用 Agent 技能', skills_hub_btn: '探索技能广场', skills_loading: '加载技能中...', skills_loading_desc: '技能加载后将显示在此处', tools_section_title: '内置工具', tools_loading: '加载工具中...', skills_section_title: '技能', skill_enable: '启用', skill_disable: '禁用', @@ -88,7 +88,7 @@ const I18N = { config_save: 'Save', config_saved: 'Saved', config_save_error: 'Save failed', config_custom_option: 'Custom...', - skills_title: 'Skills', skills_desc: 'View, enable, or disable agent skills', + skills_title: 'Skills', skills_desc: 'View, enable, or disable agent skills', skills_hub_btn: 'Skill Hub', skills_loading: 'Loading skills...', skills_loading_desc: 'Skills will be displayed here after loading', tools_section_title: 'Built-in Tools', tools_loading: 'Loading tools...', skills_section_title: 'Skills', skill_enable: 'Enable', skill_disable: 'Disable', @@ -881,7 +881,7 @@ function startSSE(requestId, loadingEl, timestamp) { const imgEl = document.createElement('img'); imgEl.src = item.content; imgEl.alt = 'screenshot'; - imgEl.style.cssText = 'max-width:360px;border-radius:8px;margin:8px 0;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,0.1);'; + imgEl.style.cssText = 'max-width:600px;border-radius:8px;margin:8px 0;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,0.1);'; imgEl.onclick = () => window.open(item.content, '_blank'); mediaEl.appendChild(imgEl); scrollChatToBottom(); diff --git a/cli/VERSION b/cli/VERSION index 2165f8f9..e0102586 100644 --- a/cli/VERSION +++ b/cli/VERSION @@ -1 +1 @@ -2.0.4 +2.0.5 diff --git a/cli/commands/skill.py b/cli/commands/skill.py index cf6c1954..23005d6a 100644 --- a/cli/commands/skill.py +++ b/cli/commands/skill.py @@ -753,7 +753,8 @@ def _list_remote(page: int = 1): nav_parts.append(f"cow skill list --remote --page {page + 1}") if nav_parts: click.echo(f" Navigate: {' | '.join(nav_parts)}") - click.echo(f" Install: cow skill install \n") + click.echo(f" Install: cow skill install ") + click.echo(f" Browse: https://skills.cowagent.ai\n") # ------------------------------------------------------------------ @@ -880,6 +881,15 @@ def _route_install(name: str, result: InstallResult): _install_hub(skill_name, result, provider="clawhub") return + # --- linkai: prefix --- + if name.startswith("linkai:"): + skill_code = name[7:] + # LinkAI codes can be mixed-case alphanumeric; validate loosely + if not re.match(r"^[a-zA-Z0-9_\-]{1,128}$", skill_code): + raise SkillInstallError(f"Invalid LinkAI skill code '{skill_code}'.") + _install_hub(skill_code, result, provider="linkai") + return + # --- owner/repo or owner/repo#subpath shorthand --- if re.match(r"^[a-zA-Z0-9_\-]+/[a-zA-Z0-9_.\-]+(?:#.+)?$", name): subpath = None diff --git a/docs/agent.md b/docs/agent.md deleted file mode 100644 index da8b0f0b..00000000 --- a/docs/agent.md +++ /dev/null @@ -1,185 +0,0 @@ -# CowAgent介绍 - -## 概述 - -Cow项目从简单的聊天机器人全面升级为超级智能助理 **CowAgent**,能够主动规思考和规划任务、拥有长期记忆、操作计算机和外部资源、创造和执行Skill,真正理解你并和你一起成长。CowAgent能够长期运行在个人电脑或服务器中,通过飞书、钉钉、企业微信、网页等多种方式进行交互。核心能力如下: - -- **复杂任务规划**:能够理解复杂任务并自主规划执行,持续思考和调用工具直到完成目标,支持多轮推理和上下文理解 -- **工具系统**:内置实现10+种工具,包括文件读写、bash终端、浏览器、定时任务、记忆管理等,通过Agent管理你的计算机或服务器 -- **长期记忆**:自动将对话记忆持久化至本地文件和数据库中,包括全局记忆和天级记忆,支持关键词及向量检索 -- **Skills系统**:新增Skill运行引擎,内置多种技能,并支持通过自然语言对话完成自定义Skills开发 -- **多渠道和多模型支持**:支持在Web、飞书、钉钉、企微等多渠道与Agent交互,支持Claude、Gemini、OpenAI、GLM、MiniMax、Qwen、Kimi、Doubao 等多种国内外主流模型 -- **安全和成本**:通过秘钥管理工具、提示词控制、系统权限等手段控制Agent的访问安全;通过最大记忆轮次、最大上下文token、工具执行步数对token成本进行限制 - - -## 核心功能 - -### 1. 长期记忆 - -> 记忆系统让 Agent 能够长期记住重要信息。Agent 会在用户分享偏好、决策、事实等重要信息时主动存储,也会在对话达到一定长度时自动提取摘要。记忆分为核心记忆、天级记忆,支持语义搜索和向量检索的混合检索模式。 - - -第一次启动Agent会主动向用户获取询问关键信息,并记录至工作空间 (默认为 ~/cow) 中的智能体设定、用户身份、记忆文件中。 - -在后续的长期对话中,Agent会在需要的时候智能记录或检索记忆,并对自身设定、用户偏好、记忆文件等进行不断更新,总结和记录经验和教训,真正实现自主思考和不断成长。 - - - - - -### 2. 任务规划和工具调用 - -工具是Agent访问操作系统资源的核心,Agent会根据任务需求智能选择和调用工具,完成文件读写、命令执行、定时任务等各类操作。内置工具的视线在项目的 `tools` 目录下。 - -**主要工具:** 文件读写编辑、Bash终端、浏览器、文件发送、定时调度、记忆搜索、环境配置等。 - -#### 1.1 终端和文件访问能力 - -针对操作系统的终端和文件的访问能力,是最基础和核心的工具,其他很多工具或技能都是基于基础工具进行扩展。用户可通过手机端与Agent交互,操作个人电脑或服务器上的资源: - - - -#### 1.2 编程能力 - -基于编程能力和系统访问能力,Agent可以实现从信息搜索、图片等素材生成、编码、测试、部署、Nginx配置修改、发布的 Vibecoding 全流程,通过手机端简单的一句命令完成应用的快速demo: - - - - - - -#### 1.3 定时任务 - -基于 scheduler 工具实现动态定时任务,支持 **一次性任务、固定时间间隔、Cron表达式** 三种形式,任务触发可选择**固定消息发送** 或 **Agent动态任务** 执行两种模式,有很高灵活性: - - - - -同时你也可以通过自然语言快速查看和管理已有的定时任务。 - - -#### 1.4 环境变量管理 - -技能所需要的秘钥存储在环境变量文件中,由 `env_config` 工具进行管理,你可以通过对话的方式更新秘钥,工具内置了安全保护和脱敏策略,会严格保护秘钥安全: - - - -### 3. 技能系统 - -> 技能系统为Agent提供无限的扩展性,每个Skill由说明文件、运行脚本 (可选)、资源 (可选) 组成,描述如何完成特定类型的任务。通过Skill可以让Agent遵循说明完成复杂流程,调用各类工具或对接第三方系统等。 - -- **内置技能:** 在项目的`skills`目录下,包含技能创造器、网络搜索、图像识别(openai-image-vision)、LinkAI智能体、网页抓取等。内置Skill根据依赖条件 (API Key、系统命令等) 自动判断是否启用。通过技能创造器可以快速创建自定义技能。 - -- **自定义技能:** 由用户通过对话创建,存放在工作空间中 (`~/cow/skills/`),基于自定义技能可以实现任何复杂的业务流程和第三方系统对接。 - - -#### 3.1 创建技能 - -通过 `skill-creator` 技能可以通过对话的方式快速创建技能。你可以在与Agent的写作中让他对将某个工作流程固化为技能,或者把任意接口文档和示例发送给Agent,让他直接完成对接: - - - - -#### 3.2 搜索和图像识别 - -- **搜索技能:** 系统内置实现了 `bocha-search`(博查搜索)的Skill,依赖环境变量 `BOCHA_SEARCH_API_KEY`,可在[控制台](https://open.bochaai.com/)进行创建,并发送给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使用,并实现多智能体决策的效果。 - -使用方式:需通过对话的方式配置 `LINKAI_API_KEY`,或在config.json中添加 `linkai_api_key`。 并在 `skills/linkai-agent/config.json`中添加智能体说明,示例如下: - -```json -{ - "apps": [ - { - "app_code": "G7z6vKwp", - "app_name": "LinkAI客服助手", - "app_description": "当用户需要了解LinkAI平台相关问题时才选择该助手,基于LinkAI知识库进行回答" - }, - { - "app_code": "SFY5x7JR", - "app_name": "内容创作助手", - "app_description": "当用户需要创作图片或视频时才使用该助手,支持Nano Banana、Seedream、即梦、Veo、可灵等多种模型" - } - ] -} -``` - -Agent可根据智能体的名称和描述进行决策,并通过 app_code 调用接口访问对应的应用/工作流,通过该技能,可以灵活访问LinkAI平台上的智能体、知识库、插件等能力,实现效果如下: - - - -注:需通过 `env_config` 配置 `LINKAI_API_KEY`,或在config.json中添加 `linkai_api_key` 配置。 - - -## 使用方式 - -> 详细使用方式参考项目README.md文档进行 - -### 1.项目运行 - -在命令行中执行: - -```bash -bash <(curl -fsSL https://cdn.link-ai.tech/code/cow/run.sh) -``` - -详细说明及后续程序管理参考:[项目启动脚本](https://github.com/zhayujie/chatgpt-on-wechat/wiki/CowAgentQuickStart) - - -### 2.模型选择 - -Agent模式推荐使用以下模型,可根据效果及成本综合选择: - -- **MiniMax**: `MiniMax-M2.7` -- **GLM**: `glm-5-turbo` -- **Kimi**: `kimi-k2.5` -- **Doubao**: `doubao-seed-2-0-code-preview-260215` -- **Qwen**: `qwen3.5-plus` -- **Claude**: `claude-sonnet-4-6` -- **Gemini**: `gemini-3.1-flash-lite-preview` -- **OpenAI**: `gpt-5.4` - -详细模型配置方式参考 [README.md 模型说明](../README.md#模型说明) - -### 3.Agent核心配置 - -Agent模式的核心配置项如下,在 `config.json` 中配置: - -```bash -{ - "agent": true, # 是否启用Agent模式 - "agent_workspace": "~/cow", # Agent工作空间路径 - "agent_max_context_tokens": 40000, # 最大上下文tokens - "agent_max_context_turns": 30, # 最大上下文记忆轮次 - "agent_max_steps": 15 # 单次任务最大决策步数 -} -``` - -**配置说明:** - -- `agent`: 设为 `true` 启用Agent模式,获得多轮工具决策、长期记忆、Skills等能力 -- `agent_workspace`: 工作空间路径,用于存储 memory、skills、其他系统设定提示词 -- `agent_max_context_tokens`: 上下文token上限,超出将自动丢弃最早的对话 -- `agent_max_context_turns`: 上下文记忆轮次,每轮包括一次提问和回复 -- `agent_max_steps`: 单次任务最大工具调用步数,防止无限循环 - - -### 4.渠道接入 - -Agent支持在多种渠道中使用,只需修改 `config.json` 中的 `channel_type` 配置即可切换。 - -- **Web网页**:默认使用该渠道,运行后监听本地端口,通过浏览器访问 -- **飞书接入**:[飞书接入文档](https://docs.link-ai.tech/cow/multi-platform/feishu) -- **钉钉接入**:[钉钉接入文档](https://docs.link-ai.tech/cow/multi-platform/dingtalk) -- **企业微信应用接入**:[企微应用文档](https://docs.link-ai.tech/cow/multi-platform/wechat-com) -- **企微智能机器人**:[企微智能机器人文档](https://docs.link-ai.tech/cow/multi-platform/wecom-bot) -- **QQ机器人**:[QQ机器人文档](https://docs.link-ai.tech/cow/multi-platform/qq) - -更多渠道配置参考:[通道说明](../README.md#通道说明) diff --git a/docs/channels/wecom-bot.mdx b/docs/channels/wecom-bot.mdx index bcdac98f..7275639f 100644 --- a/docs/channels/wecom-bot.mdx +++ b/docs/channels/wecom-bot.mdx @@ -9,7 +9,23 @@ description: 将 CowAgent 接入企业微信智能机器人(长连接模式) 智能机器人与企业微信自建应用是两种不同的接入方式。智能机器人使用 WebSocket 长连接,无需服务器公网 IP 和域名,配置更简单。 -## 一、创建智能机器人 +## 一、接入方式 + +### 方式一:扫码一键接入(推荐) + +无需提前创建机器人,启动 Cow 项目后打开 Web 控制台(本地链接:http://127.0.0.1:9899/),选择 **通道** 菜单,点击**接入通道**,选择**企微智能机器人**,切换到「扫码接入」模式,使用**企业微信**扫码即可自动完成机器人创建和接入。 + + + + + 扫码成功后,可在企业微信工作台 - **智能机器人**页面对机器人进行进一步配置,包括修改名称、头像、可见范围等。 + + +### 方式二:手动创建接入 + +需要先在企业微信中创建智能机器人并获取 Bot ID 和 Secret,再通过 Web 控制台或配置文件接入。 + +**步骤一:创建智能机器人** 1. 打开企业微信客户端,进入工作台,点击**智能机器人**: @@ -25,34 +41,35 @@ description: 将 CowAgent 接入企业微信智能机器人(长连接模式) 4. 设置机器人名称、头像、可见范围,并选择**长连接模式**,记录下 **Bot ID** 和 **Secret** 信息后点击保存。 -## 二、配置和运行 +**步骤二:接入 CowAgent** -### 方式一:Web 控制台接入 + + + 打开 Web 控制台,选择**通道**菜单,点击**接入通道**,选择**企微智能机器人**,切换到「手动填写」模式,输入 Bot ID 和 Secret,点击接入即可。 -启动Cow项目后打开 Web 控制台 (本地链接为: http://127.0.0.1:9899/ ),选择 **通道** 菜单,点击 **接入通道**,选择 **企微智能机器人**,填写上一步保存的 Bot ID 和 Secret,点击接入即可。 + + + + 在 `config.json` 中添加以下配置后启动程序: - + ```json + { + "channel_type": "wecom_bot", + "wecom_bot_id": "YOUR_BOT_ID", + "wecom_bot_secret": "YOUR_SECRET" + } + ``` -### 方式二:配置文件接入 + | 参数 | 说明 | + | --- | --- | + | `wecom_bot_id` | 智能机器人的 BotID | + | `wecom_bot_secret` | 智能机器人的 Secret | + + -在 `config.json` 中添加以下配置: +日志显示 `[WecomBot] Subscribe success` 即表示连接成功。 -```json -{ - "channel_type": "wecom_bot", - "wecom_bot_id": "YOUR_BOT_ID", - "wecom_bot_secret": "YOUR_SECRET" -} -``` - -| 参数 | 说明 | -| --- | --- | -| `wecom_bot_id` | 智能机器人的 BotID | -| `wecom_bot_secret` | 智能机器人的 Secret | - -配置完成后启动程序,日志显示 `[WecomBot] Subscribe success` 即表示连接成功。 - -## 三、功能说明 +## 二、功能说明 | 功能 | 支持情况 | | --- | --- | @@ -64,7 +81,7 @@ description: 将 CowAgent 接入企业微信智能机器人(长连接模式) | 流式回复 | ✅ | | 定时任务主动推送 | ✅ | -## 四、使用 +## 三、使用 在企业微信中搜索创建的机器人名称,即可开始单聊对话。 diff --git a/docs/docs.json b/docs/docs.json index 5e761093..272b28f5 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -129,7 +129,8 @@ "pages": [ "skills/index", "skills/install", - "skills/create" + "skills/create", + "skills/hub" ] } ] @@ -289,7 +290,8 @@ "pages": [ "en/skills/index", "en/skills/install", - "en/skills/skill-creator" + "en/skills/skill-creator", + "en/skills/hub" ] } ] @@ -449,7 +451,8 @@ "pages": [ "ja/skills/index", "ja/skills/install", - "ja/skills/create" + "ja/skills/create", + "ja/skills/hub" ] } ] diff --git a/docs/intro/features.mdx b/docs/intro/features.mdx index 56020d46..9bef1524 100644 --- a/docs/intro/features.mdx +++ b/docs/intro/features.mdx @@ -1,6 +1,6 @@ --- title: 功能介绍 -description: CowAgent 长期记忆、任务规划、技能系统详细说明 +description: CowAgent 长期记忆、任务规划、技能系统、CLI 命令、浏览器工具详细说明 --- ## 1. 长期记忆 @@ -19,7 +19,7 @@ description: CowAgent 长期记忆、任务规划、技能系统详细说明 工具是 Agent 访问操作系统资源的核心,Agent 会根据任务需求智能选择和调用工具,完成文件读写、命令执行、定时任务等各类操作。内置工具的实现在项目的 `agent/tools/` 目录下。 -**主要工具:** 文件读写编辑、Bash 终端、文件发送、定时调度、记忆搜索、联网搜索、环境配置等。 +**主要工具:** 文件读写编辑、Bash 终端、浏览器操作、文件发送、定时调度、记忆搜索、联网搜索、环境配置等。 ### 2.1 终端和文件访问 @@ -45,7 +45,15 @@ description: CowAgent 长期记忆、任务规划、技能系统详细说明 -### 2.4 环境变量管理 +### 2.4 浏览器操作 + +内置 `browser` 工具,Agent 可控制浏览器访问网页、填写表单、点击元素、截图,支持动态 JS 渲染页面。运行 `cow install-browser` 一键安装,自动适配服务器(无头模式)和桌面环境: + + + + + +### 2.5 环境变量管理 技能所需的秘钥存储在环境变量文件中,由 `env_config` 工具进行管理,你可以通过对话的方式更新秘钥,工具内置安全保护和脱敏策略: @@ -57,9 +65,12 @@ description: CowAgent 长期记忆、任务规划、技能系统详细说明 技能系统为 Agent 提供无限的扩展性,每个 Skill 由说明文件、运行脚本(可选)、资源(可选)组成,描述如何完成特定类型的任务。通过 Skill 可以让 Agent 遵循说明完成复杂流程、调用各类工具或对接第三方系统。 +- **[Skill Hub](https://skills.cowagent.ai/):** 开放的技能广场,汇集官方推荐、社区贡献和第三方技能,支持一键安装。 - **内置技能:** 在项目的 `skills/` 目录下,包含技能创造器、图像识别、LinkAI 智能体、网页抓取等。内置 Skill 根据依赖条件(API Key、系统命令等)自动判断是否启用。 - **自定义技能:** 由用户通过对话创建,存放在工作空间中(`~/cow/skills/`),可实现任何复杂的业务流程和第三方系统对接。 +安装技能:`/skill install <名称>` 或 `cow skill install <名称>`,支持从 Skill Hub、GitHub、ClawHub、URL 等来源安装。 + ### 3.1 创建技能 通过 `skill-creator` 技能可以通过对话的方式快速创建技能。你可以让 Agent 将某个工作流程固化为技能,或者把任意接口文档和示例发送给 Agent,让他直接完成对接: @@ -77,7 +88,19 @@ description: CowAgent 长期记忆、任务规划、技能系统详细说明 -### 3.3 三方知识库和插件 +### 3.3 技能广场 + +访问 [skills.cowagent.ai](https://skills.cowagent.ai/) 浏览所有可用技能,或在对话中执行: + +```text +/skill list --remote # 浏览技能广场 +/skill search <关键词> # 搜索技能 +/skill install <名称> # 一键安装 +``` + + + +### 3.4 三方知识库和插件 `linkai-agent` 技能可以将 [LinkAI](https://link-ai.tech/) 上的所有智能体作为 Skill 交给 Agent 使用,实现多智能体决策效果。 @@ -103,3 +126,22 @@ description: CowAgent 长期记忆、任务规划、技能系统详细说明 + +## 4. CLI 命令系统 + +CowAgent 提供两种命令交互方式,覆盖服务管理、技能安装、配置调整等日常运维操作: + +- **终端 CLI:** 在系统终端执行 `cow <命令>`,支持 `start`、`stop`、`restart`、`update`、`status`、`logs`、`skill` 等 +- **对话命令:** 在对话中输入 `/<命令>`,Web 控制台输入 `/` 可弹出指令菜单快速选择 + +```bash +cow start # 启动服务 +cow stop # 停止服务 +cow update # 更新并重启 +cow skill install pptx # 安装技能 +cow install-browser # 安装浏览器工具 +``` + +详细命令参考 [命令总览](https://docs.cowagent.ai/commands)。 + + diff --git a/docs/releases/overview.mdx b/docs/releases/overview.mdx index 89d83de6..4209bd22 100644 --- a/docs/releases/overview.mdx +++ b/docs/releases/overview.mdx @@ -5,7 +5,7 @@ description: CowAgent 版本更新历史 | 版本 | 日期 | 说明 | | --- | --- | --- | -| [2.0.5](/releases/v2.0.5) | 2026.03.31 | Cow CLI、Skill Hub 开源、浏览器工具、企微扫码创建、DeepSeek 独立模块及多项优化 | +| [2.0.5](/releases/v2.0.5) | 2026.04.01 | Cow CLI、Skill Hub 开源、浏览器工具、企微扫码创建、多项优化和修复 | | [2.0.4](/releases/v2.0.4) | 2026.03.22 | 新增个人微信通道、新模型支持、日文文档、脚本重构及多项修复 | | [2.0.3](/releases/v2.0.3) | 2026.03.18 | 新增企微智能机器人和 QQ 通道、支持Coding Plan、新增多个模型、Web端文件处理、记忆系统升级 | | [2.0.2](/releases/v2.0.2) | 2026.02.27 | Web 控制台升级、多通道同时运行、会话持久化 | diff --git a/docs/releases/v2.0.5.mdx b/docs/releases/v2.0.5.mdx index 5983056b..76f4d423 100644 --- a/docs/releases/v2.0.5.mdx +++ b/docs/releases/v2.0.5.mdx @@ -9,47 +9,45 @@ description: CowAgent 2.0.5 - Cow CLI、Skill Hub 开源、浏览器工具、企 - **终端命令**:在系统终端中执行 `cow <命令>`,支持 `start`、`stop`、`restart`、`update`、`status`、`logs` 等服务管理操作 - **对话命令**:在对话中输入 `/<命令>` 或 `cow <命令>`,支持 `/help`、`/status`、`/config`、`/skill`、`/context`、`/logs`、`/version` 等 -- **斜杠指令菜单**:Web 控制台输入框输入 `/` 即可弹出指令菜单,快速选择命令 -- **输入历史**:支持方向键回溯历史输入 -- **Windows 支持**:新增 PowerShell 脚本 `run.ps1`,Windows 下可使用 `cow` 命令 +- **web控制台**:Web 控制台输入框输入 `/` 即可弹出指令菜单,支持方向键回溯历史输入 +- **Windows 支持**:新增 PowerShell 一键安装脚本 `scripts/run.ps1`,同时支持 `cow` 命令 -相关文档:[命令总览](https://docs.cowagent.ai/commands)、[技能管理命令](https://docs.cowagent.ai/commands/skill)、[服务管理命令](https://docs.cowagent.ai/commands/process)、[通用命令](https://docs.cowagent.ai/commands/general)。 +相关文档:[命令总览](https://docs.cowagent.ai/commands) -相关提交:[#2726](https://github.com/zhayujie/chatgpt-on-wechat/pull/2726) + ## 🧩 Cow Skill Hub 开源 -Cow Skill Hub(技能广场)正式开源并上线,提供 AI Agent 技能的浏览、搜索、安装和发布: +[Cow Skill Hub](https://skills.cowagent.ai)(技能广场)正式开源并上线,提供 AI Agent 技能的浏览、搜索、安装和发布,汇集精选技能、社区贡献技能、三方技能: -- **技能广场**:访问 [skills.cowagent.ai](https://skills.cowagent.ai) 浏览所有可用技能,支持按类别(推荐 / 社区 / 第三方)和标签筛选 - **一键安装**:在对话中 `/skill install <名称>` 或终端 `cow skill install <名称>` 一键安装 -- **多来源支持**:支持从 Skill Hub、GitHub、ClawHub、URL(zip / SKILL.md)等多种来源安装,支持 GitHub 批量安装和子目录指定 +- **多来源支持**:支持从 Skill Hub、GitHub、ClawHub、LinkAI、URL(zip / SKILL.md)等多种来源安装,支持 GitHub 批量安装和子目录指定 - **技能搜索**:`/skill search` 和 `/skill list --remote` 浏览和搜索技能广场 - **技能发布**:通过 [skills.cowagent.ai/submit](https://skills.cowagent.ai/submit) 提交自己的技能 -- **国内镜像**:支持 Skill Hub 镜像加速,国内环境下载更流畅 +- **镜像加速**:支持 Skill Hub 镜像加速,国内环境下载更流畅 -Skill Hub 开源仓库:[cow-skill-hub](https://github.com/zhayujie/chatgpt-on-wechat/tree/master/ref/cow-skill-hub)。 +Skill Hub 开源仓库:[cow-skill-hub](https://github.com/zhayujie/cow-skill-hub)。 -相关文档:[技能概览](https://docs.cowagent.ai/skills)、[安装技能](https://docs.cowagent.ai/skills/install)、[创建技能](https://docs.cowagent.ai/skills/create)、[技能管理命令](https://docs.cowagent.ai/commands/skill)。 +相关文档:[技能广场](https://docs.cowagent.ai/skills/hub)、[安装技能](https://docs.cowagent.ai/skills/install) + + -相关提交:[#2726](https://github.com/zhayujie/chatgpt-on-wechat/pull/2726) ## 🌐 新增浏览器工具 -新增 Browser 工具,Agent 可控制 Chromium 浏览器访问和操作网页: +新增 Browser 工具,Agent 可控制浏览器访问和操作网页: - **网页导航与交互**:支持 `navigate`、`click`、`fill`、`select`、`scroll`、`press` 等操作 - **页面快照**:使用精简 DOM 快照技术,让 Agent 高效理解页面结构,导航后自动快照 - **截图能力**:支持页面截图保存到工作区 - **JavaScript 执行**:支持在页面中执行自定义脚本 - **CLI 安装**:通过 `cow install-browser` 一键安装浏览器及依赖,自动适配系统环境 -- **对话中安装**:支持在对话中触发浏览器安装 - **Docker 支持**:Docker 镜像已内置浏览器安装支持 -- **跨平台适配**:Linux 下自动安装中文字体,服务器环境自动使用无头模式 相关文档:[浏览器工具](https://docs.cowagent.ai/tools/browser)。 -相关提交:[#2727](https://github.com/zhayujie/chatgpt-on-wechat/pull/2727) + + ## 🤖 企微智能机器人扫码创建 @@ -57,7 +55,7 @@ Skill Hub 开源仓库:[cow-skill-hub](https://github.com/zhayujie/chatgpt-on- - **Web 控制台扫码**:在 Web 控制台通道页面,选择「扫码接入」模式,使用企业微信扫码即可自动创建并接入智能机器人,无需手动到企业微信后台配置 - **手动模式保留**:同时保留「手动填写」模式,可输入已有的 Bot ID 和 Secret 接入 -- **流式推送优化**:增加推送节流(100ms 间隔),避免 WebSocket 拥塞 +- **流式推送优化**:增加推送节流,避免 WebSocket 拥塞 相关文档:[企微智能机器人接入](https://docs.cowagent.ai/channels/wecom-bot)。 @@ -77,9 +75,10 @@ Thanks [@WecomTeam](https://github.com/WecomTeam) - **微信通道**:修复文件发送失败、文件名丢失等问题 ([6d9b7ba](https://github.com/zhayujie/chatgpt-on-wechat/commit/6d9b7ba)、[baf66a1](https://github.com/zhayujie/chatgpt-on-wechat/commit/baf66a1)、[45faa9c](https://github.com/zhayujie/chatgpt-on-wechat/commit/45faa9c)) - **Docker 优化**:修复卷权限问题,精简镜像体积 ([3eb8348](https://github.com/zhayujie/chatgpt-on-wechat/commit/3eb8348)、[4470d4c](https://github.com/zhayujie/chatgpt-on-wechat/commit/4470d4c)) - **README 排版**:优化中英文排版空格([#2723](https://github.com/zhayujie/chatgpt-on-wechat/pull/2723))。Thanks [@Xiaozhou345](https://github.com/Xiaozhou345) +- **安全修复**:修复 Memory Content路径遍历风险,Thanks [@August829](https://github.com/August829) ## 📦 升级方式 源码部署可执行 `cow update` 或 `./run.sh update` 一键升级,或手动拉取代码后重启。详见 [更新升级文档](https://docs.cowagent.ai/guide/upgrade)。 -**发布日期**:2026.03.31 | [Full Changelog](https://github.com/zhayujie/chatgpt-on-wechat/compare/2.0.4...master) +**发布日期**:2026.04.01 | [Full Changelog](https://github.com/zhayujie/chatgpt-on-wechat/compare/2.0.4...master) diff --git a/docs/skills/create.mdx b/docs/skills/create.mdx index b0f53a11..b8ae7ea2 100644 --- a/docs/skills/create.mdx +++ b/docs/skills/create.mdx @@ -1,5 +1,5 @@ --- -title: 创建技能 +title: 创造技能 description: 通过对话创建自定义技能 --- diff --git a/docs/skills/hub.mdx b/docs/skills/hub.mdx new file mode 100644 index 00000000..843dd4d4 --- /dev/null +++ b/docs/skills/hub.mdx @@ -0,0 +1,65 @@ +--- +title: 技能广场 +description: 浏览、搜索和安装 AI Agent 技能 +--- + +[Cow Skill Hub](https://skills.cowagent.ai/) 是开源的 AI Agent 技能广场,汇集了官方推荐、社区贡献和第三方平台(GitHub、ClawHub 等)的技能。 + +开源仓库:[github.com/zhayujie/cow-skill-hub](https://github.com/zhayujie/cow-skill-hub) + + + +## 功能 + +- **浏览技能**:按类别(推荐 / 社区 / 第三方)和标签筛选 +- **搜索技能**:按名称或描述搜索 +- **查看详情**:查看技能文档、文件内容、安装命令和依赖的环境变量 +- **一键安装**:复制安装命令即可在 CowAgent 中使用 + +## 安装技能 + +在对话中或终端中执行安装命令: + + +```text 对话 +/skill install +``` + +```bash 终端 +cow skill install +``` + + +也可以在对话中浏览技能广场: + +```text +/skill list --remote +/skill search <关键词> +``` + +除了在列表中展示的精选技能,还可以通过 **CLI命令 + Skill Hub** 安装各种第三方技能(**GitHub、ClawHub、LinkAI、URL** 等)参考 [安装技能](/skills/install)。 + +## 贡献技能 + +欢迎向技能广场提交你的技能: + +1. 访问 [skills.cowagent.ai/submit](https://skills.cowagent.ai/submit) +2. 使用 GitHub 或 Google 账号登录 +3. 上传包含 `SKILL.md` 的文件夹或 zip 包 +4. 自动解析技能名称、显示名称和描述,可按需修改 +5. 提交后将经过安全检查和审核后发布 + + + +技能文件结构: + +``` +your-skill/ +├── SKILL.md # 必须,放在根目录 +├── scripts/ # 可选,运行脚本 +└── resources/ # 可选,其他资源 +``` + + + 技能基于 `SKILL.md` 文件构建,你也可以在技能详情页下载 SKILL.md,用于任何支持自定义指令的 Agent(如 OpenClaw、Cursor、Claude Code 等)。 + diff --git a/docs/skills/index.mdx b/docs/skills/index.mdx index 5648ceaf..3ef4f84c 100644 --- a/docs/skills/index.mdx +++ b/docs/skills/index.mdx @@ -11,13 +11,13 @@ Skill 与 Tool 的区别:Tool 是由代码实现的原子操作(如读写文 CowAgent 提供多种方式获取技能: -- **Cow 技能广场** — 通过 `/skill list --remote` 浏览和安装社区技能 +- **[Cow 技能广场](https://skills.cowagent.ai/)** — 在线浏览所有可用技能,或通过 `/skill list --remote` 在对话中浏览和安装 - **GitHub** — 直接从 GitHub 仓库安装,支持批量安装 -- **ClawHub** — 通过 `/skill install clawhub:名称` 安装 ClawHub 上的技能 +- **ClawHub** — 通过 `/skill install clawhub:名称` 安装 ClawHub 上的技能 (4w+个) - **URL** — 从 zip 压缩包或 SKILL.md 链接安装 - **对话创建** — 通过自然语言对话让 Agent 自动创建技能 -详细安装方式参考 [安装技能](/skills/install) 和 [技能管理命令](/commands/skill)。也可以通过对话 [创建技能](/skills/create)。 +详细安装方式参考 [安装技能](/skills/install) 和 [技能管理命令](/commands/skill)。也可以通过对话 [创建技能](/skills/create),或向 [Skill Hub](https://skills.cowagent.ai/submit) 贡献你的技能。 ## 技能加载优先级 diff --git a/docs/skills/install.mdx b/docs/skills/install.mdx index 73b0cf6b..cd933a49 100644 --- a/docs/skills/install.mdx +++ b/docs/skills/install.mdx @@ -3,11 +3,11 @@ title: 安装技能 description: 通过命令一键安装来自多种来源的技能 --- -CowAgent 支持通过统一的 `install` 命令安装来自 **Cow 技能广场、GitHub、ClawHub** 以及任意 URL 上的技能。在对话中使用 `/skill install`,在终端中使用 `cow skill install`。 +CowAgent 支持通过统一的 `install` 命令安装来自 **[Cow 技能广场](https://skills.cowagent.ai/)、GitHub、ClawHub、LinkAI** 以及任意 URL 上的技能。在对话中使用 `/skill install`,在终端中使用 `cow skill install`。 ## 从Cow技能广场安装 -浏览技能广场,找到想要的技能后直接安装: +访问 [skills.cowagent.ai](https://skills.cowagent.ai/) 浏览所有可用技能,找到想要的技能后直接安装,例如: ```text /skill list --remote @@ -16,7 +16,7 @@ CowAgent 支持通过统一的 `install` 命令安装来自 **Cow 技能广场 ## 从 GitHub 安装 -支持仓库级批量安装和指定子目录安装: +> Github上的所有技能都可以直接安装,支持仓库级批量安装和指定子目录安装,例如: ```text /skill install larksuite/cli @@ -25,10 +25,23 @@ CowAgent 支持通过统一的 `install` 命令安装来自 **Cow 技能广场 ## 从 ClawHub 安装 +[ClawHub](https://clawhub.ai/) 上的所有技能 (4w+个) 都可以一键安装,例如: + + ```text -/skill install clawhub:baidu-search +/skill install clawhub: ``` +## 从 LinkAI 安装 + +[LinkAI](https://link-ai.tech/console) 上的所有公开资源 (1w+个插件/应用/工作流) ,以及自己创建的资源 (应用/工作流/知识库/数据库/插件) 都可以通过命令一键安装: + +```text +/skill install linkai: +``` + +> LinkAI平台上创建的所有应用、工作流、知识库、数据库、插件都有唯一的code,可在[控制台](https://link-ai.tech/console)各资源页面中进行获取并填写到命令中 + ## 从 URL 安装 支持 zip 压缩包和 SKILL.md 文件链接: diff --git a/plugins/cow_cli/cow_cli.py b/plugins/cow_cli/cow_cli.py index 27e653ef..aed0b410 100644 --- a/plugins/cow_cli/cow_cli.py +++ b/plugins/cow_cli/cow_cli.py @@ -621,6 +621,7 @@ class CowCliPlugin(Plugin): lines.append(f"💡 /skill list --remote --page {page - 1} 上一页") lines.append("💡 /skill install <名称> 安装技能") lines.append("💡 /skill search <关键词> 搜索技能") + lines.append("🌐 https://skills.cowagent.ai 在线浏览全部技能") return "\n".join(lines) def _skill_search(self, query: str) -> str: diff --git a/pyproject.toml b/pyproject.toml index 565d07e2..0c3b2a76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "cowagent" -version = "0.0.1" +version = "1.0.0" description = "CowAgent - AI Agent on WeChat and more" requires-python = ">=3.9" dependencies = [