openclaw 网盘下载
OpenClaw

技能详情(站内镜像,无评论)

首页 > 技能库 > nanobot-ai-assistant

Ultra-lightweight personal AI assistant with multi-channel chat, MCP integration, memory, scheduled tasks, web search, and extensible skills.

通信与消息

许可证:MIT-0

MIT-0 ·免费使用、修改和重新分发。无需归因。

版本:v1.0.0

统计:⭐ 0 · 40 · 1 current installs · 1 all-time installs

0

安装量(当前) 1

🛡 VirusTotal :良性 · OpenClaw :可疑

Package:adisinghstudent/nanobot-ai-assistant

安全扫描(ClawHub)

  • VirusTotal :良性
  • OpenClaw :可疑

OpenClaw 评估

The SKILL.md instructs installing and running a full assistant that requires many secrets and runs third-party tooling (pip, npx, cloning GitHub) but the skill metadata declares no required credentials or install steps — the pieces don’t line up and you should be cautious.

目的

The skill's name and description (a personal AI assistant framework) match the instructions which are a full install/config guide for 'nanobot'. However, the package-like operations described (git clone, pip install, npx) and configuration for many providers indicate this is a wrapper/installer for a separate project rather than a small helper; that mismatch is acceptable but worth noting.

说明范围

The runtime instructions tell the user/agent to clone a GitHub repo, pip install packages, run npx (including -y), edit and store config under ~/.nanobot/config.json, and wire many provider credentials and MCP servers. These steps involve downloading/executing third‑party code and placing secrets in user config — actions beyond a narrow skill's scope and potentially risky if done automatically.

安装机制

There is no formal install spec in the registry (instruction-only), but the SKILL.md instructs use of pip, PyPI package names, git clone, and npx. Those commands will fetch and execute remote code; absence of an install spec reduces static risk but the instructions themselves describe high-risk network installs that should be audited before running.

证书

The documentation references many sensitive environment values and tokens (OPENAI_API_KEY, ANT HROPIC_API_KEY, TELEGRAM_BOT_TOKEN, DISCORD_BOT_TOKEN, GITHUB_TOKEN, EMAIL_PASSWORD, MCP_TOKEN, etc.) but the skill metadata lists no required environment variables. Asking for many unrelated credentials (email, chat bots, GitHub PAT, search providers) is disproportionate unless you intentionally want full assistant/channel integration — disclose and…

持久

The skill does not request 'always' or other privileged flags (so it won't be force-included). However, the guidance to run MCP servers, npx tools, and persistent agents means if you follow it the resulting software may run persistently on your machine and automatically expose tools/data — combine that with many credentials and the blast radius increases. This is a configuration-time risk rather than a registry flag.

安装(复制给龙虾 AI)

将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。

请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「nanobot-ai-assistant」。简介:Ultra-lightweight personal AI assistant with multi-channel chat, MCP integratio…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/adisinghstudent/nanobot-ai-assistant/SKILL.md
(来源:yingzhi8.cn 技能库)

SKILL.md

打开原始 SKILL.md(GitHub raw)

```markdown
---
name: nanobot-ai-assistant
description: Ultra-lightweight personal AI assistant framework with multi-channel support, MCP integration, and agent capabilities
triggers:
  - set up nanobot AI assistant
  - configure nanobot with telegram discord
  - install nanobot agent framework
  - connect nanobot to chat platforms
  - nanobot MCP tool integration
  - deploy lightweight AI agent
  - nanobot provider configuration
  - build AI assistant with nanobot
---

# nanobot AI Assistant

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

nanobot is an ultra-lightweight personal AI assistant framework (~99% fewer lines of code than OpenClaw) that delivers full agent functionality including multi-channel chat integrations, MCP (Model Context Protocol) support, memory, scheduled tasks, web search, and extensible skills.

## Installation

### From Source (recommended for development)
```bash
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pip install -e .
```

### From PyPI (stable)
```bash
pip install nanobot-ai
```

### With uv (fast, isolated)
```bash
uv tool install nanobot-ai
```

### Update
```bash
pip install -U nanobot-ai
# or
uv tool upgrade nanobot-ai
```

**Requirements:** Python ≥ 3.11

## Quick Start

```bash
# 1. Initialize workspace
nanobot onboard

# 2. Edit config at ~/.nanobot/config.json
# 3. Start chatting
nanobot agent
```

## Configuration

All configuration lives in `~/.nanobot/config.json`.

### Minimal Configuration

```json
{
  "providers": {
    "openrouter": {
      "apiKey": "$OPENROUTER_API_KEY"
    }
  },
  "agents": {
    "defaults": {
      "model": "anthropic/claude-opus-4-5",
      "provider": "openrouter"
    }
  }
}
```

### Full Configuration Example

```json
{
  "providers": {
    "openrouter": {
      "apiKey": "$OPENROUTER_API_KEY"
    },
    "openai": {
      "apiKey": "$OPENAI_API_KEY"
    },
    "anthropic": {
      "apiKey": "$ANTHROPIC_API_KEY"
    },
    "deepseek": {
      "apiKey": "$DEEPSEEK_API_KEY"
    },
    "ollama": {
      "baseUrl": "http://localhost:11434"
    }
  },
  "agents": {
    "defaults": {
      "model": "anthropic/claude-opus-4-5",
      "provider": "openrouter"
    }
  },
  "memory": {
    "enabled": true
  },
  "search": {
    "provider": "tavily",
    "apiKey": "$TAVILY_API_KEY"
  }
}
```

### Supported Providers

| Provider | Config Key | Notes |
|----------|-----------|-------|
| OpenRouter | `openrouter` | Recommended for global access |
| OpenAI | `openai` | Direct OpenAI API |
| Anthropic | `anthropic` | Direct Anthropic API |
| DeepSeek | `deepseek` | |
| Qwen | `qwen` | |
| Moonshot/Kimi | `moonshot` | |
| MiniMax | `minimax` | |
| VolcEngine | `volcengine` | |
| Azure OpenAI | `azure` | |
| Ollama | `ollama` | Local models via `baseUrl` |
| vLLM | `vllm` | Local LLMs |
| OpenAI Codex | `codex` | OAuth login |

## CLI Reference

```bash
# Initialize workspace
nanobot onboard

# Start interactive agent chat
nanobot agent

# Start all configured channels (Telegram, Discord, etc.)
nanobot channels start

# Login / setup a specific channel
nanobot channels login

# List available skills
nanobot skills list

# Install a skill from ClawHub
nanobot skills install <skill-name>

# Show version
nanobot --version

# Restart bot (useful in channel sessions)
/restart
```

## Channel Setup

### Telegram (Recommended)

```json
{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "$TELEGRAM_BOT_TOKEN",
      "allowFrom": ["YOUR_TELEGRAM_USER_ID"]
    }
  }
}
```

Setup steps:
1. Message `@BotFather` on Telegram → `/newbot`
2. Copy the token into config
3. Find your User ID in Telegram settings
4. Run `nanobot channels start`

### Discord

```json
{
  "channels": {
    "discord": {
      "enabled": true,
      "token": "$DISCORD_BOT_TOKEN",
      "allowFrom": ["YOUR_DISCORD_USER_ID"]
    }
  }
}
```

Requires **Message Content Intent** enabled in Discord Developer Portal.

### Slack

```json
{
  "channels": {
    "slack": {
      "enabled": true,
      "botToken": "$SLACK_BOT_TOKEN",
      "appToken": "$SLACK_APP_TOKEN"
    }
  }
}
```

### WhatsApp

```json
{
  "channels": {
    "whatsapp": {
      "enabled": true
    }
  }
}
```

```bash
nanobot channels login   # Scan QR code to authenticate
```

After upgrading nanobot with WhatsApp:
```bash
rm -rf ~/.nanobot/bridge
nanobot channels login
```

### Feishu (Lark)

```json
{
  "channels": {
    "feishu": {
      "enabled": true,
      "appId": "$FEISHU_APP_ID",
      "appSecret": "$FEISHU_APP_SECRET"
    }
  }
}
```

### DingTalk

```json
{
  "channels": {
    "dingtalk": {
      "enabled": true,
      "appKey": "$DINGTALK_APP_KEY",
      "appSecret": "$DINGTALK_APP_SECRET"
    }
  }
}
```

### Email

```json
{
  "channels": {
    "email": {
      "enabled": true,
      "imap": {
        "host": "imap.gmail.com",
        "port": 993,
        "user": "$EMAIL_USER",
        "password": "$EMAIL_PASSWORD"
      },
      "smtp": {
        "host": "smtp.gmail.com",
        "port": 587,
        "user": "$EMAIL_USER",
        "password": "$EMAIL_PASSWORD"
      }
    }
  }
}
```

## MCP (Model Context Protocol)

nanobot supports MCP for connecting external tools and data sources.

### MCP Configuration

```json
{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
      },
      "github": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-github"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_TOKEN"
        }
      },
      "remote-sse": {
        "url": "https://your-mcp-server.com/sse",
        "headers": {
          "Authorization": "Bearer $MCP_TOKEN"
        }
      }
    }
  }
}
```

MCP servers can expose tools, prompts, and resources that nanobot's agent can use automatically during conversations.

## Web Search

```json
{
  "search": {
    "provider": "tavily",
    "apiKey": "$TAVILY_API_KEY"
  }
}
```

Supported search providers: `tavily`, and other multi-provider options. Web search enables the agent to retrieve real-time information.

## Memory System

Token-based memory is enabled by default. The agent automatically stores and retrieves relevant context across conversations.

```json
{
  "memory": {
    "enabled": true,
    "maxTokens": 4000
  }
}
```

## Scheduled Tasks (Cron)

nanobot supports natural language cron scheduling. Tell the agent:

```
"Remind me every day at 9am to check emails"
"Send me a market summary every weekday at 8am"
```

The agent will set up recurring tasks stored in your workspace.

## Skills / Plugins

```bash
# Browse available skills on ClawHub
nanobot skills list

# Install a skill
nanobot skills install web-scraper

# Skills live in ~/.nanobot/skills/
```

Custom skills are Python files placed in `~/.nanobot/skills/`. Each skill exposes tools the agent can call.

### Writing a Custom Skill

```python
# ~/.nanobot/skills/my_skill.py

from nanobot.skill import skill, tool

@skill(name="my-skill", description="My custom skill")
class MySkill:

    @tool(description="Fetch data from an API")
    async def fetch_data(self, url: str) -> str:
        """Fetch data from the given URL."""
        import httpx
        async with httpx.AsyncClient() as client:
            response = await client.get(url)
            return response.text

    @tool(description="Process text input")
    async def process_text(self, text: str, uppercase: bool = False) -> str:
        """Process the input text."""
        if uppercase:
            return text.upper()
        return text.strip()
```

## Docker Deployment

```bash
# Build image
docker build -t nanobot .

# Run with config volume
docker run -d 
  -v ~/.nanobot:/root/.nanobot 
  -e OPENROUTER_API_KEY=$OPENROUTER_API_KEY 
  --name nanobot 
  nanobot
```

Docker Compose example:

```yaml
version: "3.8"
services:
  nanobot:
    image: hkuds/nanobot:latest
    volumes:
      - ~/.nanobot:/root/.nanobot
    environment:
      - OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
      - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
    restart: unless-stopped
```

## Linux Service (systemd)

```ini
# /etc/systemd/system/nanobot.service
[Unit]
Description=nanobot AI Assistant
After=network.target

[Service]
Type=simple
User=youruser
WorkingDirectory=/home/youruser
ExecStart=/usr/local/bin/nanobot channels start
Restart=on-failure
RestartSec=5
Environment=OPENROUTER_API_KEY=your_key_here

[Install]
WantedBy=multi-user.target
```

```bash
sudo systemctl enable nanobot
sudo systemctl start nanobot
sudo systemctl status nanobot
```

## Multiple Instances

Run multiple nanobot instances with different configs:

```bash
# Specify a custom config directory
NANOBOT_HOME=~/.nanobot-work nanobot agent
NANOBOT_HOME=~/.nanobot-personal nanobot channels start
```

Each instance maintains its own memory, skills, and channel configurations.

## Web Proxy Support

```json
{
  "proxy": {
    "http": "http://proxy.example.com:8080",
    "https": "http://proxy.example.com:8080"
  }
}
```

## LangSmith Integration

```json
{
  "langsmith": {
    "apiKey": "$LANGSMITH_API_KEY",
    "project": "nanobot-traces"
  }
}
```

## Project Structure

```
~/.nanobot/
├── config.json          # Main configuration
├── skills/              # Custom skill plugins
├── memory/              # Persistent agent memory
├── sessions/            # Chat session history
├── bridge/              # WhatsApp bridge data
└── workspace/           # Agent working directory
```

Repository structure:
```
nanobot/
├── nanobot/
│   ├── agent/           # Core agent logic
│   ├── channels/        # Chat platform integrations
│   ├── providers/       # LLM provider adapters
│   ├── skills/          # Built-in skills
│   ├── memory/          # Memory system
│   └── mcp/             # MCP client
├── core_agent_lines.sh  # Line count verification
└── pyproject.toml
```

## Troubleshooting

### Agent not responding
```bash
# Check version
nanobot --version

# Verify config is valid JSON
python -m json.tool ~/.nanobot/config.json

# Test provider connectivity
nanobot agent  # try a simple message
```

### Channel not connecting
```bash
# Re-run channel login
nanobot channels login

# Check channel is enabled in config
cat ~/.nanobot/config.json | python -m json.tool
```

### WhatsApp session lost after upgrade
```bash
rm -rf ~/.nanobot/bridge
nanobot channels login   # scan QR code again
```

### Memory issues
```bash
# Memory files are in ~/.nanobot/memory/
# Clear to reset (loses all stored context)
rm -rf ~/.nanobot/memory/
```

### MCP server not found
Ensure `npx` / `node` is installed for Node.js-based MCP servers:
```bash
node --version
npx --version
```

### Model not available
Check that the model name matches the provider's format:
- OpenRouter: `anthropic/claude-opus-4-5`
- OpenAI direct: `gpt-4o`
- Anthropic direct: `claude-opus-4-5`
- Ollama: `llama3.2`

### Verify line count claim
```bash
cd /path/to/nanobot
bash core_agent_lines.sh
```

## Common Patterns

### Environment variable substitution in config
nanobot supports `$ENV_VAR` syntax in config values:
```json
{
  "providers": {
    "openai": {
      "apiKey": "$OPENAI_API_KEY"
    }
  }
}
```

### Thinking mode (experimental)
```json
{
  "agents": {
    "defaults": {
      "model": "anthropic/claude-opus-4-5",
      "thinking": true
    }
  }
}
```

### Multi-agent / subagents
Subagents are supported in both CLI and channel modes. The main agent can spawn subagents for parallel tasks automatically based on the conversation context.

### Access control for channels
```json
{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "$TELEGRAM_BOT_TOKEN",
      "allowFrom": ["user_id_1", "user_id_2"]
    }
  }
}
```

Leave `allowFrom` empty array `[]` for open access (not recommended for public bots).
```