
724 Office Ai Agent
Bootstrap a lightweight 24/7 Python office agent with built-in tools, layered memory, MCP plugins, cron jobs, and optional WeChat Work hooks.
Overview
724-office-ai-agent is an agent skill most often used in Build (also Operate, Grow) that guides setup of a pure-Python 24/7 agent with 26 tools, triple-layer memory, MCP plugins, and cron scheduling.
Install
npx skills add https://github.com/aradotso/trending-skills --skill 724-office-ai-agentWhat is this skill?
- 26 built-in tools with runtime tool creation via decorator
- Three-layer memory: session, compressed, and vector (LanceDB)
- MCP/plugin connectivity and self-repair diagnostics for 24/7 operation
- Pure Python ~3,500 lines; 3 runtime deps: croniter, lancedb, websocket-client
- config.json multi-model setup including embedding profile and cron scheduling
- Three-layer memory architecture
- ~3,500 lines of pure Python
Adoption & trust: 974 installs on skills.sh; 32 GitHub stars; 0/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need a always-on personal agent with tools and memory but heavyweight frameworks feel opaque and hard to self-host.
Who is it for?
Indie builders self-hosting a small Python agent with MCP, vector memory, and scheduled jobs without LangChain-style stacks.
Skip if: Teams wanting a managed SaaS copilot only, or projects that need enterprise IAM and multi-tenant governance out of the box.
When should I use this skill?
set up a self-evolving AI agent; add tools at runtime; configure three-layer memory; connect MCP servers; schedule recurring tasks; build 24/7 production agent; WeChat Work integration; custom tools with decorator
What do I get? / Deliverables
You get a configured 724-office instance with models, memory paths, optional MCP and WeChat hooks, and cron-ready scheduling for ongoing autonomous tasks.
- config.json from config.example.json
- Running 724-office agent with chosen models and tools
- Optional MCP and cron schedules configured
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Standing up a production agent runtime is primary Build agent-tooling work. The skill documents cloning, configuring, and extending a full agent system—not a single API integration.
Where it fits
Clone 724-office, set config.json models, and register MCP tools before shipping your first custom decorator tool.
Enable self-repair diagnostics and websocket-backed loops so the agent recovers overnight without manual restarts.
Attach WeChat Work and cron jobs for recurring customer or ops notifications from the same agent runtime.
How it compares
Use as a minimal self-hosted agent blueprint, not as a single Cursor rule or one-shot codegen skill.
Common Questions / FAQ
Who is 724-office-ai-agent for?
Solo developers shipping private office automations who want MCP, memory tiers, and cron in roughly three thousand lines of Python they can read and fork.
When should I use 724-office-ai-agent?
In Build when scaffolding agent-tooling; in Operate when enabling self-repair and 24/7 schedules; in Grow when wiring WeChat Work or recurring outbound tasks.
Is 724-office-ai-agent safe to install?
The skill points at an external GitHub project and API keys in config.json—review the Security Audits panel on this page and never commit secrets; audit tool and MCP permissions before production.
SKILL.md
READMESKILL.md - 724 Office Ai Agent
# 7/24 Office AI Agent System > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. A 24/7 production AI agent in ~3,500 lines of pure Python with no framework dependencies. Features 26 built-in tools, three-layer memory (session + compressed + vector), MCP/plugin support, runtime tool creation, self-repair diagnostics, and cron scheduling. ## Installation ```bash git clone https://github.com/wangziqi06/724-office.git cd 724-office # Only 3 runtime dependencies pip install croniter lancedb websocket-client # Optional: WeChat silk audio decoding pip install pilk # Set up directories mkdir -p workspace/memory workspace/files # Configure cp config.example.json config.json ``` ## Configuration (`config.json`) ```json { "models": { "default": { "api_base": "https://api.openai.com/v1", "api_key": "${OPENAI_API_KEY}", "model": "gpt-4o", "max_tokens": 4096 }, "embedding": { "api_base": "https://api.openai.com/v1", "api_key": "${OPENAI_API_KEY}", "model": "text-embedding-3-small" } }, "messaging": { "platform": "wxwork", "corp_id": "${WXWORK_CORP_ID}", "corp_secret": "${WXWORK_CORP_SECRET}", "agent_id": "${WXWORK_AGENT_ID}", "token": "${WXWORK_TOKEN}", "encoding_aes_key": "${WXWORK_AES_KEY}" }, "memory": { "session_max_messages": 40, "compression_overlap": 5, "dedup_threshold": 0.92, "retrieval_top_k": 5, "lancedb_path": "workspace/memory" }, "asr": { "api_base": "https://api.openai.com/v1", "api_key": "${OPENAI_API_KEY}", "model": "whisper-1" }, "scheduler": { "jobs_file": "workspace/jobs.json", "timezone": "Asia/Shanghai" }, "server": { "host": "0.0.0.0", "port": 8080 }, "workspace": "workspace", "mcp_servers": {} } ``` Set environment variables rather than hardcoding secrets: ```bash export OPENAI_API_KEY="sk-..." export WXWORK_CORP_ID="..." export WXWORK_CORP_SECRET="..." ``` ## Running the Agent ```bash # Start the HTTP server (listens on :8080 by default) python3 xiaowang.py # Point your messaging platform webhook to: # http://YOUR_SERVER_IP:8080/ ``` ## File Structure ``` 724-office/ ├── xiaowang.py # Entry point: HTTP server, debounce, ASR, media download ├── llm.py # Tool-use loop, session management, memory injection ├── tools.py # 26 built-in tools + @tool decorator + plugin loader ├── memory.py # Three-layer memory pipeline ├── scheduler.py # Cron + one-shot scheduling, jobs.json persistence ├── mcp_client.py # JSON-RPC MCP client (stdio + HTTP) ├── router.py # Multi-tenant Docker routing ├── config.py # Config loading and env interpolation └── workspace/ ├── memory/ # LanceDB vector store ├── files/ # Agent file storage ├── SOUL.md # Agent personality ├── AGENT.md # Operational procedures └── USER.md # User preferences/context ``` ## Adding a Built-in Tool Tools are registered with the `@tool` decorator in `tools.py`: ```python from tools import tool @tool( name="fetch_weather", description="Get current weather for a city.", parameters={ "type": "object", "properties": { "city": { "type": "string", "description": "City name, e.g. 'Beijing'" }, "units": { "type": "string", "enum": ["metric", "imperial"],