---
title: Architecture
description: CowAgent 2.0 system architecture and core design
---

CowAgent 2.0 has evolved from a simple chatbot into a super intelligent assistant with Agent architecture, featuring autonomous thinking, task planning, long-term memory, and skill extensibility.

## System Architecture

CowAgent's architecture consists of the following core modules:

<img src="https://cdn.link-ai.tech/doc/68ef7b212c6f791e0e74314b912149f9-sz_5847990.png" alt="CowAgent Architecture" />

### Core Modules

| Module | Description |
| --- | --- |
| **Channels** | Message channel layer for receiving and sending messages. Supports Web, Feishu, DingTalk, WeCom, WeChat Official Account, and more |
| **Agent Core** | Agent engine including task planning, memory system, and skills engine |
| **Tools** | Tool layer for Agent to access OS resources. 10+ built-in tools |
| **Models** | Model layer with unified access to mainstream LLMs |

## Agent Mode Workflow

When Agent mode is enabled, CowAgent runs as an autonomous agent with the following workflow:

1. **Receive Message** — Receive user input through channels
2. **Understand Intent** — Analyze task requirements and context
3. **Plan Task** — Break complex tasks into multiple steps
4. **Invoke Tools** — Select and execute appropriate tools for each step
5. **Update Memory** — Store important information in long-term memory
6. **Return Result** — Send execution results back to the user

## Workspace Directory Structure

The Agent workspace is located at `~/cow` by default and stores system prompts, memory files, and skill files:

```
~/cow/
├── system.md          # Agent system prompt
├── user.md            # User profile
├── memory/            # Long-term memory storage
│   ├── core.md        # Core memory
│   └── daily/         # Daily memory
└── skills/            # Custom skills
    ├── skill-1/
    └── skill-2/
```

Secret keys are stored separately in `~/.cow` directory for security:

```
~/.cow/
└── .env               # Secret keys for skills
```

## Core Configuration

Configure Agent mode parameters in `config.json`:

```json
{
  "agent": true,
  "agent_workspace": "~/cow",
  "agent_max_context_tokens": 40000,
  "agent_max_context_turns": 30,
  "agent_max_steps": 15
}
```

| Parameter | Description | Default |
| --- | --- | --- |
| `agent` | Enable Agent mode | `true` |
| `agent_workspace` | Workspace path | `~/cow` |
| `agent_max_context_tokens` | Max context tokens | `40000` |
| `agent_max_context_turns` | Max context turns | `30` |
| `agent_max_steps` | Max decision steps per task | `15` |
