{"id":49805568,"url":"https://github.com/kevinluosl/deepbot","last_synced_at":"2026-05-12T19:52:17.194Z","repository":{"id":340294290,"uuid":"1145667945","full_name":"kevinluosl/deepbot","owner":"kevinluosl","description":"DeepBot is a system-level AI assistant built for both personal productivity and enterprise workflows — one-click setup, seamless experience, and native Feishu integration.","archived":false,"fork":false,"pushed_at":"2026-05-07T09:20:28.000Z","size":7960,"stargazers_count":2030,"open_issues_count":0,"forks_count":146,"subscribers_count":34,"default_branch":"main","last_synced_at":"2026-05-12T19:52:05.143Z","etag":null,"topics":["agent-skills","agent-tools","agentic-workflow","agentos","ai-agents","harness","harness-engineering","openclaw"],"latest_commit_sha":null,"homepage":"https://glint-mvt.com/deepbot/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevinluosl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-30T04:14:18.000Z","updated_at":"2026-05-12T16:07:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kevinluosl/deepbot","commit_stats":null,"previous_names":["kevinluosl/deepbot"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/kevinluosl/deepbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinluosl%2Fdeepbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinluosl%2Fdeepbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinluosl%2Fdeepbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinluosl%2Fdeepbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinluosl","download_url":"https://codeload.github.com/kevinluosl/deepbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinluosl%2Fdeepbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32954822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","agent-tools","agentic-workflow","agentos","ai-agents","harness","harness-engineering","openclaw"],"created_at":"2026-05-12T19:52:16.536Z","updated_at":"2026-05-12T19:52:17.187Z","avatar_url":"https://github.com/kevinluosl.png","language":"TypeScript","funding_links":[],"categories":["🔍 Other"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"banner.jpg\" alt=\"DeepBot Terminal\" width=\"500\"/\u003e\n\n\u003cp\u003e\n\n**Bring AI into your enterprise workflows — a real working partner, not just a chatbot**\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/Node.js-20+-green.svg)](https://nodejs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.3+-blue.svg)](https://www.typescriptlang.org/)\n[![Electron](https://img.shields.io/badge/Electron-28+-9feaf9.svg)](https://www.electronjs.org/)\n\n[English](README.md) | [简体中文](README_ZH.md)\n\n\u003c/div\u003e\n\n---\n\n## 📖 Introduction\n\nDeepBot is a system-level AI assistant focused on enterprise productivity. It integrates deeply with existing enterprise systems, enabling AI to participate in day-to-day operations across departments through multi-Agent collaboration — automating complex business workflows. Whether it's document processing, data analysis, system monitoring, or cross-department coordination, DeepBot handles it through AI Agent technology. It supports parallel task execution, scheduled tasks, and skill extensions, all protected by strict security controls.\n\n### ✨ Core Features\n\n- 🎯 **Parallel Task Processing** — Run multiple tasks simultaneously without interference\n- 🔧 **14 Built-in Tools** — File operations, command execution, browser control, image generation, AI chat, cross-session messaging, web fetching, Feishu document operations, and more\n- 🧠 **Memory System** — Long-term memory for user preferences and important context\n- ⏰ **Scheduled Tasks** — Automate recurring work with cron-based scheduling\n- 🎨 **Skill Extensions** — Compose tools into reusable Skills for complex workflows\n- 🔒 **Security Controls** — Strict path whitelist to protect system access\n- 🤖 **Multi-Model Support** — Qwen, OpenAI, Claude, and more\n- 🌐 **External Integrations** — Connect with Feishu and other platforms for cross-platform interaction\n\n---\n\n## 🚀 Quick Start\n\n### Requirements\n\n- **Python**: 3.11+\n- **Node.js**: 20.0.0+ (optional, for running JS scripts)\n- **pnpm**: 10.23.0+ (optional, for running JS scripts)\n- **OS**: macOS, Windows (desktop), Linux/Docker\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/kevinluosl/deepbot.git\ncd deepbot\n\n# Install dependencies\npnpm install\n\n# Start in development mode\npnpm run dev\n```\n\n### Build Desktop App\n\n```bash\n# Build for all platforms\npnpm run dist\n\n# macOS (with code signing + notarization, requires Apple Developer account)\npnpm run dist:mac\n\n# macOS local build (no signing, no notarization — for development/testing)\npnpm run dist:mac:local\n\n# Windows only\npnpm run dist:win\n```\n\n**`dist:mac` vs `dist:mac:local`**:\n\n| | `dist:mac` | `dist:mac:local` |\n|---|---|---|\n| Code signing | ✅ Apple Developer ID | ❌ None |\n| Notarization | ✅ Apple notarization | ❌ None |\n| Gatekeeper | ✅ Passes verification | ❌ Triggers security warnings |\n| Requirements | Apple Developer account + `.env` credentials | None |\n\nTo use `dist:mac`, configure the following in your `.env` file:\n\n```bash\n# Apple signing and notarization (macOS Electron builds only)\nAPPLE_ID=your-apple-id@example.com\nAPPLE_ID_PASSWORD=your-app-specific-password\nAPPLE_APP_SPECIFIC_PASSWORD=your-app-specific-password\nAPPLE_TEAM_ID=your-team-id\n```\n\n\u003e You can generate an app-specific password at [appleid.apple.com](https://appleid.apple.com). The Team ID can be found in your [Apple Developer account](https://developer.apple.com/account).\n| Use case | Production release | Local development / testing |\n\n\u003e **Note**: `dist:mac:local` builds will trigger macOS security warnings on first launch — see the section below for how to handle them.\n\n### Docker Deployment\n\nDocker deployment is available for Linux servers. If you need the Docker version, please contact the author.\n\n**Note for macOS builds**: Signed builds (`dist:mac`) pass Gatekeeper verification and work without issues. Local builds (`dist:mac:local`) are unsigned and will trigger security warnings — see below for solutions.\n\n### macOS Security Warnings (Local Builds)\n\nWhen using `dist:mac:local` (unsigned builds), macOS may show security warnings on first launch:\n\n#### \"App is damaged\"\n\nRun this in Terminal, then reopen the app:\n\n```bash\nsudo xattr -rd com.apple.quarantine /Applications/DeepBot.app\n```\n\n#### \"Cannot verify developer\"\n\n**Option 1: Right-click to open**\n\nRight-click the app icon, select \"Open\", then click \"Open\" again in the dialog.\n\n**Option 2: System Settings**\n\n1. Try to open the app (you'll see a security warning — click \"Cancel\")\n2. Go to \"System Settings\" → \"Privacy \u0026 Security\"\n3. Scroll to the \"Security\" section\n4. Click \"Open Anyway\"\n5. Try opening the app again and click \"Open\" in the dialog\n\n---\n\n## 🏗️ Architecture\n\nDeepBot uses a modular architecture with support for multi-Agent communication and collaboration:\n\n```\n┌─────────────────────────────────────────┐\n│      User Interface (Electron)          │\n│   External Communication: Feishu        │\n└─────────────────┬───────────────────────┘\n                  │ IPC / WebSocket\n┌─────────────────▼───────────────────────┐\n│      Gateway (Session Management)       │\n│    • Session per Tab                    │\n│    • Message queue \u0026 routing            │\n│    • Connector management               │\n│    • Cross-Tab message routing 🆕       │\n└─────────────────┬───────────────────────┘\n                  │\n        ┌─────────┼─────────┐\n        ▼         ▼         ▼\n   Session 1  Session 2  Session N\n   (Tab 1)    (Tab 2)    (Tab N)\n        │         │         │\n        ▼         ▼         ▼\n┌─────────────────────────────────────────┐\n│   Agent Runtime (one per Session)       │\n│    • Intelligent decision \u0026 orchestration│\n│    • Auto-continue (up to 100 times)    │\n│    • Operation tracking (max 3 retries) │\n│    • Independent memory \u0026 context       │\n│    • Cross-Tab calling tool 🆕          │\n│    • Dynamic system prompt assembly 🆕  │\n└─────────────────┬───────────────────────┘\n                  │\n┌─────────────────▼───────────────────────┐\n│     System Prompt Assembly Layer 🆕     │\n│    • Base Agent prompt (AGENT.md)       │\n│    • Tool instructions (TOOLS.md)       │\n│    • Custom tool instructions           │\n│    • Global memory (MEMORY.md)          │\n│    • Per-tab memory (memory-\u003ctab\u003e.md)   │\n│    • Skills instructions (SKILL.md)     │\n│    • Dynamic loading \u0026 live updates     │\n└─────────────────┬───────────────────────┘\n                  │\n┌─────────────────▼───────────────────────┐\n│      14 Tools + Security Check          │\n│    🔒 Path whitelist • Workspace isolation│\n│    🔄 Cross-Tab messaging tool 🆕        │\n└─────────────────┬───────────────────────┘\n                  │\n        ┌─────────┼─────────┐\n        ▼         ▼         ▼\n    Skills   Scheduled   Data Storage\n                Tasks\n```\n\n### Multi-Agent Collaboration 🆕\n\n```\n┌─────────────────────────────────────────┐\n│      Enterprise Multi-Agent System      │\n└─────────────────┬───────────────────────┘\n                  │\n        ┌─────────┼─────────┐\n        ▼         ▼         ▼\n┌─────────┐ ┌─────────┐ ┌─────────┐\n│ Sales   │ │ Gateway │ │Marketing│\n│AI Agent │ │Message  │ │AI Agent │\n└────┬────┘ │Router   │ └────┬────┘\n     │      └────┬────┘      │\n     └───────────┼───────────┘\n                 │\n     ┌───────────┼───────────┐\n     ▼           ▼           ▼\n┌─────────┐ ┌─────────┐ ┌─────────┐\n│Solutions│ │Product  │ │  R\u0026D    │\n│AI Agent │ │AI Agent │ │AI Agent │\n└────┬────┘ └────┬────┘ └────┬────┘\n     │           │           │\n     └───────────┼───────────┘\n                 │\n                 ▼\n           ┌─────────┐\n           │Project  │\n           │Manager  │\n           │AI Agent │\n           └─────────┘\n```\n\n### Architecture Overview\n\n- **Gateway**: Manages all Sessions. Each Tab maps to an independent Session with cross-Tab message routing.\n- **Session**: An isolated conversation unit with its own Agent Runtime, memory, and context.\n- **Agent Runtime**: Built on `@mariozechner/pi-agent-core`, handles intelligent decision-making and tool orchestration.\n- **System Prompt Assembly Layer**: Dynamically assembles system prompts from base prompts, tool instructions, memory files, and Skills.\n- **Tools**: 14 built-in tools including a cross-Tab messaging tool for inter-Agent communication.\n- **Security Check**: All file and command operations are validated against a path whitelist.\n- **Multi-Agent Collaboration**: Agents in different Tabs can message each other to collaborate on complex tasks.\n\n#### System Prompt Assembly Flow 🆕\n\n```\nAgent starts → Load base Agent prompt (AGENT.md)\n             ↓\n           Load tool instructions (TOOLS.md + CUSTOM-TOOLS.md)\n             ↓\n           Load global memory (MEMORY.md)\n             ↓\n           Load per-tab memory (memory-\u003ctab-id\u003e.md)\n             ↓\n           Load Skills instructions (SKILL.md files)\n             ↓\n           Assemble complete system prompt\n             ↓\n           Send to AI model\n```\n\n**Dynamic Updates**:\n- When memory files change, all Agent system prompts reload automatically\n- Installing or uninstalling Skills updates tool instructions in real time\n- Hot updates are supported — no app restart required\n\n---\n\n## 🌐 External Integrations (Connectors)\n\nDeepBot connects to external platforms via the Connector system for cross-platform interaction.\n\n### Supported Platforms\n\n#### Feishu (Lark)\n\nInteract with DeepBot through a Feishu bot, supporting both direct messages and group chats.\n\n**Features**:\n- ✅ Direct messages (requires pairing authorization)\n- ✅ Group messages (supports @mention)\n- ✅ Message deduplication (prevents duplicate responses)\n- ✅ Independent session per conversation (each chat gets its own Tab)\n- ✅ Send images and files to users\n- ✅ Feishu document operations (create, read, edit, delete, comment)\n\n**Setup**:\n\n1. In DeepBot, go to \"System Settings\" → \"External Connections\" → \"Feishu\"\n2. Enter your Feishu app credentials (App ID, App Secret, Bot Name)\n3. Configure security policies (DM policy, group policy)\n4. Click \"Save\" then \"Start\" the connector\n\n**Detailed Configuration Guide**:\n\n📖 [Feishu Bot Configuration Guide](docs/飞书机器人配置指南.md) (Chinese)\n\nCovers the full Feishu Open Platform setup, permission configuration, and security policy details.\n\n### Coming Soon\n\n- 🔜 Discord\n- 🔜 Slack\n- 🔜 WeCom (WeChat Work)\n- 🔜 DingTalk\n\n---\n\n## 🔧 14 Built-in Tools\n\n| Tool | Function | Typical Use Cases |\n|------|----------|-------------------|\n| **File Tool** | File read/write | Read configs, save data, search files |\n| **Exec Tool** | Run shell commands | Execute scripts, system operations, install packages |\n| **Browser Tool** | Browser automation | Screenshots, web automation, content extraction |\n| **Calendar Tool** | Calendar management | Check dates, calculate time, schedule reminders |\n| **Environment Check** | System inspection | Detect system info, verify dependencies, diagnose issues |\n| **Image Generation** | AI image generation | Create images, design assets, visual content |\n| **Web Search** | Web search | Real-time queries, research, data collection |\n| **Web Fetch** | Fetch web content | Extract articles, download page data |\n| **Memory Tool** | Memory management | Store preferences, retrieve historical context |\n| **Skill Manager** | Skill management | Install, uninstall, and list skill packages |\n| **Scheduled Task** | Task scheduling | Create and manage cron-based tasks |\n| **Chat Tool** | AI conversation | Internal AI calls, backend processing, isolated from main Agent context |\n| **Cross Tab Call** 🆕 | Cross-Tab messaging | Inter-Agent communication for multi-Agent collaboration |\n| **Feishu Doc Tool** | Feishu document ops | Create, read, append, update, delete blocks, add comments |\n\n### Creating Custom Tools\n\nAll tools use the unified `ToolPlugin` interface and live in `src/main/tools/`.\n\n#### Quick Start\n\n1. **Create a tool file**\n\nCreate a new file in `src/main/tools/` (e.g., `my-tool.ts`):\n\n```typescript\nimport { Type } from '@sinclair/typebox';\nimport type { ToolPlugin } from './registry/tool-interface';\nimport { TOOL_NAMES } from './tool-names';\n\nexport const myToolPlugin: ToolPlugin = {\n  // 工具元数据（用于 UI 展示和管理）\n  metadata: {\n    id: 'my-tool',              // 唯一标识，kebab-case\n    name: 'My Tool',            // 显示名称（给用户看）\n    description: 'My custom tool',\n    version: '1.0.0',\n    author: 'DeepBot',\n    category: 'custom',         // 分类：file | network | system | ai | custom\n    tags: ['custom'],\n  },\n  \n  // 创建工具实例，接收运行时上下文（工作目录、会话 ID、配置等）\n  create: (options) =\u003e ({\n    name: TOOL_NAMES.MY_TOOL,   // AI 调用时使用的工具名（必须在 tool-names.ts 中注册）\n    label: 'My Tool',           // 执行步骤中显示的标签\n    description: 'Execute custom operations',  // 告诉 AI 这个工具做什么\n    // 参数定义（使用 TypeBox，AI 会根据 description 自动填充参数）\n    // 常见参数类型示例：\n    //   Type.String({ description: '...' })                    — 字符串\n    //   Type.Number({ description: '...' })                    — 数字\n    //   Type.Boolean({ description: '...' })                   — 布尔值\n    //   Type.Optional(Type.String({ description: '...' }))     — 可选参数\n    //   Type.Union([Type.Literal('a'), Type.Literal('b')])     — 枚举（AI 只能选其中一个）\n    parameters: Type.Object({\n      action: Type.Union([\n        Type.Literal('search'),\n        Type.Literal('create'),\n        Type.Literal('delete'),\n      ], { description: 'Operation type' }),\n      query: Type.String({ description: 'Search keyword or target name' }),\n      limit: Type.Optional(Type.Number({ description: 'Max results (default 10)' })),\n      force: Type.Optional(Type.Boolean({ description: 'Skip confirmation' })),\n    }),\n    \n    execute: async (toolCallId, params, signal) =\u003e {\n      // signal: AbortSignal，用户停止时会触发\n      // params: 已经过 schema 验证的参数对象\n      \n      return {\n        // content: 返回给 AI 的内容（AI 会基于此决定下一步）\n        content: [{ type: 'text', text: 'Success' }],\n        // details: 结构化数据，用于 UI 渲染或日志记录（AI 不可见）\n        details: { success: true },\n      };\n    },\n  }),\n};\n```\n\n2. **Register in tool-loader.ts**\n\nEdit `src/main/tools/registry/tool-loader.ts`:\n\n```typescript\nimport { myToolPlugin } from '../my-tool';\n\n// Inside loadTools(), add with other plugins:\ntools.push(...await resolvePluginTools(myToolPlugin.create(pluginOpts)));\n```\n\n3. **Add tool name constant**\n\nEdit `src/main/tools/tool-names.ts`:\n\n```typescript\nexport const TOOL_NAMES = {\n  // ...existing tools\n  MY_TOOL: 'my_tool',\n};\n```\n\nThen use `TOOL_NAMES.MY_TOOL` in your tool definition instead of the hardcoded string.\n\n4. **Add tool instructions**\n\nEdit `src/main/prompts/templates/CUSTOM-TOOLS.md` to document how the AI should use your tool.\n\nUsing the Email tool as an example:\n\n````markdown\n## Email (Email Sending Tool)\n\n### Core Principles\n1. SMTP must be configured before use\n2. The config file path is fixed — don't give users incorrect paths\n3. On failure, guide users to fix their config based on the error message\n4. Don't retry repeatedly — report the failure reason after one attempt\n\n### Prerequisites\n\n**Config file path** (searched in priority order):\n1. Project-level: `\u003cworkspace\u003e/.deepbot/tools/email-tool/config.json`\n2. User-level: `~/.deepbot/tools/email-tool/config.json`\n\n**Config file format**:\n```json\n{\n  \"user\": \"your-email@example.com\",\n  \"password\": \"your-password-or-auth-code\",\n  \"smtpServer\": \"smtp.example.com\",\n  \"smtpPort\": 465,\n  \"useSsl\": true,\n  \"fromName\": \"Your Name\"\n}\n```\n\n**Common provider notes**:\n- QQ Mail: Use authorization code, not your QQ password\n- Gmail: Use an app-specific password\n- 163 Mail: Enable SMTP service and use an authorization code\n\n### Use Cases\n- ✅ Notification emails, report emails\n- ✅ Emails with attachments\n- ✅ HTML-formatted emails\n- ❌ Bulk marketing emails (risk of account suspension)\n- ❌ Sensitive information (emails are not encrypted)\n\n### Examples\n\n1. Plain text email:\n```json\n{\n  \"to\": \"recipient@example.com\",\n  \"subject\": \"Test Email\",\n  \"body\": \"This is a test email\"\n}\n```\n\n2. HTML email:\n```json\n{\n  \"to\": \"team@company.com\",\n  \"subject\": \"Project Progress Report\",\n  \"body\": \"\u003ch1\u003eProgress\u003c/h1\u003e\u003cul\u003e\u003cli\u003eFeature A: Done\u003c/li\u003e\u003c/ul\u003e\",\n  \"html\": true\n}\n```\n\n3. Email with attachment:\n```json\n{\n  \"to\": \"client@example.com\",\n  \"subject\": \"Contract Documents\",\n  \"body\": \"Please find the contract attached\",\n  \"attachments\": [\"~/Documents/contract.pdf\"]\n}\n```\n\n### Error Handling\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| \"nodemailer not installed\" | Missing dependency | Ask user to install nodemailer |\n| \"Email tool not configured\" | Config file missing | Ask user to create the config file |\n| \"Authentication failed\" | Wrong credentials | Check account and authorization code |\n````\n\n**Documentation structure**:\n- **Core Principles**: Rules the AI must follow\n- **Prerequisites**: Required setup (config files, dependencies)\n- **Use Cases**: When to use or avoid this tool\n- **Examples**: Real usage from simple to complex\n- **Error Handling**: Common errors and how to resolve them\n\n#### Advanced Features\n\n- **Config files**: Read from `~/.deepbot/tools/\u003ctool-name\u003e/config.json`\n- **External dependencies**: Use dynamic `require()` to avoid bundling\n- **Cancellation**: Support user cancellation via `AbortSignal`\n- **Prompt management**: Document tool behavior in `CUSTOM-TOOLS.md` so the AI uses it correctly\n\n#### References\n\n- 📖 [Full Development Guide](src/main/tools/registry/TOOL-DEVELOPMENT-GUIDE.md)\n- 📝 [Example Tool Template](src/main/tools/registry/example-tool.ts)\n- 🔧 [Email Tool Example](src/main/tools/email-tool.ts) — complete example with config and external dependencies\n\n---\n\n## 🔒 Security\n\nDeepBot enforces strict access controls so AI Agents can only reach directories you've explicitly authorized.\n\n### Path Whitelist\n\nOnly the following directories (and their subdirectories) are accessible:\n\n| Type | Default Path | Purpose | Configurable |\n|------|-------------|---------|--------------|\n| **Workspace** | `~` (home directory) | File read/write, command execution | ✅ |\n| **Scripts** | `~/.deepbot/scripts` | Python script storage | ✅ |\n| **Skills** | `~/.agents/skills` | Skill package installation | ✅ |\n| **Images** | `~/.deepbot/generated-images` | AI-generated image storage | ✅ |\n\n### Security Check Flow\n\n```\nTool call → Path security check → Within whitelist?\n                                   ├─ Yes → Allow execution\n                                   └─ No  → Reject, return error\n```\n\n---\n\n## 🧠 Memory System\n\nDeepBot supports persistent long-term memory to retain user preferences and important context across sessions.\n\n### Global Memory\n\n- **Location**: `~/.deepbot/memory/MEMORY.md`\n- **Format**: Structured Markdown\n- **Auto-injection**: Loaded into every conversation's system prompt\n- **Live updates**: Memory changes automatically reload all active Agents\n- **Scope**: Shared across all Tabs — stores general preferences and shared context\n\n### Per-Tab Memory (Multi-Agent Support)\n\nEach Tab (Agent) can have its own independent memory file, enabling true multi-role collaboration:\n\n- **Independent memory files**: Each Tab can have its own `memory-\u003ctab-id\u003e.md`\n- **Independent role definitions**: Different Tabs can take on different roles (e.g., Product Manager, Developer, QA Engineer)\n- **Independent work styles**: Each Agent can have its own domain expertise and preferences\n- **Persistent storage**: Tab memory and role settings are saved across sessions\n\n### Usage Examples\n\n**Global memory**:\n```\nUser: \"Remember: I prefer concise code\"\nDeepBot: \"Got it, I'll keep that in mind\"\n```\n\n**Per-tab memory**:\n```\nUser: \"Create a Sales Analysis Agent\"\nDeepBot: \"New Tab created. This Agent will focus on customer relationship management and sales data analysis\"\n\nUser: \"Remember: You are a Sales Expert responsible for customer follow-up and performance analysis\"\nSales Agent: \"Understood, I've saved my role and responsibilities\"\n```\n\n### Multi-Agent Collaboration Example\n\n1. **Sales Agent** — Customer relationship management and sales pipeline; stores customer info and sales strategies\n2. **Marketing Agent** — Market analysis and campaigns; stores market data and promotion plans\n3. **Solutions Agent** — Technical solution design and requirements analysis; stores solution templates and specs\n4. **Product Agent** — Product planning and backlog management; stores roadmaps and user feedback\n5. **R\u0026D Agent** — Technical development and implementation; stores technical docs and coding standards\n6. **Project Manager Agent** — Project coordination and progress tracking; stores project plans and resource allocation\n\nEach Agent operates with independent memory and domain expertise, enabling efficient cross-department collaboration.\n\n---\n\n## ⏰ Scheduled Tasks\n\nCreate and manage scheduled tasks to automate recurring work:\n\n### Features\n\n- ✅ Cron expression support\n- ✅ Dedicated Tab execution (locked, cannot be closed)\n- ✅ Context reset between runs (retains last run's output as context)\n- ✅ Execution history tracking\n\n### Example\n\n```\nUser: \"Check desktop files every day at 9 AM\"\nDeepBot: \"Scheduled task created — will run daily at 9:00\"\n```\n\n---\n\n## 🎨 Skill Extensions\n\nThe Skills system lets you compose multiple tools into reusable, complex workflows.\n\n### Install an Existing Skill\n\n```bash\n# Use the Skill Manager tool in DeepBot\n\"Install weather skill\"\n```\n\n### Create a Custom Skill\n\nA Skill is a directory containing a `SKILL.md` file using YAML frontmatter + Markdown format.\n\n#### 1. Create the Skill directory\n\n```bash\nmkdir -p ~/.agents/skills/my-skill\ncd ~/.agents/skills/my-skill\n```\n\n#### 2. Create SKILL.md\n\n````markdown\n---\nname: my-skill\ndescription: My custom skill for handling specific tasks\nversion: 1.0.0\nauthor: Your Name\n---\n\n# My Custom Skill\n\n## When to use this skill\n\nUse this skill when the user needs to:\n- Operation 1\n- Operation 2\n\n## How to use\n\n### Step 1: Read file\n\nUse the file_read tool:\n\n```json\n{\n  \"path\": \"~/example.txt\"\n}\n```\n\n### Step 2: Process data\n\nProcess the data as needed...\n\n### Step 3: Save results\n\nUse the file_write tool to save results...\n\n## Notes\n\n- Note 1\n- Note 2\n````\n\n#### 3. Install the Skill\n\n**Option 1: Direct placement** (recommended)\n\nPlace the Skill directory under `~/.agents/skills/` and restart DeepBot — it will be loaded automatically.\n\n**Option 2: Use Skill Manager**\n\n```bash\n\"Install local skill at path ~/.agents/skills/my-skill\"\n```\n\n### Skill Directory\n\n- **Default path**: `~/.agents/skills/`\n- **Auto-discovery**: All installed Skills are loaded at startup\n- **Dynamic management**: Install and uninstall at runtime\n\n### Skill Capabilities\n\n- 📖 Skills can call all 14 built-in tools\n- 📝 Supports async operations and error handling\n- 🔧 Compose multiple tools for complex multi-step workflows\n\n---\n\n## 🤖 Supported AI Models\n\n- **Qwen** (Alibaba Cloud) — default model\n- **OpenAI** (GPT-4, GPT-3.5)\n- **Claude** (Anthropic)\n\nConfigure your API keys in System Settings to get started.\n\n### ⚠️ Important: Avoid Reasoning Models\n\nDeepBot is optimized for standard conversational models. Models with built-in thinking/reasoning modes can cause display issues with `\u003cthink\u003e...\u003c/think\u003e` tags, slower responses, and unnecessary overhead for simple tasks.\n\n**Not recommended:**\n- ❌ QwQ-32B-Preview\n- ❌ OpenAI o1, o1-mini, o1-preview\n- ❌ DeepSeek-R1\n- ❌ Any model with explicit reasoning/thinking steps\n\n---\n\n## 📦 External Services\n\n| Service | Purpose | Configuration |\n|---------|---------|---------------|\n| **Tavily API** | Web search | System Settings → Web Search |\n| **Gemini** | Image generation (Imagen 3) | System Settings → Image Generation |\n\n---\n\n## 🛠️ Development Guide\n\n### Project Structure\n\n```\ndeepbot/\n├── src/\n│   ├── main/           # Main process\n│   │   ├── gateway.ts          # Session management\n│   │   ├── agent-runtime/      # Agent runtime\n│   │   ├── tools/              # Tool system\n│   │   ├── scheduled-tasks/    # Scheduled tasks\n│   │   ├── connectors/         # External connectors\n│   │   └── database/           # Data storage\n│   ├── renderer/       # Renderer process (React)\n│   ├── shared/         # Shared utilities\n│   └── types/          # Type definitions\n├── docs/               # Documentation\n└── scripts/            # Build scripts\n```\n\n---\n\n## 📝 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## 🙏 Acknowledgments\n\nDeepBot was inspired by:\n\n- [Clawdbot](https://github.com/openclaw/openclaw) — architectural reference\n- [@mariozechner/pi-agent-core](https://github.com/badlogic/pi-agent) — AI Agent Runtime\n\n---\n\n## 📧 Contact\n\n- **Author**: Kevin Luo @ Deepglint\n- **Issues**: [GitHub Issues](https://github.com/kevinluosl/deepbot/issues)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**⭐ If DeepBot is useful to you, a star goes a long way!**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinluosl%2Fdeepbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinluosl%2Fdeepbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinluosl%2Fdeepbot/lists"}