Skip to main content

cowagent-ai-assistant

Build and deploy autonomous AI agents with CowAgent - planning, memory, knowledge base, skills, and multi-channel support

Ir a la instalación

Datos de origen

Repositorio
reason-machines/ai-agent-skills
Última actividad en el origen
24 de mayo de 2026 a las 10:38
Idioma detectado de SKILL.md
inglés
Estrellas
1
Forks
1

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
cowagent-ai-assistant
description
Build and deploy autonomous AI agents with CowAgent - planning, memory, knowledge base, skills, and multi-channel support
triggers
["how do I set up a CowAgent AI assistant","help me configure CowAgent with Claude or GPT","create a custom skill for CowAgent","integrate CowAgent with WeChat or Feishu","configure CowAgent memory and knowledge base","add tools and MCP servers to CowAgent","deploy CowAgent with Docker","troubleshoot CowAgent installation issues"]
# CowAgent AI Assistant > Skill by [ara.so](https://ara.so) — AI Agent Skills collection. CowAgent is an open-source autonomous AI assistant framework that plans tasks, executes tools and skills, and grows through memory and knowledge. It supports multiple LLM providers (Claude, GPT, Gemini, DeepSeek, etc.) and channels (Web, WeChat, Feishu, DingTalk), with a three-tier memory architecture and personal knowledge base. ## Installation ### Quick Install (Recommended) **Linux / macOS:** ```bash bash <(curl -fsSL https://cdn.link-ai.tech/code/cow/run.sh) ``` **Windows (PowerShell):** ```powershell irm https://cdn.link-ai.tech/code/cow/run.ps1 | iex ``` **Docker:** ```bash curl -O https://cdn.link-ai.tech/code/cow/docker-compose.yml docker compose up -d ``` ### Manual Installation from Source ```bash # Clone repository git clone https://github.com/zhayujie/CowAgent.git cd CowAgent # Install dependencies (Python 3.8+) pip3 install -r requirements.txt # Copy and configure cp config-template.json config.json # Start the agent python3 app.py ``` After starting, access the Web console at `http://localhost:9899`. ## CLI Commands The `cow` CLI manages the CowAgent service: ```bash # Service control cow start # Start CowAgent cow stop # Stop CowAgent cow restart # Restart CowAgent cow status # Check service status cow logs # View logs # Updates and skills cow update # Pull latest code and restart cow skill install <name> # Install a skill from Skill Hub cow install-browser # Install browser automation dependencies # Usage examples cow skill list # List installed skills cow skill search weather # Search for skills ``` ## Configuration ### Model Configuration Configure via Web console (recommended) or manually edit `config.json`: ```json { "model": "claude-opus-4", "claude_api_key": "${CLAUDE_API_KEY}", "openai_api_key": "${OPENAI_API_KEY}", "gemini_api_key": "${GEMINI_API_KEY}", "vision_model": "gpt-4o", "image_create_model": "dall-e-3", "speech_recognition_model": "whisper-1", "text_to_speech_model": "tts-1", "embedding_model": "text-embedding-3-small" } ``` ### Channel Configuration Set `channel_type` to switch channels: ```json { "channel_type": "wx", // Options: terminal, wx, web, feishu, dingtalk, wecom_bot, qq // Web channel (default) "web": { "port": 9899, "admin_password": "your_password" }, // WeChat "wechat": { "single_chat_prefix": ["bot", "@bot"], "single_chat_reply_prefix": "[bot] ", "group_chat_prefix": ["@bot"], "group_name_white_list": ["ChatGroup1", "ChatGroup2"] }, // Feishu "feishu": { "app_id": "${FEISHU_APP_ID}", "app_secret": "${FEISHU_APP_SECRET}" } } ``` ### Memory Configuration ```json { "memory": { "enable_long_term": true, "deep_dream_time": "03:00", // Daily Deep Dream time "max_context_messages": 20, "enable_hybrid_search": true } } ``` ### Knowledge Base Configuration ```json { "knowledge": { "enable": true, "auto_curate": true, "update_threshold": 3 } } ``` ## Skills System ### Installing Skills **Via CLI:** ```bash cow skill install weather cow skill install stock-query cow skill install github-repo-search ``` **Via Chat:** ``` /skill search weather /skill install weather /skill list ``` ### Creating Custom Skills Skills are defined in a `skill.json` manifest: ```json { "name": "custom-api-caller", "version": "1.0.0", "description": "Call external API and process results", "author": "Your Name", "triggers": ["call api", "fetch data from api"], "parameters": [ { "name": "endpoint", "type": "string", "description": "API endpoint URL", "required": true }, { "name": "method", "type": "string", "description": "HTTP method (GET/POST)", "default": "GET" } ], "steps": [ { "action": "web_fetch", "params": { "url": "{{endpoint}}", "method": "{{method}}" } }, { "action": "write", "params": { "path": "result.json", "content": "{{web_fetch.response}}" } } ] } ``` Place in `skills/custom-api-caller/skill.json` and restart. ### Conversational Skill Creation Use the built-in `skill-creator` skill: ``` Create a skill that fetches GitHub repository info and saves it to a markdown file. ``` The agent will generate the skill manifest interactively. ## Tools System ### Built-in Tools **File Operations:** ```python # Agent uses these tools automatically read(path="/path/to/file.txt") write(path="output.txt", content="data") edit(path="config.json", replacements=[{"old": "value1", "new": "value2"}]) ls(path="./data") ``` **Terminal:** ```python bash(command="ls -la") bash(command="python script.py") ``` **Memory & Knowledge:** ```python memory(query="what did user say about project X") knowledge_search(query="API documentation") ``` **Web & Browser:** ```python web_fetch(url="https://api.example.com/data") web_search(query="Python async best practices") browser(action="navigate", url="https://example.com") browser(action="click", selector="#submit-button") ``` **Scheduling:** ```python scheduler(action="add", time="2026-05-25 14:00", task="Send report") scheduler(action="list") ``` ### MCP Integration Configure MCP servers in `mcp.json`: ```json { "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"], "transport": "stdio" }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "transport": "stdio", "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } }, "puppeteer": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-puppeteer"], "transport": "stdio" } } } ``` Hot reload: edit `mcp.json` and restart CowAgent. ## Working Code Examples ### Python Plugin Example Create a custom plugin in `plugins/my_plugin.py`: ```python import plugins from bridge.context import ContextType from bridge.reply import Reply, ReplyType from common.log import logger @plugins.register( name="MyPlugin", desc="Custom functionality plugin", version="1.0", author="Your Name" ) class MyPlugin(plugins.Plugin): def __init__(self): super().__init__() self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context logger.info("[MyPlugin] initialized") def on_handle_context(self, e_context: EventContext): context = e_context['context'] if context.type != ContextType.TEXT: return content = context.content.strip() if content.startswith("/hello"): reply = Reply() reply.type = ReplyType.TEXT reply.content = "Hello from custom plugin!" e_context['reply'] = reply e_context.action = EventAction.BREAK_PASS return def get_help_text(self, **kwargs): return "MyPlugin: Use /hello to get a greeting" ``` ### Custom Channel Implementation ```python from channel.channel import Channel from bridge.context import Context, ContextType from bridge.reply import Reply class CustomChannel(Channel): def __init__(self): super().__init__() def startup(self): # Initialize your channel (websocket, HTTP server, etc.) logger.info("[CustomChannel] starting...") def handle_message(self, message): context = Context() context.type = ContextType.TEXT context.content = message['text'] context['session_id'] = message['user_id'] # Process through agent reply = super().build_reply_content(message['text'], context) # Send reply through your channel self.send_message(message['user_id'], reply.content) def send_message(self, user_id, content): # Implement sending logic pass ``` Register in `channel/channel_factory.py`: ```python from channel.custom.custom_channel import CustomChannel def create_channel(channel_type): if channel_type == "custom": return CustomChannel() # ... existing channels ``` ### Advanced Skill with Multiple Tools ```json { "name": "github-issue-reporter", "version": "1.0.0", "description": "Search GitHub repos, analyze issues, generate report", "triggers": ["analyze github issues", "report on github repository"], "parameters": [ { "name": "repo", "type": "string", "description": "GitHub repository (owner/repo)", "required": true } ], "steps": [ { "action": "web_fetch", "params": { "url": "https://api.github.com/repos/{{repo}}/issues", "headers": { "Authorization": "token ${GITHUB_TOKEN}" } }, "output": "issues_data" }, { "action": "bash", "params": { "command": "echo '{{issues_data}}' | jq '[.[] | {title: .title, state: .state, comments: .comments}]' > /tmp/issues.json" } }, { "action": "read", "params": { "path": "/tmp/issues.json" }, "output": "processed_issues" }, { "action": "write",
Ver en GitHub
Este SKILL.md es muy grande, por eso SkillsMP muestra aqui solo la primera seccion. Ver en GitHub