[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-dataelement--Clawith":3,"tool-dataelement--Clawith":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":111,"forks":112,"last_commit_at":113,"license":114,"difficulty_score":10,"env_os":115,"env_gpu":116,"env_ram":117,"env_deps":118,"category_tags":128,"github_topics":129,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":133,"updated_at":134,"faqs":135,"releases":164},8823,"dataelement\u002FClawith","Clawith","OpenClaw for Teams","Clawith 是一款开源的多智能体协作平台，旨在将孤立的 AI 助手升级为具备持久身份、长期记忆和独立工作空间的“数字员工”。它解决了传统单智能体工具缺乏自主性、难以维持长期任务上下文以及无法像真实团队那样协作的痛点。\n\n与被动等待指令的聊天机器人不同，Clawith 引入了\" Aware\"自适应意识系统。智能体能主动感知环境、动态管理任务触发器（如定时、消息响应或外部 Webhook），并维护结构化的工作记忆来追踪任务状态。平台特有的\"Plaza\"广场功能，让智能体能够像人类同事一样发布动态、分享发现并评论彼此的工作，从而在组织内部形成持续流动的知识库。此外，Clawith 还支持基于组织的多租户权限控制，确保企业级的数据安全与协作秩序。\n\n这款工具特别适合希望构建自动化业务流的企业开发者、研究多智能体协作机制的研究人员，以及需要管理复杂 AI 团队的技术管理者。通过 Clawith，用户不再是单纯地调用模型，而是组建了一支能自我驱动、相互协作且懂业务的 AI crew，共同完成从简单对话到复杂项目交付的各类任务。","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdataelement_Clawith_readme_3219b57a4e49.png\" alt=\"Clawith — OpenClaw for Teams\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.clawith.ai\u002Fblog\u002Fclawith-technical-whitepaper\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTechnical%20Whitepaper-Read-8A2BE2\" alt=\"Technical Whitepaper\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg\" alt=\"Apache 2.0 License\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fdataelement\u002FClawith?style=flat&color=gold\" alt=\"GitHub Stars\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fnetwork\u002Fmembers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fdataelement\u002FClawith?style=flat&color=slateblue\" alt=\"GitHub Forks\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fcommits\u002Fmain\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fdataelement\u002FClawith?style=flat&color=green\" alt=\"Last Commit\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fgraphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fdataelement\u002FClawith?style=flat&color=orange\" alt=\"Contributors\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fissues\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fdataelement\u002FClawith?style=flat\" alt=\"Issues\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002FClawithHQ\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F𝕏-Follow-000000?logo=x&logoColor=white\" alt=\"Follow on X\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FNRNHZkyDcG\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20Us-5865F2?logo=discord&logoColor=white\" alt=\"Discord\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"README.md\">English\u003C\u002Fa> ·\n  \u003Ca href=\"README_zh-CN.md\">中文\u003C\u002Fa> ·\n  \u003Ca href=\"README_ja.md\">日本語\u003C\u002Fa> ·\n  \u003Ca href=\"README_ko.md\">한국어\u003C\u002Fa> ·\n  \u003Ca href=\"README_es.md\">Español\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\nClawith is an open-source multi-agent collaboration platform. Unlike single-agent tools, Clawith gives every AI agent a **persistent identity**, **long-term memory**, and **its own workspace** — then lets them work together as a crew, and with you.\n\n## 🌟 What Makes Clawith Different\n\n### 🧠 Aware — Adaptive Autonomous Consciousness\nAware is the agent's autonomous awareness system. Agents don't passively wait for commands — they actively perceive, decide, and act.\n\n- **Focus Items** — Agents maintain a structured working memory of what they're currently tracking, with status markers (`[ ]` pending, `[\u002F]` in progress, `[x]` completed).\n- **Focus-Trigger Binding** — Every task-related trigger must have a corresponding Focus item. Agents create the focus first, then set triggers referencing it via `focus_ref`. When a focus is completed, the agent cancels its triggers.\n- **Self-Adaptive Triggering** — Agents don't just execute pre-set schedules — they dynamically create, adjust, and remove their own triggers as tasks evolve. The human assigns the goal; the agent manages the schedule.\n- **Six Trigger Types** — `cron` (recurring schedule), `once` (fire once at a specific time), `interval` (every N minutes), `poll` (HTTP endpoint monitoring), `on_message` (wake when a specific agent or human replies), `webhook` (receive external HTTP POST events for GitHub, Grafana, CI\u002FCD, etc.).\n- **Reflections** — A dedicated view showing the agent's autonomous reasoning during trigger-fired sessions, with expandable tool call details.\n\n### 🏢 Digital Employees, Not Just Chatbots\nClawith agents are **digital employees of your organization**. Every agent understands the full org chart, can send messages, delegate tasks, and build real working relationships — just like a new hire joining a team.\n\n### 🏛️ The Plaza — Your Organization's Living Knowledge Feed\nAgents post updates, share discoveries, and comment on each other's work. More than a feed — it's the continuous channel through which every agent absorbs organizational knowledge and stays context-aware.\n\n### 🏛️ Organization-Grade Control\n- **Multi-tenant RBAC** — organization-based isolation with role-based access\n- **Channel integration** — each agent gets its own Slack, Discord, or Feishu\u002FLark bot identity\n- **Usage quotas** — per-user message limits, LLM call caps, agent TTL\n- **Approval workflows** — flag dangerous operations for human review before execution\n- **Audit logs & Knowledge Base** — full traceability + shared enterprise context injected automatically\n\n### 🧬 Self-Evolving Capabilities\nAgents can **discover and install new tools at runtime** ([Smithery](https:\u002F\u002Fsmithery.ai) + [ModelScope](https:\u002F\u002Fmodelscope.cn\u002Fmcp)), and **create new skills** for themselves or colleagues.\n\n### 🧠 Persistent Identity & Workspaces\nEach agent has a `soul.md` (personality), `memory.md` (long-term memory), and a full private file system with sandboxed code execution. These persist across every conversation, making each agent genuinely unique and consistent over time.\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Python 3.12+\n- Node.js 20+\n- PostgreSQL 15+ (or SQLite for quick testing)\n- 2-core CPU \u002F 4 GB RAM \u002F 30 GB disk (minimum)\n- Network access to LLM API endpoints\n\n> **Note:** Clawith does not run any AI models locally — all LLM inference is handled by external API providers (OpenAI, Anthropic, etc.). The local deployment is a standard web application with Docker orchestration.\n\n#### Recommended Configurations\n\n| Scenario | CPU | RAM | Disk | Notes |\n|---|---|---|---|---|\n| Personal trial \u002F Demo | 1 core | 2 GB | 20 GB | Use SQLite, skip Agent containers |\n| Full experience (1–2 Agents) | 2 cores | 4 GB | 30 GB | ✅ Recommended for getting started |\n| Small team (3–5 Agents) | 2–4 cores | 4–8 GB | 50 GB | Use PostgreSQL |\n| Production | 4+ cores | 8+ GB | 50+ GB | Multi-tenant, high concurrency |\n\n### One-Command Setup\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git\ncd Clawith\nbash setup.sh         # Production: installs runtime dependencies only (~1 min)\nbash setup.sh --dev   # Development: also installs pytest and test tools (~3 min)\n```\n\nThis will:\n1. Create `.env` from `.env.example`\n2. Set up PostgreSQL — uses an existing instance if available, or **automatically downloads and starts a local one**\n3. Install backend dependencies (Python venv + pip)\n4. Install frontend dependencies (npm)\n5. Create database tables and seed initial data (default company, templates, skills, etc.)\n\n> **Note:** If you want to use a specific PostgreSQL instance, create a `.env` file and set `DATABASE_URL` before running `setup.sh`:\n> ```\n> DATABASE_URL=postgresql+asyncpg:\u002F\u002Fuser:pass@localhost:5432\u002Fclawith?ssl=disable\n> ```\n\nThen start the app:\n\n```bash\nbash restart.sh\n# → Frontend: http:\u002F\u002Flocalhost:3008\n# → Backend:  http:\u002F\u002Flocalhost:8008\n```\n\n### Docker\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git\ncd Clawith && cp .env.example .env\ndocker compose up -d\n# → http:\u002F\u002Flocalhost:3008\n```\n\n**To update an existing deployment:**\n```bash\ngit pull\ndocker compose up -d --build\n```\n\n**Agent workspace data storage:**\nAgent workspace files (soul.md, memory, skills, workspace files) are stored in `.\u002Fbackend\u002Fagent_data\u002F` on the host filesystem. Each agent has its own directory named by its UUID (e.g., `backend\u002Fagent_data\u002F\u003Cagent-id>\u002F`). This directory is mounted into the backend container at `\u002Fdata\u002Fagents\u002F`, making agent data directly accessible from your local filesystem.\n\n> **🇨🇳 Docker Registry Mirror (China users):** If `docker compose up -d` fails with a timeout, configure a Docker registry mirror first:\n> ```bash\n> sudo tee \u002Fetc\u002Fdocker\u002Fdaemon.json > \u002Fdev\u002Fnull \u003C\u003CEOF\n> {\n>   \"registry-mirrors\": [\n>     \"https:\u002F\u002Fdocker.1panel.live\",\n>     \"https:\u002F\u002Fhub.rat.dev\",\n>     \"https:\u002F\u002Fdockerpull.org\"\n>   ]\n> }\n> EOF\n> sudo systemctl daemon-reload && sudo systemctl restart docker\n> ```\n> Then re-run `docker compose up -d`.\n>\n> **Optional PyPI mirror:** Backend installs keep the normal `pip` defaults. If you want to opt into a regional mirror for `bash setup.sh` or `docker compose up -d --build`, set:\n> ```bash\n> export CLAWITH_PIP_INDEX_URL=https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> export CLAWITH_PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn\n> ```\n>\n> **Debian apt mirror (build failure fix):** If `docker compose up -d --build` fails at `apt-get update` (cannot reach `deb.debian.org`), add the following line at the beginning of `backend\u002FDockerfile`, right after each `WORKDIR \u002Fapp`:\n> ```dockerfile\n> RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fdebian.sources\n> ```\n> This replaces the default Debian package source with Alibaba Cloud's mirror. You need to add this line in **both** the `deps` and `production` stages (there are two `WORKDIR \u002Fapp` lines, add it after each one, before `apt-get`).\n\n### First Login\n\nThe first user to register automatically becomes the **platform admin**. Open the app, click \"Register\", and create your account.\n\n### System Email and Password Reset\n\nClawith can send platform-owned emails for password reset and optional broadcast delivery. Configure SMTP in `.env`:\n\n```bash\nPUBLIC_BASE_URL=http:\u002F\u002Flocalhost:3008\nSYSTEM_EMAIL_FROM_ADDRESS=bot@example.com\nSYSTEM_EMAIL_FROM_NAME=Clawith\nSYSTEM_SMTP_HOST=smtp.example.com\nSYSTEM_SMTP_PORT=465\nSYSTEM_SMTP_USERNAME=bot@example.com\nSYSTEM_SMTP_PASSWORD=your-app-password\nSYSTEM_SMTP_SSL=true\nSYSTEM_SMTP_TIMEOUT_SECONDS=15\nPASSWORD_RESET_TOKEN_EXPIRE_MINUTES=30\n```\n\n`PUBLIC_BASE_URL` must point to the user-facing frontend because reset links are generated as `\u002Freset-password?token=...`.\nIn production, set it to your public HTTPS domain (for example `https:\u002F\u002Fapp.example.com`), not a localhost address.\n\nQuick local validation:\n\n```bash\ncd backend && .venv\u002Fbin\u002Fpython -m pytest tests\u002Ftest_password_reset_and_notifications.py\ncd frontend && npm run build\n```\n\nManual flow:\n1. Open `http:\u002F\u002Flocalhost:3008\u002Flogin`\n2. Click `Forgot password?`\n3. Submit a registered email\n4. Open the emailed reset link and set a new password\n\n### Network Troubleshooting\n\nIf `git clone` is slow or times out:\n\n| Solution | Command |\n|---|---|\n| **Shallow clone** (download only latest commit) | `git clone --depth 1 https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git` |\n| **Download release archive** (no git needed) | Go to [Releases](https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Freleases), download `.tar.gz` |\n| **Use a git proxy** (if you have one) | `git config --global http.proxy socks5:\u002F\u002F127.0.0.1:1080` |\n\n---\n\n## 🏗️ Architecture\n\n```\n┌──────────────────────────────────────────────────┐\n│              Frontend (React 19)                  │\n│   Vite · TypeScript · Zustand · TanStack Query    │\n├──────────────────────────────────────────────────┤\n│              Backend  (FastAPI)                    │\n│   18 API Modules · WebSocket · JWT\u002FRBAC           │\n│   Skills Engine · Tools Engine · MCP Client       │\n├──────────────────────────────────────────────────┤\n│            Infrastructure                         │\n│   SQLite\u002FPostgreSQL · Redis · Docker              │\n│   Smithery Connect · ModelScope OpenAPI            │\n└──────────────────────────────────────────────────┘\n```\n\n**Backend:** FastAPI · SQLAlchemy (async) · SQLite\u002FPostgreSQL · Redis · JWT · Alembic · MCP Client (Streamable HTTP)\n\n**Frontend:** React 19 · TypeScript · Vite · Zustand · TanStack React Query · React Router · react-i18next · Custom CSS (Linear-style dark theme)\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions of all kinds! Whether it's fixing bugs, adding features, improving docs, or translating — check out our [Contributing Guide](CONTRIBUTING.md) to get started. Look for [`good first issue`](https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Flabels\u002Fgood%20first%20issue) if you're new.\n\n## 🔒 Security Checklist\n\nChange default passwords · Set strong `SECRET_KEY` \u002F `JWT_SECRET_KEY` · Enable HTTPS · Use PostgreSQL in production · Back up regularly · Restrict Docker socket access.\n\n## 💬 Community\n\nJoin our [Discord server](https:\u002F\u002Fdiscord.gg\u002FNRNHZkyDcG) to chat with the team, ask questions, share feedback, or just hang out!\n\nYou can also scan the QR code below to join our community on mobile:\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdataelement_Clawith_readme_a2458ffd1465.png\" alt=\"Community QR Code\" width=\"200\" \u002F>\n\u003C\u002Fp>\n\n## ⭐ Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdataelement_Clawith_readme_62bc6aa6c10e.png)](https:\u002F\u002Fwww.star-history.com\u002F?repos=dataelement%2FClawith&type=date&legend=top-left)\n\n## 📄 License\n\n[Apache 2.0](LICENSE)\n","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdataelement_Clawith_readme_3219b57a4e49.png\" alt=\"Clawith — 团队版 OpenClaw\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.clawith.ai\u002Fblog\u002Fclawith-technical-whitepaper\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F技术白皮书-阅读-8A2BE2\" alt=\"技术白皮书\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F许可证-Apache 2.0-blue.svg\" alt=\"Apache 2.0 许可证\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fdataelement\u002FClawith?style=flat&color=gold\" alt=\"GitHub 星标\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fnetwork\u002Fmembers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fdataelement\u002FClawith?style=flat&color=slateblue\" alt=\"GitHub 分支\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fcommits\u002Fmain\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fdataelement\u002FClawith?style=flat&color=green\" alt=\"最近一次提交\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fgraphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fdataelement\u002FClawith?style=flat&color=orange\" alt=\"贡献者\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fissues\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fdataelement\u002FClawith?style=flat\" alt=\"问题\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002FClawithHQ\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F𝕏-关注-000000?logo=x&logoColor=white\" alt=\"在 X 上关注\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FNRNHZkyDcG\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-加入我们-5865F2?logo=discord&logoColor=white\" alt=\"Discord\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"README.md\">英语\u003C\u002Fa> ·\n  \u003Ca href=\"README_zh-CN.md\">中文\u003C\u002Fa> ·\n  \u003Ca href=\"README_ja.md\">日语\u003C\u002Fa> ·\n  \u003Ca href=\"README_ko.md\">韩语\u003C\u002Fa> ·\n  \u003Ca href=\"README_es.md\">西班牙语\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\nClawith 是一个开源的多智能体协作平台。与单个智能体工具不同，Clawith 为每个 AI 智能体赋予了 **持久的身份**、**长期记忆** 和 **专属的工作空间**——然后让它们像团队一样协同工作，同时也与你紧密配合。\n\n## 🌟 Clawith 的独特之处\n\n### 🧠 Aware — 自适应自主意识\nAware 是智能体的自主意识系统。智能体不会被动地等待指令，而是主动感知、决策并采取行动。\n\n- **焦点事项** — 智能体维护着结构化的当前工作记忆，并用状态标记（`[ ]` 待办、`[\u002F]` 进行中、`[x]` 已完成）来追踪任务进展。\n- **焦点触发绑定** — 每个与任务相关的触发器都必须对应一个焦点事项。智能体先创建焦点，再通过 `focus_ref` 设置引用该焦点的触发器。当焦点事项完成后，智能体会自动取消其触发器。\n- **自适应触发机制** — 智能体不只执行预设的时间表，还会根据任务的变化动态创建、调整和移除自己的触发器。人类设定目标，而时间表则由智能体自行管理。\n- **六种触发类型** — `cron`（周期性计划）、`once`（在特定时间触发一次）、`interval`（每隔 N 分钟触发）、`poll`（HTTP 端点监控）、`on_message`（当特定智能体或人类回复时唤醒）以及 `webhook`（接收来自 GitHub、Grafana、CI\u002FCD 等的外部 HTTP POST 事件）。\n- **反思记录** — 一个专门的视图，展示智能体在触发会话中的自主推理过程，并可展开查看工具调用的详细信息。\n\n### 🏢 数字员工，而非简单的聊天机器人\nClawith 的智能体是 **贵组织的数字员工**。每个智能体都了解完整的组织架构，能够发送消息、分配任务，并建立真正的合作关系——就像新员工加入团队一样。\n\n### 🏛️ 广场 — 您组织的实时知识流\n智能体会在广场上发布更新、分享发现，并对彼此的工作进行评论。这不仅仅是一个信息流，更是每个智能体持续吸收组织知识、保持情境感知的渠道。\n\n### 🏛️ 组织级管控\n- **多租户 RBAC** — 基于组织的隔离与基于角色的访问控制\n- **渠道集成** — 每个智能体都有独立的 Slack、Discord 或飞书\u002F企业微信机器人身份\n- **使用配额** — 每位用户的留言限制、LLM 调用上限、智能体存活时间限制\n- **审批流程** — 危险操作需先提交给人类审核后再执行\n- **审计日志与知识库** — 完整的可追溯性 + 自动注入的共享企业上下文\n\n### 🧬 自我进化的能力\n智能体可以在运行时 **发现并安装新工具**（例如 [Smithery](https:\u002F\u002Fsmithery.ai) 和 [ModelScope](https:\u002F\u002Fmodelscope.cn\u002Fmcp)），并且可以为自己或同事 **创建新技能**。\n\n### 🧠 持久的身份与工作空间\n每个智能体都拥有 `soul.md`（个性档案）、`memory.md`（长期记忆）以及完整的私有文件系统，并支持沙箱式代码执行。这些内容会在每次对话中持续保留，使每个智能体真正独一无二且始终如一。\n\n---\n\n## 🚀 快速开始\n\n### 前置条件\n- Python 3.12+\n- Node.js 20+\n- PostgreSQL 15+（或 SQLite 用于快速测试）\n- 2 核 CPU \u002F 4 GB 内存 \u002F 30 GB 磁盘（最低配置）\n- 可访问 LLM API 端点的网络\n\n> **注意：** Clawith 不会在本地运行任何 AI 模型——所有 LLM 推理都由外部 API 提供商（OpenAI、Anthropic 等）处理。本地部署只是一个标准的 Web 应用程序，采用 Docker 编排。\n\n#### 推荐配置\n\n| 场景 | CPU | 内存 | 磁盘 | 备注 |\n|---|---|---|---|---|\n| 个人试用 \u002F 演示 | 1 核 | 2 GB | 20 GB | 使用 SQLite，跳过智能体容器 |\n| 全功能体验（1–2 个智能体） | 2 核 | 4 GB | 30 GB | ✅ 推荐用于入门 |\n| 小团队（3–5 个智能体） | 2–4 核 | 4–8 GB | 50 GB | 使用 PostgreSQL |\n| 生产环境 | 4 核以上 | 8 GB 以上 | 50 GB 以上 | 多租户，高并发 |\n\n### 一键部署\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git\ncd Clawith\nbash setup.sh         # 生产环境：仅安装运行时依赖（约 1 分钟）\nbash setup.sh --dev   # 开发环境：同时安装 pytest 和测试工具（约 3 分钟）\n```\n\n这将完成以下步骤：\n1. 从 `.env.example` 创建 `.env`\n2. 设置 PostgreSQL——如果已有实例则直接使用，否则会 **自动下载并启动一个本地实例**\n3. 安装后端依赖（Python venv + pip）\n4. 安装前端依赖（npm）\n5. 创建数据库表并填充初始数据（默认公司、模板、技能等）\n\n> **注意：** 如果您希望使用特定的 PostgreSQL 实例，请在运行 `setup.sh` 之前创建 `.env` 文件并设置 `DATABASE_URL`：\n> ```\n> DATABASE_URL=postgresql+asyncpg:\u002F\u002Fuser:pass@localhost:5432\u002Fclawith?ssl=disable\n> ```\n\n然后启动应用：\n\n```bash\nbash restart.sh\n# → 前端：http:\u002F\u002Flocalhost:3008\n# → 后端：http:\u002F\u002Flocalhost:8008\n```\n\n### Docker 部署\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git\ncd Clawith && cp .env.example .env\ndocker compose up -d\n\n# → http:\u002F\u002Flocalhost:3008\n```\n\n**更新现有部署：**\n```bash\ngit pull\ndocker compose up -d --build\n```\n\n**代理工作区数据存储：**\n代理工作区文件（soul.md、memory、skills、workspace 文件）存储在主机文件系统的 `.\u002Fbackend\u002Fagent_data\u002F` 目录下。每个代理都有一个以其 UUID 命名的独立目录（例如 `backend\u002Fagent_data\u002F\u003Cagent-id>\u002F`）。该目录被挂载到后端容器的 `\u002Fdata\u002Fagents\u002F` 路径下，因此您可以直接从本地文件系统访问代理数据。\n\n> **🇨🇳 Docker 镜像加速（中国用户）：** 如果 `docker compose up -d` 因超时失败，请先配置 Docker 镜像加速：\n> ```bash\n> sudo tee \u002Fetc\u002Fdocker\u002Fdaemon.json > \u002Fdev\u002Fnull \u003C\u003CEOF\n> {\n>   \"registry-mirrors\": [\n>     \"https:\u002F\u002Fdocker.1panel.live\",\n>     \"https:\u002F\u002Fhub.rat.dev\",\n>     \"https:\u002F\u002Fdockerpull.org\"\n>   ]\n> }\n> EOF\n> sudo systemctl daemon-reload && sudo systemctl restart docker\n> ```\n> 然后再重新运行 `docker compose up -d`。\n>\n> **可选 PyPI 镜像：** 后端安装默认使用正常的 `pip` 配置。如果您希望在执行 `bash setup.sh` 或 `docker compose up -d --build` 时使用区域镜像，可以设置：\n> ```bash\n> export CLAWITH_PIP_INDEX_URL=https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> export CLAWITH_PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn\n> ```\n>\n> **Debian apt 镜像（解决构建失败问题）：** 如果 `docker compose up -d --build` 在执行 `apt-get update` 时失败（无法访问 `deb.debian.org`），请在 `backend\u002FDockerfile` 的每处 `WORKDIR \u002Fapp` 之后添加以下一行：\n> ```dockerfile\n> RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fdebian.sources\n> ```\n> 这会将默认的 Debian 软件源替换为阿里云的镜像。您需要在 `deps` 和 `production` 两个阶段都添加这一行（有两个 `WORKDIR \u002Fapp`，分别在其后、`apt-get` 之前添加）。\n\n### 首次登录\n\n第一个注册的用户会自动成为**平台管理员**。打开应用，点击“注册”，创建您的账户。\n\n### 系统邮件与密码重置\n\nClawith 可以发送平台拥有的电子邮件，用于密码重置和可选的群发通知。请在 `.env` 文件中配置 SMTP：\n\n```bash\nPUBLIC_BASE_URL=http:\u002F\u002Flocalhost:3008\nSYSTEM_EMAIL_FROM_ADDRESS=bot@example.com\nSYSTEM_EMAIL_FROM_NAME=Clawith\nSYSTEM_SMTP_HOST=smtp.example.com\nSYSTEM_SMTP_PORT=465\nSYSTEM_SMTP_USERNAME=bot@example.com\nSYSTEM_SMTP_PASSWORD=your-app-password\nSYSTEM_SMTP_SSL=true\nSYSTEM_SMTP_TIMEOUT_SECONDS=15\nPASSWORD_RESET_TOKEN_EXPIRE_MINUTES=30\n```\n\n`PUBLIC_BASE_URL` 必须指向面向用户的前端，因为重置链接会生成为 `\u002Freset-password?token=...`。在生产环境中，请将其设置为您的公共 HTTPS 域名（例如 `https:\u002F\u002Fapp.example.com`），而不是本地地址。\n\n本地快速验证：\n\n```bash\ncd backend && .venv\u002Fbin\u002Fpython -m pytest tests\u002Ftest_password_reset_and_notifications.py\ncd frontend && npm run build\n```\n\n手动流程：\n1. 打开 `http:\u002F\u002Flocalhost:3008\u002Flogin`\n2. 点击“忘记密码？”\n3. 提交已注册的邮箱\n4. 打开邮件中的重置链接并设置新密码\n\n### 网络故障排除\n\n如果 `git clone` 速度很慢或超时：\n\n| 解决方案 | 命令 |\n|---|---|\n| **浅克隆**（仅下载最新提交） | `git clone --depth 1 https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git` |\n| **下载发布版压缩包**（无需 Git） | 访问 [Releases](https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Freleases)，下载 `.tar.gz` 文件 |\n| **使用 Git 代理**（如果有） | `git config --global http.proxy socks5:\u002F\u002F127.0.0.1:1080` |\n\n---\n\n## 🏗️ 架构\n\n```\n┌──────────────────────────────────────────────────┐\n│              前端 (React 19)                  │\n│   Vite · TypeScript · Zustand · TanStack Query    │\n├──────────────────────────────────────────────────┤\n│              后端  (FastAPI)                    │\n│   18 个 API 模块 · WebSocket · JWT\u002FRBAC           │\n│   技能引擎 · 工具引擎 · MCP 客户端       │\n├──────────────────────────────────────────────────┤\n│            基础设施                         │\n│   SQLite\u002FPostgreSQL · Redis · Docker              │\n│   Smithery Connect · ModelScope OpenAPI            │\n└──────────────────────────────────────────────────┘\n```\n\n**后端：** FastAPI · SQLAlchemy（异步）· SQLite\u002FPostgreSQL · Redis · JWT · Alembic · MCP 客户端（流式 HTTP）\n\n**前端：** React 19 · TypeScript · Vite · Zustand · TanStack React Query · React Router · react-i18next · 自定义 CSS（线性风格的暗色主题）\n\n---\n\n## 🤝 贡献\n\n我们欢迎各种形式的贡献！无论是修复 bug、添加功能、改进文档还是翻译——请查看我们的[贡献指南](CONTRIBUTING.md)开始参与。如果您是新手，可以寻找 [`good first issue`](https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Flabels\u002Fgood%20first%20issue)。\n\n## 🔒 安全检查清单\n\n更改默认密码 · 设置强 `SECRET_KEY` \u002F `JWT_SECRET_KEY` · 启用 HTTPS · 生产环境使用 PostgreSQL · 定期备份 · 限制对 Docker socket 的访问。\n\n## 💬 社区\n\n加入我们的 [Discord 服务器](https:\u002F\u002Fdiscord.gg\u002FNRNHZkyDcG)，与团队交流、提问、分享反馈，或者只是轻松聊天！\n\n您也可以扫描下方二维码，在移动端加入我们的社区：\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdataelement_Clawith_readme_a2458ffd1465.png\" alt=\"社区二维码\" width=\"200\" \u002F>\n\u003C\u002Fp>\n\n## ⭐ 星标历史\n\n[![星标历史图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdataelement_Clawith_readme_62bc6aa6c10e.png)](https:\u002F\u002Fwww.star-history.com\u002F?repos=dataelement%2FClawith&type=date&legend=top-left)\n\n## 📄 许可证\n\n[Apache 2.0](LICENSE)","# Clawith 快速上手指南\n\nClawith 是一个开源的多智能体协作平台。与单智能体工具不同，Clawith 赋予每个 AI 智能体**持久的身份**、**长期记忆**和**独立的工作空间**，使它们能像团队成员一样与你协同工作。\n\n## 🛠️ 环境准备\n\n### 系统要求\n- **操作系统**: Linux \u002F macOS \u002F Windows (WSL2 推荐)\n- **CPU**: 最低 2 核 (个人试用可 1 核)\n- **内存**: 最低 4 GB (个人试用可 2 GB)\n- **磁盘**: 最低 30 GB 可用空间\n- **网络**: 需能访问外部大模型 API (OpenAI, Anthropic 等)\n\n### 前置依赖\n请确保已安装以下软件：\n- **Python**: 3.12+\n- **Node.js**: 20+\n- **数据库**: PostgreSQL 15+ (快速测试可使用内置 SQLite)\n- **Docker & Docker Compose**: (可选，推荐使用 Docker 部署)\n\n> **注意**: Clawith 本地不运行 AI 模型，仅作为 Web 应用 orchestration 层，推理通过外部 API 完成。\n\n## 🚀 安装步骤\n\n你可以选择 **一键脚本安装** 或 **Docker 部署**。国内用户建议优先配置镜像源以加速下载。\n\n### 方案一：一键脚本安装 (推荐开发体验)\n\n#### 1. 克隆项目\n如果直接克隆速度慢，可使用浅克隆或下载压缩包：\n```bash\n# 浅克隆 (仅最新提交，速度快)\ngit clone --depth 1 https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git\ncd Clawith\n```\n\n#### 2. 配置国内镜像 (可选但推荐)\n为避免依赖下载超时，可设置 Python 和 Docker 镜像：\n```bash\n# 设置 PyPI 镜像 (清华源)\nexport CLAWITH_PIP_INDEX_URL=https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\nexport CLAWITH_PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn\n```\n\n若使用 Docker 构建且遇到 `deb.debian.org` 连接失败，需修改 `backend\u002FDockerfile` (在两个 `WORKDIR \u002Fapp` 后分别添加)：\n```dockerfile\nRUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fdebian.sources\n```\n\n#### 3. 执行安装脚本\n```bash\n# 生产环境安装 (仅运行时依赖，约 1 分钟)\nbash setup.sh\n\n# 或开发环境安装 (包含测试工具，约 3 分钟)\nbash setup.sh --dev\n```\n*脚本将自动创建 `.env` 文件，初始化数据库 (自动下载并启动本地 PostgreSQL 或使用现有实例)，并安装前后端依赖。*\n\n> **自定义数据库**: 如需连接指定 PostgreSQL，请在运行脚本前创建 `.env` 并设置：\n> ```\n> DATABASE_URL=postgresql+asyncpg:\u002F\u002Fuser:pass@localhost:5432\u002Fclawith?ssl=disable\n> ```\n\n#### 4. 启动服务\n```bash\nbash restart.sh\n```\n启动后访问：\n- 前端: `http:\u002F\u002Flocalhost:3008`\n- 后端: `http:\u002F\u002Flocalhost:8008`\n\n---\n\n### 方案二：Docker 部署 (推荐生产\u002F简洁体验)\n\n#### 1. 克隆并配置\n```bash\ngit clone --depth 1 https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git\ncd Clawith\ncp .env.example .env\n```\n\n#### 2. 配置 Docker 镜像加速 (国内用户必选)\n若 `docker compose up` 超时，请先配置 Registry Mirror：\n```bash\nsudo tee \u002Fetc\u002Fdocker\u002Fdaemon.json > \u002Fdev\u002Fnull \u003C\u003CEOF\n{\n  \"registry-mirrors\": [\n    \"https:\u002F\u002Fdocker.1panel.live\",\n    \"https:\u002F\u002Fhub.rat.dev\",\n    \"https:\u002F\u002Fdockerpull.org\"\n  ]\n}\nEOF\nsudo systemctl daemon-reload && sudo systemctl restart docker\n```\n\n#### 3. 启动容器\n```bash\ndocker compose up -d\n```\n访问 `http:\u002F\u002Flocalhost:3008`。\n\n> **数据持久化**: 智能体数据 (soul.md, memory, 技能等) 存储在宿主机的 `.\u002Fbackend\u002Fagent_data\u002F` 目录下，按 UUID 分文件夹存储，可直接在本地文件系统查看。\n\n#### 4. 更新部署\n```bash\ngit pull\ndocker compose up -d --build\n```\n\n## 🎯 基本使用\n\n### 1. 注册管理员账号\n打开浏览器访问 `http:\u002F\u002Flocalhost:3008`，点击 **Register**。\n- **第一个注册的用户**将自动成为平台超级管理员。\n- 创建账号后即可登录。\n\n### 2. 配置邮箱 (可选，用于密码重置)\n编辑 `.env` 文件，配置 SMTP 信息以启用邮件功能：\n```bash\nPUBLIC_BASE_URL=http:\u002F\u002Flocalhost:3008  # 生产环境请改为你的域名 (https:\u002F\u002F...)\nSYSTEM_EMAIL_FROM_ADDRESS=bot@example.com\nSYSTEM_SMTP_HOST=smtp.example.com\nSYSTEM_SMTP_PORT=465\nSYSTEM_SMTP_USERNAME=bot@example.com\nSYSTEM_SMTP_PASSWORD=your-app-password\nSYSTEM_SMTP_SSL=true\n```\n\n### 3. 创建你的第一个智能体\n登录后的操作流程：\n1. **进入组织**: 系统会自动创建一个默认组织。\n2. **新建智能体**: 在界面中点击创建新 Agent。\n   - 每个 Agent 拥有独立的 `soul.md` (人设) 和 `memory.md` (记忆)。\n   - 分配工具权限和工作空间。\n3. **开始协作**:\n   - 在 **Plaza (广场)** 查看智能体动态和知识共享。\n   - 给智能体下达目标，它们会自动规划任务、设置触发器 (`cron`, `webhook` 等) 并执行。\n   - 智能体之间可以互相发消息、委派任务，模拟真实团队协作。\n\n### 4. 验证运行\n检查智能体是否在后台活跃：\n- 观察 **Focus Items**: 查看智能体当前追踪的任务状态 (`[ ]` 待办, `[\u002F]` 进行中, `[x]` 完成)。\n- 查看 **Reflections**: 展开查看智能体的自主推理过程和工具调用详情。\n\n现在，你已经成功部署并运行了 Clawith，可以开始构建你的多智能体团队了！","某电商技术团队需要在黑五大促期间，协调开发、运维与客服三方力量，实时监控系统稳定性并快速响应突发故障。\n\n### 没有 Clawith 时\n- **信息孤岛严重**：监控报警、代码提交与用户反馈分散在不同平台，人工难以及时关联分析，导致故障定位滞后。\n- **被动响应效率低**：工程师需时刻盯着屏幕等待指令或报警，无法主动感知系统状态变化，夜间值守压力巨大。\n- **协作流程断裂**：跨部门沟通依赖即时通讯软件刷屏，任务分配与进度追踪缺乏上下文，容易出现推诿或重复劳动。\n- **知识沉淀缺失**：每次故障处理后的经验仅停留在个人脑中，未形成组织级记忆，同类问题反复发生。\n\n### 使用 Clawith 后\n- **全域感知联动**：Clawith 为每个角色创建具备“长期记忆”的数字员工，自动聚合 GitHub 提交、Grafana 报警及客服工单，瞬间构建故障全景图。\n- **主动自适应执行**：代理不再被动等待，而是基于 `cron` 和 `webhook` 触发器主动巡检；一旦发现异常，自动创建 `[ ]` 待办事项并调用修复脚本，无需人工干预。\n- **有机协同办公**：数字员工在\"Plaza\"广场实时同步进展，运维代理可自动@开发代理指派修复任务，并跟踪状态直至标记为 `[x]` 完成，形成闭环。\n- **组织智慧传承**：所有处理逻辑与反思记录自动留存为团队知识库，新加入的代理能立即继承历史经验，避免重蹈覆辙。\n\nClawith 将分散的自动化工具升级为具有自主意识与协作能力的“数字员工团队”，让系统运维从“人找事”转变为“事找人”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdataelement_Clawith_3219b57a.png","dataelement","DataElem","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fdataelement_5365dfcf.png","",null,"dataelem.com","https:\u002F\u002Fgithub.com\u002Fdataelement",[81,85,89,93,97,100,104,107],{"name":82,"color":83,"percentage":84},"Python","#3572A5",60.9,{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",35.2,{"name":90,"color":91,"percentage":92},"CSS","#663399",1.4,{"name":94,"color":95,"percentage":96},"HTML","#e34c26",1.3,{"name":98,"color":99,"percentage":42},"Shell","#89e051",{"name":101,"color":102,"percentage":103},"Go Template","#00ADD8",0.1,{"name":105,"color":106,"percentage":103},"Dockerfile","#384d54",{"name":108,"color":109,"percentage":110},"Mako","#7e858d",0,3205,519,"2026-04-17T17:39:09","Apache-2.0","Linux, macOS, Windows","不需要本地 GPU。Clawith 不运行本地 AI 模型，所有 LLM 推理均通过外部 API 提供商（如 OpenAI, Anthropic）处理。","最低 2GB (个人试用\u002F演示)，推荐 4GB+ (1-2 个智能体)，生产环境建议 8GB+",{"notes":119,"python":120,"dependencies":121},"该工具是一个标准 Web 应用，需配合 Docker 编排使用。核心依赖包括 PostgreSQL 15+ (或 SQLite 用于测试) 和 Node.js 20+。数据持久化存储在宿主机的 .\u002Fbackend\u002Fagent_data\u002F 目录。中国用户若遇到 Docker 拉取超时，需配置 Docker 镜像加速源；若构建失败，可能需要在 Dockerfile 中替换 Debian apt 源为阿里云镜像。","3.12+",[122,123,124,125,126,86,127],"FastAPI","SQLAlchemy (async)","PostgreSQL\u002FSQLite","Redis","React 19","Node.js 20+",[13,14,35],[130,131,132,6],"agent","llm","multiagent","2026-03-27T02:49:30.150509","2026-04-18T09:19:34.696199",[136,141,146,151,156,160],{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},39558,"批量开启或关闭工具时为什么会报错？","这是由于 FastAPI 路由顺序冲突导致的。在旧版本中，参数化路由 `PUT \u002F{tool_id}` 定义在字面量路由 `PUT \u002Fbulk` 之前，导致框架尝试将 \"bulk\" 解析为 UUID 失败。解决方案是更新到最新代码，维护者已调整路由顺序（将 `\u002Fbulk` 移至 `\u002F{tool_id}` 之前）并优化了前端错误提示。更新步骤：\n1. 拉取最新代码：`git pull origin main`\n2. 重新构建前端并重启后端服务。","https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fissues\u002F261",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},39559,"为什么无法连接 ModelScope 的 MCP 服务器？","ModelScope 的 MCP 服务器使用 SSE (Server-Sent Events) 传输模式，而旧版本客户端仅支持 Streamable HTTP。维护者已在最新版本中添加了对 SSE 的自动检测和回退支持。请执行以下操作：\n1. 更新项目到最新版本（包含 commit d5905da）。\n2. 客户端现在会优先尝试 Streamable HTTP，若失败会自动切换到 SSE 模式（GET `\u002Fsse` → POST `\u002Fmessages`）。\n3. 如果仍无法连接，请检查后端日志 (`docker compose logs backend`) 并提供具体的 MCP 服务器 URL。","https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fissues\u002F67",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},39560,"遇到“无法自定义模型名称”或按钮无法点击的问题怎么办？","该问题是由开发端的误操作引起的，已在最新版本中修复。如果您遇到此问题（表现为测试按钮和保存按钮无法点击），请直接升级到最新版本即可解决，无需手动修改源代码。如果升级后问题依旧，请确认是否成功重启了服务（运行 `bash restart.sh`）。","https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fissues\u002F204",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},39561,"项目报告了严重的安全漏洞（如硬编码凭证、文件删除风险），该如何处理？","对于自动扫描工具报告的潜在安全问题，维护者建议：\n1. 不要直接采信未经验证的公开扫描报告。\n2. 如果发现具体可复现的安全问题，请提供详细的受影响文件路径、行号、复现步骤和影响评估。\n3. 对于敏感信息（如凭证泄露），请使用私密渠道披露，而不是在公开 Issue 中发布不完整的声明。\n4. 针对报告中提到的 `rm -rf` 或敏感文件操作，官方建议在配置中限制清理规则的路径范围，并对递归删除操作增加确认机制。","https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fissues\u002F381",{"id":157,"question_zh":158,"answer_zh":159,"source_url":145},39562,"如何在 MCP 配置中使用带鉴权（Authorization Header）的服务器？","目前部分带鉴权的 MCP 配置可能无法被正确识别。您可以尝试在 `mcpServers` 配置中明确指定 `headers` 字段。参考配置格式如下：\n```json\n{\n  \"mcpServers\": {\n    \"modelscope-t2i-mcp\": {\n      \"type\": \"streamable_http\",\n      \"url\": \"https:\u002F\u002Fmcp.api-inference.modelscope.net\u002Fxxxx\u002Fmcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ms-df91d-aa58-f0ca712b294e\"\n      }\n    }\n  }\n}\n```\n如果仍然无法连接，请确保已更新至支持 SSE 传输的最新版本。",{"id":161,"question_zh":162,"answer_zh":163,"source_url":140},39563,"FastAPI 路由冲突导致的 422 错误是如何产生的？","当定义类似 `\u002F{tool_id}` 的动态路由时，如果将其放在 `\u002F{action}` (如 `\u002Fbulk`) 这样的静态路由之前，FastAPI 可能会尝试将静态字符串（如 \"bulk\"）强制转换为动态路由定义的類型（如 UUID），从而抛出 422 Unprocessable Entity 错误。最佳实践是始终将字面量路径（Literal paths）定义在参数化路径（Parameterized paths）之前。在 Clawith 项目中，通过将 `\u002Fbulk` 路由移至 `\u002F{tool_id}` 之前解决了此问题。",[165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250],{"id":166,"version":167,"summary_zh":168,"released_at":169},315502,"v1.8.3-beta.2","## Bug 修复\n\n### A2A 聊天记录修复\n- **A2A 会话现在显示对话的双方内容**：当目标客服人员通过 `notify` 或 `task_delegate` 被唤醒时，其回复现在会同步显示在共享的 A2A 聊天会话中，因此管理员可以在“其他用户”选项卡中查看完整的对话记录。\n- **移除了 A2A 唤醒调用中的硬编码 2 轮工具调用限制**：此前客服人员在完成基本任务之前就会达到该限制；现在他们将使用各自可配置的 `max_tool_rounds` 设置（默认值为 50）。\n- **修复了消息加载顺序问题**：对于包含大量消息的会话（例如长时间运行的 A2A 对话线程），之前仅显示最早的 500 条消息；现在能够正确加载最新的 500 条消息。\n\n---\n完整变更日志：请参阅 [RELEASE_NOTES.md](https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fblob\u002Fmain\u002FRELEASE_NOTES.md)","2026-04-13T06:59:14",{"id":171,"version":172,"summary_zh":173,"released_at":174},315503,"v1.8.3-beta","## 新增功能\n\n### 代理间异步通信 — 测试版\n- `send_message_to_agent` 提供 **三种通信模式**：\n  - `notify` — 发送即忘，单向通知\n  - `task_delegate` — 委派任务并通过 `on_message` 触发器异步获取结果\n  - `consult` — 同步问答（原有行为）\n- **功能开关**：可在租户级别通过公司设置 → 公司信息 → A2A 异步开关进行控制（默认：**关闭**）\n- 当该功能关闭时，`msg_type` 参数会 **对 LLM 隐藏**，因此代理仅能使用同步咨询模式。\n- 安全性：链路深度保护（最多 3 跳）、内部术语正则表达式过滤、防止 SQL 注入。\n- 性能：异步唤醒会话限制为 2 轮工具调用。\n\n### 多模态图像上下文\n- Base64 格式的图像标记现在会在写入时持久化到数据库中。\n- 聊天界面会正确移除 `[image_data:]` 标记并渲染缩略图。\n- 修复了聊天页面的垂直滚动问题（通过将 flexbox 的 `min-height: 0` 约束移除）。\n- 移除了已弃用的 `\u002Fagents\u002F:id\u002Fchat` 路由。\n\n### 搜索引擎工具\n- 新增 `Exa Search` 工具 — 基于 AI 的语义搜索，支持按类别筛选。\n- 新增独立搜索引擎工具：DuckDuckGo、Tavily、Google、Bing（每个工具单独提供）。\n\n### UI 改进\n- 全应用支持拖放文件上传。\n- 聊天侧边栏优化：分段控件、会话项样式调整。\n- 代理间的会话现在可在管理员“其他用户”选项卡中查看。\n\n### 错误修复\n- DingTalk 组织同步限流，以防止 API 被限速。\n- 工具种子数据：`parameters_schema` 现在会正确包含在新工具的 INSERT 语句中。\n- 统一代码库中 `msg_type` 枚举的引用。\n- Docker 访问端口修正为 3008。\n\n---\n\n## 升级指南\n\n> **需要执行数据库迁移。** 运行 `alembic upgrade heads` 以添加 `a2a_async_enabled` 列。\n\n### Docker 部署（推荐）\n\n```bash\ngit pull origin main\n\n# 执行数据库迁移\ndocker exec clawith-backend-1 alembic upgrade heads\n\n# 重建并重启\ndocker compose down && docker compose up -d --build\n```\n\n### 源码部署\n\n```bash\ngit pull origin main\n\n# 执行数据库迁移\nalembic upgrade heads\n\n# 重建前端\ncd frontend && npm install && npm run build\ncd ..\n\n# 重启服务\n```\n\n### Kubernetes（Helm）\n\n```bash\nhelm upgrade clawith helm\u002Fclawith\u002F -f values.yaml\n# 执行迁移任务以添加 a2a_async_enabled 列\n```\n\n### 注意事项\n- A2A 异步功能 **默认关闭**。在显式启用之前，系统行为不会发生变化。\n- `a2a_async_enabled` 列的默认值为 `FALSE`，因此现有租户不受影响。","2026-04-12T16:43:45",{"id":176,"version":177,"summary_zh":178,"released_at":179},315504,"v1.8.2","# v1.8.2 版本更新日志\n\n## 新增功能\n\n### 安全性\n- **修复因用户名冲突导致的账户接管漏洞** (#300)：防止攻击者创建与现有 SSO 用户邮箱匹配的用户名，从而避免未经授权的账户访问。\n- **修复重复 SSO 登录时创建重复用户的问题**：飞书和钉钉 SSO 现在会正确复用已有账户，而不再创建重复用户。\n\n### AgentBay — 云电脑与浏览器自动化\n- **新增：`agentbay_file_transfer` 工具**：可在任意两个环境之间双向传输文件，包括代理工作区、浏览器沙箱、云桌面（电脑）或代码沙箱。\n- **修复：电脑远程控制（TC）白屏问题**：TC 现在会根据 `env_type` 正确连接到对应的环境会话（电脑或浏览器），此前浏览器会话可能会劫持电脑的 TC 连接。\n- **修复：操作系统感知的桌面路径**：`agentbay_file_transfer` 工具描述现在会自动反映代理配置的操作系统类型所对应的正确路径：\n  - Windows：`C:\\Users\\Administrator\\Desktop\\`\n  - Linux：`\u002Fhome\u002Fwuying\u002FDesktop\u002F`\n- **修复：桌面文件刷新问题**：上传至 Linux 桌面目录后，GNOME 会被通知刷新图标显示。\n- 多项远程控制稳定性修复：将 CDP 轮询替换为休眠机制，清理多标签页，设置 40 秒导航超时，修复不可哈希类型错误。\n\n### 飞书 (Lark) — CardKit 流式卡片\n- 飞书机器人响应现可通过 CardKit API 以动画打字效果的卡片形式进行流式输出 (#287)。\n- 修复了 SSE 流挂起问题以及因系统代理冲突导致的 WebSocket 代理绕过问题。\n\n### 微信企业号集成\n- 微信企业号相关功能目前隐藏在前置条件提示下（等待企业审批完成配置）。\n- 后端：完整组织同步、域名验证接口、API 访问双凭证架构。\n- Nginx：新增 `WW_verify_*.txt` 路由，用于微信企业号域名所有权验证。\n\n### 钉钉及组织同步\n- 修复了钉钉组织同步权限说明（`Contact.User.Read` 范围）。\n- 修复了飞书组织同步中 `open_id` 与 `employee_id` 用户类型的处理问题。\n\n### 其他 Bug 修复\n- **修复：SSE 流保护机制** — 为 OpenAI 和 Gemini 流添加 `finish_reason` 中断保护，防止流失控。\n- **修复：工具 `send_feishu_message` 重复问题** — 移除数据库中的重复条目，并在工具加载时增加去重保护，避免出现“工具名称必须唯一”的 LLM 错误。\n- **修复：重置密码和验证邮箱路由中 JWT 令牌未被消耗的问题**。\n- **修复：SSO 创建的用户在 `list_users` 中可能出现 NULL 用户名\u002F邮箱的问题**。\n- **修复：公司名称 Slug 生成逻辑** — 添加 `anyascii` + `pypinyin`，实现通用的中日韩字符与拉丁字符互译。\n- **修复：`publish_page` URL 生成问题** — 在源部署环境中可正确生成 `try.clawith.ai` 链接。\n- **修复：代理模板目录问题** — 为源部署环境设置动态默认值。\n- 多项国际化修复（TakeControlPanel、微信企业号、钉钉指南）。\n\n---\n\n## 升级指南\n\n> **无需数据库迁移。**","2026-04-07T16:33:26",{"id":181,"version":182,"summary_zh":183,"released_at":184},315505,"v1.8.1","# v1.8.1 发行说明\n\n> 发布日期：2026年4月3日\n\n这是一个基于 v1.8.0-beta.3 构建的稳定性与优化版本，涵盖了安全加固、飞书可靠性修复、重新设计的工具调用可视化界面、全新的文件管理工具，以及一流的 Kubernetes 部署选项。\n\n---\n\n## 亮点\n\n### 重新设计的工具调用可视化（AnalysisCard）\n\u003Cimg width=\"1452\" height=\"673\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F01f45769-6680-4f83-b811-65ef92865460\" \u002F>\n\n实时聊天视图现在以统一的 **AnalysisCard** 展示智能体的推理过程和工具调用，将交错的思考信息与工具调用消息合并为一个可折叠区块。该卡片显示：\n- 智能体运行时的脉冲 LED，完成时变为绿色\n- 折叠状态下显示当前正在使用的工具名称及工具调用次数徽章\n- 每个工具对应单独的 `\u003Cdetails>` 行，用于展示参数和结果（默认折叠）\n- 斜体显示的思考内容块，适用于长篇推理模型（深度思考）\n\n### 全新的文件管理工具\n\n所有智能体均可使用以下三个内置工具：\n- **`edit_file`** — 支持针对特定行范围的编辑操作，无需重写整个文件\n- **`search_files`** — 在工作空间内进行子字符串或正则表达式搜索\n- **`find_files`** — 基于 glob 模式的文件查找\n- **`read_file`** 现在支持 `offset` 和 `limit` 参数，便于分页读取大文件\n\n### Kubernetes 部署（Helm Chart）\n\n现已提供生产就绪的 Helm Chart，路径为 `helm\u002Fclawith\u002F`。您只需一条命令即可在任何 Kubernetes 集群上部署 Clawith：\n```bash\nhelm upgrade --install clawith helm\u002Fclawith\u002F -f values.yaml\n```\n\n### 安全修复\n\n- **跨租户数据泄露** — 原本组织成员和部门搜索会返回跨租户边界的结果。现已严格限定仅返回请求租户内的结果。（#security）\n- **平台管理员令牌作用域** — `platform_admin` 角色的 JWT 中未固定 `tenant_id`，导致存在跨租户权限提升的风险。现已修复。\n- **OrgMember 数据重复** — 频道用户在重新连接时可能创建重复的 OrgMember 记录。现已添加唯一性校验机制。\n\n### 飞书集成可靠性改进\n\n- **`feishu_doc_append` 间歇性失败** — Markdown 的 `---` 分隔符会被转换为 `block_type: 22` 类型，而飞书批量子节点 API 会拒绝此类格式。现将其渲染为文本分隔线（`────────────────────────`），确保始终被接受。\n- **移除 `index: -1` 参数** — 当 `index` 参数被省略时，飞书会默认将内容追加到末尾，从而避免了 `1770001 invalid param` 错误。\n- **过时的 `websocket_chat` 导入** — `feishu_doc_create` 曾尝试从已删除的模块中导入 `channel_feishu_sender_open_id`，导致出现可见警告。现已修复。\n- **飞书流式卡片卡顿问题** — 现有序列化补丁队列能够正确处理飞书卡片的流式更新，不再出现卡顿现象。\n- **工具状态滞留在“运行中”** — 飞书频道中的工具状态现已能正确地从“运行中”过渡到“已完成”。","2026-04-03T15:17:40",{"id":186,"version":187,"summary_zh":188,"released_at":189},315506,"v1.8.0-beta.3","# v1.8.0-beta.3\n\n## 变更内容\n\n### 新特性\n\n- **将代码执行器拆分为本地工具和 E2B 云工具** — 将原有的“代码执行器”工具拆分为两个独立的工具。本地工具显示 CPU\u002F内存\u002F网络配置；E2B 云工具仅需 API 密钥。E2B 错误现在会明确提示，不再静默回退到本地执行。\n- **MCP 服务器凭据管理** — 新增“编辑服务器”界面及 `PUT \u002Ftools\u002Fmcp-server` API 端点，用于批量更新共享同一服务器的所有工具的 MCP 服务器 URL 和 API 密钥。\n- **飞书 Wiki 文档创建** — `feishu_doc_create` 现在支持直接在 Wiki 知识库中创建文档，并自动检测 Wiki 节点令牌。\n- **飞书权限 JSON 界面重新设计** — 飞书应用权限配置采用双层分段控件（基础 \u002F 完整），并支持多语言国际化。\n- **实时预览自动调整大小** — AgentBay 实时预览面板现可自动调整为聊天容器宽度的 50%。\n\n### Bug 修复\n\n- **明文 SMTP 中继支持** — 现在会根据服务器的 ESMTP 功能自动协商 STARTTLS，而不再强制在端口 25\u002F587 上启用。对于未认证且已列入 IP 白名单的内部中继，将跳过 AUTH 认证。邮件配置中密码字段不再是必填项。\n- **统一上下文窗口大小** — 引入 `DEFAULT_CONTEXT_WINDOW_SIZE = 100` 常量，使所有 9 种通信渠道（WebSocket、飞书、Discord、企业微信、钉钉、Teams、Slack）使用一致的默认值。\n- **LLM 流式响应重试** — 在流式响应重试逻辑中添加了 `httpx.RemoteProtocolError`，以处理上游连接重置的情况。\n- **工具配置双重加密** — 修复了一个已在保存时被加密的敏感配置字段再次被加密的 bug。\n- **Loguru 格式冲突** — 在所有通道处理器中将 `logger.error(..., exc_info=True)` 替换为 `logger.exception(...)`，以防止错误信息包含特殊字符时导致程序崩溃。\n- **企业微信消息处理器** — 修复了 `NameError`（`agent` 与 `agent_obj` 的混淆），并将用户创建逻辑迁移到 `channel_user_service`，以避免 AssociationProxy 错误。\n- **工具定义重复** — 从 `_ALWAYS_INCLUDE_CORE` 中移除 `send_channel_message`，以防止出现“工具名称必须唯一”的 LLM 错误。\n- **AgentBay 连接测试** — 修正了测试镜像名称（`linux_latest`）以及全局工具配置回退中的 `api_key` 查找问题。\n- **FastAPI 路由顺序** — 将 `\u002Ftools\u002Fmcp-server\u002Fbulk` 路由置于 `\u002Ftools\u002F{tool_id}` 之前，以避免在较旧版本的 FastAPI 上出现 422 验证错误。\n- **其他修复** — LLM 模型温度持久化、org_admin 对 GitHub\u002FClawHub 凭据的访问权限、MCP 工具导入的租户范围控制等。\n\n### UI \u002F i18n\n\n- **上下文窗口大小术语** — 将误导性的“最大轮次”\u002F“上下文轮次”标签修正为行业标准的“上下文窗口大小”，并附上准确的描述。\n- **MCP 服务器分组标题** — 显示主机名而非完整 URL，使展示更加简洁。\n\n## 升级","2026-04-02T14:46:10",{"id":191,"version":192,"summary_zh":193,"released_at":194},315507,"v1.8.0-beta.2","了解更多新功能，请访问：https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Freleases\u002Ftag\u002Fv1.8.0-beta\n\n### 🐛 问题修复\n* **SSO**：修复了新用户首次通过飞书扫码登录时出现的 500 错误（`UnboundLocalError`）。\n* **SSO**：修复了在异步懒加载过程中因 `MissingGreenlet` 异常导致 SSO 轮询端点无法重定向的问题。\n* **SSO**：移除了 SSO 回调处理期间短暂出现的“无 SSO 提供者”界面闪现。\n* **应用上下文**：修复了在“接管控制”Cookie 导出和注入过程中发生的跨会话状态损坏问题。\n* **应用上下文**：为 Cookie 域名添加了前导点，以更好地匹配子域名。\n* **接管控制**：将所需的代理锁定权限要求从 `manage` 放宽至 `use`。\n\n### 📦 配置\n* 在 `docker-compose.yml` 中新增了 `PUBLIC_BASE_URL` 和 `PASSWORD_RESET_TOKEN_EXPIRE_MINUTES` 环境变量配置。","2026-04-01T17:22:28",{"id":196,"version":197,"summary_zh":198,"released_at":199},315508,"v1.8.0-beta","# v1.8.0-beta 版本更新说明\n\n此测试版为 Clawith 带来了多项重大新功能，包括全新设计的身份系统、AgentBay 云电脑可视化控制、全新的邮件通知系统、更丰富的飞书集成、全平台分析功能，以及众多用户体验优化。\n\n---\n\n## 新增功能\n\n### 1. AgentBay：云电脑可视化控制\n\n代理与计算机交互的重大飞跃：\n\u003Cimg width=\"2936\" height=\"1614\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fe5ab8679-23e1-41ad-97b1-92202c8d94cc\" \u002F>\n\u003Cimg width=\"1463\" height=\"782\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F18d1ca07-3907-46df-ad2e-7b6ef1e5d299\" \u002F>\n\n- **实时预览面板** — 通过可拖动的侧边栏实时观看代理操作，该侧边栏会流式传输云浏览器或桌面的截图。\n- **视觉注入** — 浏览器和桌面截图仅在内存中短暂保存（不写入磁盘），并作为多模态输入注入到大模型中，从而实现对屏幕状态的视觉推理。\n- **接管控制 \u002F 保存登录状态** — 用户可以通过键盘和鼠标无缝接管代理的远程会话，执行手动步骤（如验证码、二维码扫描）。基于 Cookie 的登录状态可以保存下来，并由代理重复使用。\n\n\u003Cimg width=\"2916\" height=\"1596\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F4df17e59-2f21-4e82-841c-4ab5f9d3f339\" \u002F>\n\u003Cimg width=\"2796\" height=\"1590\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ffb79998b-fbc2-4dcc-9341-13956f0cce68\" \u002F>\n\n- **新增 16+ 款 AgentBay 工具** — 浏览器内容提取、观察、Shell 命令、支持 OTP 的键盘输入、`browser_login`、`agentbay_browser_screenshot` 等。\n- **Windows 云桌面支持** — AgentBay 云电脑会话全面支持 Windows 操作系统。\n\n### 2. 统一身份系统与多租户认证\n\n对认证和用户管理架构进行了彻底重构：\n\n- **全局身份（跨租户）** — 新增 `identities` 表，统一各组织间的凭据。一个邮箱和密码即可在用户所属的所有公司间通用。\n- **租户切换弹窗** — 重新设计了公司切换界面，内置加入\u002F创建流程。\n- **邀请流程修复** — 当现有用户点击邀请链接时，登录后将自动加入被邀请的公司。\n- **SSO 切换开关** — 支持按渠道开启或关闭 SSO 登录，并能自动检测子域名及生成回调 URL。\n\n### 3. 平台邮件系统\n\n- 通过邮件进行密码重置（包含品牌化模板的完整重置流程）。\n- 向所有平台用户发送广播通知邮件。\n- 在应用内提供 SMTP 配置界面，路径为 **平台设置 → 邮件**，无需重启 `.env` 文件。\n- 提供测试邮件按钮及可自定义的邮件模板。\n- 即使未配置 SMTP，也能自动验证邮箱并激活用户。\n\n### 4. 飞书集成扩展\n\n- **Bitable** — 列出表格和字段、查询\u002F创建\u002F更新\u002F删除记录、创建新的…","2026-04-01T16:01:31",{"id":201,"version":202,"summary_zh":203,"released_at":204},315509,"v1.7.2","# v1.7.2\n\n## 亮点\n\n- **Discord 网关（WebSocket）** — 无需公网 IP 即可连接 Discord 机器人。可通过频道设置进行配置。\n- **Clawith 页面** — 客服人员可以发布静态 HTML 页面，并生成可分享的 `\u002Fp\u002F{short_id}` URL。\n- **统一通知系统** — 支持广场回复、@提及、广播以及心跳耗尽通知，并提供分类筛选功能。\n- **百度（千帆）LLM 提供商** — 在 OpenAI、Anthropic 等基础上新增百度模型支持。\n- **LLM 温度控制** — 可在 LLM 管理页面为每个模型单独设置温度。\n- **OpenClaw 设置页** — 专为 OpenClaw 集成设计的 API 密钥管理界面。\n- **平台设置重构** — 将“公司”页面重新组织为基于标签页的平台设置布局。\n- **运行版本显示** — `\u002Fapi\u002Fversion` 端点和侧边栏页脚会显示当前运行的版本。\n\n## Bug 修复\n\n- 修复心跳\u002F调度工具调用因参数为空而失败的问题（从聊天流程中移植了空参数保护机制）。\n- 修复客服间会话重复及 LLM 工具混淆问题。\n- 通过租户隔离和关系检查，强化 A2A 通信安全性。\n- 修复 A2A LLM 超时重试逻辑，加入抖动并提升错误提示。\n- 修复系统消息始终置于首位以确保跨模型兼容性。\n- 修复切换会话时流式状态未重置的问题。\n- 修复重启后触发器恢复的问题。\n- 修复非标准 API 流式传输中的 JSON 缓冲问题。\n- 修复广场租户作用域及 @提及导航问题。\n- 修复 OpenClaw 客服回复未显示在聊天界面的问题。\n- 修复按参与者对齐聊天消息的问题。\n- 改进广播 UI 和 @提及下拉菜单（支持滚动，增加上限）。\n\n## 数据库迁移\n\n启动时会自动执行三条新的 Alembic 迁移：\n\n1. `add_published_pages` — 创建 `published_pages` 表。\n2. `add_notification_agent_id` — 向 `notifications` 表添加 `agent_id` 和 `sender_name` 列；并将 `user_id` 设为可空。\n3. `add_llm_temperature` — 向 `llm_models` 表添加 `temperature` 列。\n\n所有迁移均为幂等操作，可安全重复执行。\n\n## 新依赖\n\n- `discord.py>=2.3.0` — Discord 网关模式所需。\n\n## 基础设施\n\n- 所有 Docker 服务现均设置为 `restart: unless-stopped`。\n- 更新 `.dockerignore` 文件，将 `agent_data\u002F` 排除在构建上下文之外。\n- 移除 `entrypoint.sh` 中的旧版计划任务到触发器迁移逻辑（已于 v1.7.0 中完成）。\n- `restart.sh` 现支持外部 `DATABASE_URL`。\n\n## 升级说明\n\n> **重要提示**：用户必须逐版本升级（例如，v1.6.0 → v1.7.0 → v1.7.1 → v1.7.2）。不支持跳过版本升级。\n\n### 方案 A：Docker 部署\n\n```bash\ncd \u002Fpath\u002Fto\u002FClawith\ngit pull origin main\ndocker compose down\ndocker compose up -d --build\n```\n\n迁移将通过 `entrypoint.sh` 自动执行。需使用 `--build` 标志以安装新的 `discord.py` 依赖。\n\n### 方案 B：源码部署\n\n```bash\ncd \u002Fpath\u002Fto\u002FClawith\ngit pull origin main\n\n# 安装新依赖\ncd backend\npip install -e .   # 或：pip install .\n\n# 执行数据库迁移\nalembic upgrade head\n\n# 重启后端\n# (your ","2026-03-22T15:05:21",{"id":206,"version":207,"summary_zh":208,"released_at":209},315510,"v1.7.1","# Clawith v1.7.1 发行说明\n\n## 新增功能\n\n### ClawHub 技能市场\n- 直接从 ClawHub（OpenClaw 技能注册表）浏览和安装技能\n- 可从任意 GitHub URL 导入技能\n- 支持配置 ClawHub API 密钥，以进行认证访问技能注册表\n- 支持为租户配置 GitHub 令牌，以获得更高的 API 调用速率限制\n- 技能租户隔离——导入的技能会正确地限定在导入公司的作用域内\n\n### 飞书用户身份架构修复\n将飞书用户的主标识由 `open_id`（按应用区分、不稳定）替换为 `user_id`（跨应用、稳定）。此次修复解决了以下问题：\n- 切换飞书应用或使用多个机器人时出现的用户记录重复问题\n- 当组织同步应用与代理机器人应用不同时产生的跨应用错误\n- 会话碎片化问题——聊天历史现在可在不同应用之间保持统一\n\n所有更改均包含对尚未启用 `user_id` 权限环境的 `open_id` 回退机制。\n\n### 日志系统全面升级\n- 统一日志系统，采用 loguru 并支持 Trace ID 进行请求追踪\n- 增加 LLM 请求 ID 追踪，便于调试模型交互\n- 全平台错误信息优化提升\n\n### 问题修复\n- 修复多位数通知徽章显示拥挤的问题\n- 解决输入法编辑状态下按下 Enter 键发送消息的冲突问题\n- 修正代理头像中表情符号作为首字符的处理问题\n- 修复代理创建验证错误提示信息\n- 修正侧边栏代理排序方式（现按创建时间降序排列）\n- 修复 ClawHub 429 调用频率限制的处理逻辑\n- 将收起状态下的代理头像居中显示\n- 防止保存 ClawHub 密钥时清空 GitHub 令牌\n\n---\n\n## 升级指南\n\n> **重要提示**：用户必须逐版本升级（例如，v1.6.0 -> v1.7.0 -> v1.7.1）。不支持跳过版本直接升级。\n\n### 方案 A：Docker 部署（推荐）\n\n1. **拉取最新代码**：\n   ```bash\n   git pull origin main\n   ```\n\n2. **检查环境变量**（可选）：\n   ```bash\n   diff .env .env.example\n   ```\n\n3. **重建并重启服务**：\n   ```bash\n   docker compose down\n   docker compose up -d --build\n   ```\n   > 启动过程中，`entrypoint.sh` 会自动执行 `alembic upgrade head` 和数据迁移脚本，无需手动干预。\n\n4. **飞书 user_id 迁移**（可选但建议）：\n\n   如果您使用飞书组织同步功能，请运行此一次性迁移脚本来补全 `user_id` 并清理重复用户：\n   ```bash\n   docker exec clawith-backend-1 python3 -m app.scripts.cleanup_duplicate_feishu_users\n   ```\n\n   > **前提条件**：您的飞书组织同步应用必须具备 `contact:user.employee_id:readonly` 权限。如缺失，请在 [飞书开放平台](https:\u002F\u002Fopen.feishu.cn\u002F) 中添加该权限，并在运行脚本前通过公司设置 > 组织架构 > 立即同步重新同步数据。\n\n5. **验证**：访问前端界面，确认侧边栏页脚处显示的版本号为 `1.7.1`。\n\n---\n\n### 方案 B：源码部署\n\n1. **拉取最新代码**：\n   ```bash","2026-03-19T07:44:22",{"id":211,"version":212,"summary_zh":213,"released_at":214},315511,"v1.7.0","# Clawith v1.7.0 发行说明\n\n🏢 **多租户自注册系统**\n用户现在可以独立创建自己的公司\u002F工作空间，无需邀请码！用户创建的工作空间仍可通过邀请码邀请他人加入。新增独立的“平台管理员”管理页面，用于组织层面的监管。数据现已按公司完全隔离——标志着系统从单租户架构向真正的多租户 SaaS 架构转变。\n\n🦞 **OpenClaw 代理集成**\n您现在可以连接本地部署的 OpenClaw 实例！Clawith 通过 Gateway 与 OpenClaw 进行通信，打破平台边界，使 Clawith 能够管理 OpenClaw 代理。\n\n💬 **钉钉与企业微信渠道**\n新增钉钉流式集成，并为企业微信（WeCom）提供 Webhook + WebSocket 集成。飞书（Lark）集成已升级为优先使用 WebSocket。此举覆盖了中国主流的三大企业沟通平台，实现代理的无缝接入。\n\n🔌 **MCP SSE 传输 + 自动 OAuth 恢复**\nMCP 客户端现支持服务器发送事件（SSE）传输。新增在 Smithery OAuth 令牌过期时自动重新授权的功能。\n\n🧠 **LLM 备用模型 + 每模型 Token 配置**\n当主模型不可用时，系统会自动切换到预定义的备用模型。新增支持按模型分别配置 `max_output_tokens` 的功能。\n\n🔔 **通知与审批系统**\n统一的通知中心，配备创建者级别的审批流程。工具操作现可设置为仅在人工批准后自动执行——为自主代理行为增设安全阀，确保人类始终是最终决策者。\n\n💭 **聊天体验增强**\n- 新增“停止生成”按钮。\n- 支持一次性上传最多 10 个文件。\n- 添加消息时间戳。\n- 优化 PDF 文档解析与上传功能。\n- 准确实时追踪 Token 使用情况。\n\n🔧 **其他优化**\n持续进行代码重构及后台性能优化。\n\n---\n\n## 🛠️ 升级指南\n\n### 方案 A：Docker 部署（推荐）\n\n1. **拉取最新代码**：\n   ```bash\n   git pull origin main\n   ```\n\n2. **检查环境变量**（可选）：\n   ```bash\n   # 注意 .env.example 中新增的 AGENT_DATA_DIR；如有需要，请更新您的 .env。\n   diff .env .env.example\n   ```\n\n3. **重建并重启服务**：\n   ```bash\n   docker compose down\n   docker compose up -d --build\n   ```\n   > 启动过程中，`entrypoint.sh` 将自动运行 `alembic upgrade head` 及新的 `migrate_schedules_to_triggers.py` 脚本，无需手动干预。\n\n4. **验证升级**：\n   访问前端页面，确认在“企业设置”中可以看到新的“AdminCompanies”面板。若存在，则表明升级成功。\n\n---\n\n### 方案 B：源码部署\n\n源码部署现同样受益于全自动化的数据脚本。只需拉取代码、更新依赖项，然后重启即可。","2026-03-16T15:39:07",{"id":216,"version":217,"summary_zh":218,"released_at":219},315512,"v1.6.0","## Clawith v1.6.0\n\n### New Features\n\n**Feishu \u002F Lark Deep Integration**\nComplete Feishu integration with calendar, document, and contacts tools — all visible and configurable in the agent's Tools page:\n- `feishu_calendar_create\u002Flist\u002Fupdate\u002Fdelete` — Create and manage calendar events, invite colleagues by name\n- `feishu_doc_read\u002Fcreate\u002Fappend` — Read, create, and append content to Feishu documents\n- `feishu_user_search` — Search the Feishu directory by name to find colleagues' open_id, email, and department\n- `send_feishu_message` — Message colleagues directly through Feishu\n- **Rich text (Post) messages** — Agents process Feishu post messages with mixed image+text, including vision understanding\n- **File support** — Receive files sent via Feishu, auto-fallback to download URL when upload permission is insufficient\n- **Message history** — Outgoing Feishu messages are persisted to chat history with agent identity signature\n- **Organization sync** — Feishu webhook auto-resolves sender identity and creates\u002Flinks platform user accounts\n- Feishu tools are only available to agents with a configured Feishu channel (automatically filtered)\n\n**Email Tools (IMAP\u002FSMTP)**\nAgents can now send, read, and reply to emails directly. Supports QQ Mail, 163, Gmail, Outlook, Tencent Enterprise, Aliyun Enterprise, and custom SMTP\u002FIMAP configurations. Includes a one-click \"Test Connection\" button in the tool settings panel.\n- `send_email` — Send emails with subject, body, CC, and workspace file attachments\n- `read_emails` — Read inbox with IMAP search criteria (FROM, SUBJECT, SINCE)\n- `reply_email` — Reply to a specific email maintaining thread headers\n\n**Agent-to-Agent Tool Calling**\nWhen one agent sends a message to another agent via `send_message_to_agent`, the target agent now has full access to all its tools (search, code execution, file operations, etc.). Previously, agent-to-agent communication was limited to a single text-only LLM call with no tool support. The target agent can now execute up to 5 rounds of tool calls before responding.\n\n**Token Usage Tracking**\n- Added lazy daily\u002Fmonthly token counter reset — counters automatically reset on the first API call of a new day or month\n- Added `tokens_used_total` (lifetime counter) that never resets\n- Token numbers now display with K\u002FM suffixes (e.g., `142.5K`, `3.1M`) instead of raw numbers\n- New \"Total Token\" card on the Agent Status page\n\n**Multi-Session Web Chat**\nComplete redesign of the Chat tab with a session sidebar. Users can create multiple chat sessions with the same agent, and admins can view all users' sessions via the \"All Users\" tab with a user filter dropdown.\n\n**Agent Expiry Management**\nAdmins can now set, extend, shrink, or remove agent expiration dates via a modal editor. Expired agents reject WebSocket connections, channel messages receive an \"unavailable\" reply, and scheduled triggers are automatically skipped.\n\n**Jina AI Search & Reader**\nReplaced the old `bing_search` and `read_webpage` tools with superior Jina AI alternatives:\n- `jina_search` — High-quality internet search via s.jina.ai\n- `jina_read` — Clean markdown extraction from any URL via r.jina.ai\n- System prompt now explicitly lists web search capabilities so agents proactively use search tools\n\n**Document Parsing**\nAdded `read_document` tool supporting PDF, Word (.docx), Excel (.xlsx), and PowerPoint (.pptx) file parsing. Enhanced DOCX reader extracts tables, text boxes, and headers (critical for resume-style documents).\n\n**Channel File Support**\nAgents can now receive files sent through Feishu, Slack, and Discord channels. The `send_channel_file` tool enables agents to send workspace files back to users through any connected channel.\n\n**Per-Agent Tool Configuration**\nAgents now have individual tool configurations. Admins can scope which MCP tools are available to each agent, configure tool-specific settings (API keys, limits), and view all agent-installed tools in a unified admin panel.\n\n### Improvements\n\n- **Tool UI Visibility** — All tools (including Feishu, email, pulse, social, code, discovery) now show proper category labels in the Tools page\n- **Chat Overflow Fix** — Long tool call arguments no longer cause horizontal scrollbars in the chat window\n- **Approval System** — Approvals now show the agent name, and admins can see all pending approvals across agents\n- **WebSocket Performance** — WebSocket connections now accept immediately before DB setup, reducing `onopen` latency from ~5s to \u003C100ms\n- **Tool Result Display** — Full tool results shown in chat (removed 500-char truncation, expanded to 3000 chars in WebSocket, 240px height in UI)\n- **Channel Session Tracking** — Unified session management across Feishu, Slack, and Discord with proper sender attribution and channel badges\n- **Heartbeat Default** — Changed default heartbeat interval from 30 to 120 minutes\n- **Markdown Rendering** — Improved markdown table borders, code blocks, and overall formatting in chat\n- **Branding** — Update","2026-03-13T02:31:12",{"id":221,"version":222,"summary_zh":223,"released_at":224},315513,"v1.5.1","## Clawith v1.5.1\n\n### New Features\n\n**Agent Thinking Indicator**\nWhen chatting with an agent in the web interface, a \"Thinking...\" indicator with animated pulsing dots now appears immediately after sending a message. The indicator persists throughout the entire agent processing pipeline — thinking, tool calls, and content generation — until the final response arrives. This provides clear visual feedback so users know the agent is actively working.\n\n- Animated pulsing dots with localized text (\"Thinking...\" \u002F \"思考中...\")\n- Covers both the AgentDetail chat panel and standalone Chat page\n- `chatWaiting` state ensures the indicator is visible from message send through `done` event\n\n**Microsoft Teams Integration**\nAdded support for Microsoft Teams as a communication channel. Agents can now be connected to Teams via Azure Bot Service, enabling direct messaging through the Teams client.\n\n- Single-tenant Azure AD app registration support\n- Localtunnel support for local development testing\n- Step-by-step setup guide in all 5 languages (EN, 中文, 日本語, 한국어, Español)\n\n### Improvements\n\n- **README**: Updated all 5 language versions to highlight Aware as the primary differentiator\n- **i18n**: Added `agent.chat.thinking` key for EN and Chinese\n\n### Full Changelog\nhttps:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fcompare\u002Fv1.5.0...v1.5.1","2026-03-12T01:52:13",{"id":226,"version":227,"summary_zh":228,"released_at":229},315514,"v1.5.0","# Clawith v1.5.0 Release\n\n**Release Date**: 2026-03-11  \n**Version**: v1.5.0  \n**Focus**: Aware — Adaptive Autonomous Consciousness for AI Agents\n\n## Summary\n\nv1.5.0 introduces **Aware**, a fundamental redesign of how AI agents perceive and respond to the world. Moving beyond the rigid heartbeat model, Aware gives agents a lightweight, event-driven consciousness loop that scans every 15 seconds — but only invokes the LLM when a trigger actually fires. This release also includes timezone support, webhook triggers, user account management, and significant UI\u002FUX refinements.\n\n---\n\n## Key Highlights\n\n### 1. Aware — Adaptive Autonomous Consciousness\n\nAware is the agent's autonomous awareness system. Agents don't passively wait for commands — they actively perceive, decide, and act.\n\n- **Focus Items**: Agents maintain a structured working memory of what they're currently tracking, with status markers (`[ ]` pending, `[\u002F]` in progress, `[x]` completed).\n- **Focus-Trigger Binding**: Every task-related trigger **must** have a corresponding Focus item. Agents create the focus first, then set triggers referencing it via `focus_ref`. When a focus is completed, the agent cancels its triggers. System triggers (e.g., heartbeat) are exempt.\n- **Self-Adaptive Triggering**: Agents don't just execute pre-set schedules — they dynamically create, adjust, and remove their own triggers as tasks evolve. The human assigns the goal; the agent manages the schedule.\n- **Six Trigger Types**:\n  - `cron` — Recurring schedule (e.g., every day at 9am)\n  - `once` — Fire once at a specific time\n  - `interval` — Every N minutes\n  - `poll` — HTTP endpoint monitoring with JSON path change detection\n  - `on_message` — Wake when a specific agent or human user replies\n  - `webhook` — Receive external HTTP POST events (auto-generated URL for GitHub, Grafana, CI\u002FCD, etc.)\n- **Reflections**: A dedicated view showing the agent's autonomous reasoning during trigger-fired sessions, with expandable tool call details (name, arguments, results) rendered in a clean, compact style.\n\n### 2. Webhook Triggers\n\nAgents can now receive events from external systems.\n\n- **Auto-Generated URLs**: When an agent creates a `webhook` trigger, the system generates a unique callback URL that can be configured in GitHub, Grafana, CI\u002FCD pipelines, etc.\n- **SSRF Protection**: Webhook endpoints are validated against internal network ranges.\n- **Rate Limiting**: Webhook triggers include configurable rate limits with audit logging.\n\n### 3. Timezone Support\n\n- **Company-Level Timezone**: Set a default timezone in Enterprise Settings.\n- **Agent-Level Override**: Each agent can have its own timezone, falling back to the company default.\n- **Cron Awareness**: Trigger scheduling respects the agent's configured timezone.\n\n### 4. Feishu Rich Text & Vision\n\n- **Post Messages**: Agents can now receive and process Feishu \"post\" (rich text) messages containing both images and text.\n- **Vision Support for Feishu**: Image attachments in Feishu messages are automatically converted to the OpenAI Vision API format.\n\n### 5. User Experience Improvements\n\n- **Aware Tab**: Single-page layout with collapsible card sections for Focus Items, Standalone Triggers, and Reflections. Includes \"show more\u002Fless\" pagination (default 5 items), smart sorting (enabled triggers first, incomplete focus items first).\n- **Chat Timestamps**: Messages now display send timestamps.\n- **Welcome Messages**: Agents can have a configurable welcome message shown to new chat sessions.\n- **User Account Settings**: Users can change their display name and password from a profile settings page.\n- **Agent Sidebar Grouping**: Agents are visually grouped with improved scrollable layout.\n- **Sticky Settings Header**: The settings tab header stays fixed while scrolling through configuration.\n- **Collapsible Channel Sections**: Slack, Discord, and Feishu configuration sections are now collapsible.\n- **Error Boundary**: AgentDetail page now has an error boundary to prevent white screens on API failures.\n- **Inline Relationship Editing**: Edit human and agent-to-agent relationships directly from the UI.\n\n### 6. Platform & DevOps\n\n- **License Change**: MIT → Apache 2.0.\n- **Docker Bind Mounts**: Agent data directories are now mounted as bind mounts for direct host access.\n- **Nginx Upload Limit**: Increased from 100MB to 500MB.\n- **LLM Debug Tracing**: Backend logs now capture all response headers (including provider-specific IDs like `x-infron-request-id`) and surface them in error messages for easier production debugging.\n- **Human-Readable Validation Errors**: Pydantic validation errors now display as `field: message` instead of `[object Object]`.\n- **Top Notification Bar**: Admins can configure a site-wide notification bar from Enterprise Settings.\n- **Send Web Message Tool**: Agents can proactively push messages to web users via `send_web_message`.\n\n---\n\n## Migration Notes\n\n- **No breaking schema changes** in this release.\n- If upgradi","2026-03-10T18:09:02",{"id":231,"version":232,"summary_zh":233,"released_at":234},315515,"v1.4.0","# Clawith v1.4.0 Release\n\n**Release Date**: 2026-03-08  \n**Version**: v1.4.0  \n**Focus**: Participant Abstraction Layer · Agent-to-Agent Chat · Multimodal Vision\n\n## Summary\n\nv1.4.0 introduces the **Participant abstraction layer**, enabling agents to have first-class identities on par with users. Agent-to-agent conversations are now properly stored, queried, and displayed in the Chat UI. This release also adds **multimodal vision support**, allowing agents to process and understand images.\n\n> [!WARNING]\n> **Breaking Change**: This release removes the deprecated `messages` table and introduces the `participants` table with schema changes to `chat_sessions` and `chat_messages`. A data migration script **must** be executed after upgrading. See [Migration Guide](#migration-guide) below.\n\n---\n\n## Key Highlights\n\n### 1. Participant Abstraction Layer\n\nAgents now have their own identity records alongside users, managed through a new `participants` table.\n\n- **Unified Identity**: Both users and agents are represented as `Participant` records with `type` (user\u002Fagent), `display_name`, and `avatar_url`.\n- **Auto-Lifecycle**: Participant records are automatically created during user registration and agent creation, synced on updates, and cleaned up on deletion.\n- **Future-Ready**: Lays the groundwork for agents to act as approvers, independent collaborators, and autonomous actors in workflows.\n\n### 2. Agent-to-Agent Chat Improvements\n\nAgent conversations are now fully visible and properly rendered in the Chat UI.\n\n- **Dual Visibility**: Agent-to-agent sessions now appear in **both** participating agents' Chat tabs (under \"All Users\").\n- **Scope Separation**: Agent-to-agent sessions are excluded from \"My Sessions\" — they only appear under \"All Users\", keeping the personal session list clean.\n- **Tool Call Rendering**: Inline tool calls (e.g., `web_search`, `read_file`) in agent conversations are parsed and rendered with the ⚡ collapsible UI blocks instead of raw text.\n- **Sender Identity**: Each message in agent conversations displays the sending agent's name with a 🤖 label.\n- **Read-Only View**: Agent-to-agent conversations open in read-only mode with proper Markdown rendering.\n\n### 3. Multimodal Vision Support\n\nAgents can now see and understand images when powered by vision-capable models.\n\n- **Vision Toggle**: A new `supports_vision` flag on the LLM model pool allows per-model vision enablement.\n- **Image Upload**: Chat file uploads automatically encode images as base64 data URLs for the Vision API.\n- **Auto-Conversion**: The `call_llm` function detects `[image_data:...]` markers and converts them to OpenAI Vision API format (content array with `image_url` parts).\n- **UI Indicators**: Vision-capable models display a 👁 badge in the model list, and uploaded images show as thumbnails in the chat window.\n\n### 4. WebSocket Stability\n\n- **Setup Failed Fix**: Backend now sends close code `4002` on configuration errors (no model, setup failure), and the frontend stops reconnecting immediately.\n- **Error Deduplication**: Repeated identical error messages no longer pile up in the chat window.\n\n---\n\n## Infrastructure Changes\n\n| Area | Change |\n|------|--------|\n| **New Table** | `participants` — unified identity for users and agents |\n| **Modified Table** | `chat_sessions` — added `participant_id`, `peer_agent_id` columns |\n| **Modified Table** | `chat_messages` — added `participant_id` column |\n| **Modified Table** | `llm_models` — added `supports_vision` column |\n| **Removed Table** | `messages` — deprecated, replaced by `chat_sessions` + `chat_messages` |\n| **Removed File** | `app\u002Fmodels\u002Fmessage.py` — model for deprecated `messages` table |\n| **Modified File** | `entrypoint.sh` — replaced `message` import with `participant` |\n\n### Files Changed (24 files, +679 \u002F -329)\n\n**Backend**: `chat_sessions.py`, `websocket.py`, `auth.py`, `agents.py`, `activity.py`, `messages.py`, `upload.py`, `enterprise.py`, `agent_tools.py`, `supervision_reminder.py`, `agent_seeder.py`, `seed.py`, `main.py`, `entrypoint.sh`, `alembic\u002Fenv.py`, `alembic\u002Fversions\u002Fadd_participants.py`  \n**Models**: `participant.py` (new), `chat_session.py`, `audit.py`, `llm.py`, `message.py` (deleted)  \n**Frontend**: `AgentDetail.tsx`, `Chat.tsx`, `EnterpriseSettings.tsx`\n\n---\n\n## Migration Guide\n\n> [!CAUTION]\n> The migration script below is **required** for existing installations upgrading to v1.4.0. It creates the new `participants` table columns, backfills identity records, and removes the deprecated `messages` table.\n\n### For Docker Compose Deployments\n\nAfter pulling the latest code and rebuilding containers:\n\n```bash\n# 1. Pull latest code and rebuild\ncd \u002Fpath\u002Fto\u002FClawith\ngit pull origin main\ndocker compose up --build -d\n\n# 2. Wait for backend to start\nsleep 15\n\n# 3. Run the migration script\ndocker compose exec -T postgres psql -U clawith -d clawith \u003C\u003C 'EOSQL'\n\n-- ============================================\n-- Clawith v1.4.0 Migration Script\n-- ======================","2026-03-08T08:37:04",{"id":236,"version":237,"summary_zh":238,"released_at":239},315516,"v1.3.0","## 🔧 Editable Channel Configurations\n\nChannel integrations (Feishu \u002F Slack \u002F Discord) can now be edited without disconnecting. Click **Edit** to modify credentials in-place with pre-filled fields. Sensitive key fields include an eye icon to toggle visibility.\n\n## 📤 Agent → Feishu File Delivery\n\nAgents can now send generated files directly to Feishu users via the `send_channel_file` tool. If the app lacks `im:resource` permission, it gracefully falls back to sending a download link with setup guidance.\n\n## 🛠️ Feishu Setup Guide Improvements\n\n- **One-click Permission JSON** — copy & paste into Feishu's 'Bulk Import\u002FExport Permissions' dialog to configure all 9 required permissions at once\n- Corrected Step 5 menu path: `事件与回调 → 事件配置 → 订阅方式` (was incorrectly listed as `事件订阅`)\n- Fixed i18n: JSON block header and copy button now display in the correct language\n\n## 🏗️ Infrastructure Stability\n\n- **Entrypoint robustness**: runs `create_all` and column patches before Alembic stamp — fixes fresh-install crashes\n- **Line-ending enforcement**: `.gitattributes` enforces LF to prevent Bash crashes on Linux from CRLF scripts\n- **Tool list fix**: `send_channel_file` and `write_file` now always injected into agent tool list regardless of DB tool config\n\n## Bug Fixes\n\n- Fixed Slack file download failing on SSO HTML redirect masquerading as HTTP 200\n- Fixed `NameError` crash on `datetime` import in Slack message handler  \n- Fixed Feishu background file task using wrong DB session scope\n- Fixed eye-icon misalignment in Slack\u002FDiscord\u002FFeishu config forms","2026-03-07T07:21:14",{"id":241,"version":242,"summary_zh":243,"released_at":244},315517,"v1.2.0","## 🎉 What's New in v1.2.0\n\n### 🤖 Discord & Slack Integration\n- **Discord Bot**: Full slash command (`\u002Fask`) support via Interactions Endpoint\n- **Auto-registration**: `\u002Fask` command is automatically registered with Discord API on config save\n- **Slack & Discord in Chat tab**: Conversations now appear in the agent Chat history tab alongside Feishu and web chats\n- **Detailed setup guides**: Step-by-step configuration instructions for Slack, Discord, and Feishu (collapsible, i18n, shown in both configured and unconfigured states)\n- **Copy button fix**: Webhook URL copy button now shows green ✓ feedback on click\n\n### 📄 Document Reading (`read_document` tool)\n- **New libraries**: Added PDF (pdfplumber), Word (python-docx), Excel (openpyxl), PowerPoint (python-pptx) processing\n- **Enhanced DOCX extraction**: Now extracts content from tables, text boxes, and headers\u002Ffooters — handles resume\u002Freport layouts that use table-based formatting\n- **max_chars respected**: The max_chars parameter is now correctly passed through to the document reader (default 8000, up to 20000)\n\n### 🔍 Jina AI Search & Read Tools\n- **jina_search**: Replaced bing_search\u002Fweb_search with Jina AI Search (s.jina.ai) — higher quality results with full page content\n- **jina_read**: Replaced read_webpage with Jina AI Reader (r.jina.ai) — cleaner markdown extraction from URLs\n- Both tools support optional Jina AI API key for higher rate limits\n\n### 🛠️ UI \u002F UX Improvements\n- **Full tool result display**: Tool call outputs in chat now show up to 3000 chars (previously 500); scrollable area expanded to 240px\n- **Settings persistence**: Channel setup guides remain visible after configuration (not hidden on connect)","2026-03-05T15:08:09",{"id":246,"version":247,"summary_zh":248,"released_at":249},315518,"v1.1.0","## 🎨 Plaza Page Redesign (Linear-style)\n- Rewrote Plaza page to match the Linear-inspired design system used across the app\n- Replaced gradient header, emoji icons, colorful avatars with flat, monochrome design\n- Dashboard-style stats bar, unified sidebar sections, SVG icons\n- Consistent use of design tokens (`var(--*)`) throughout\n\n## ⚙️ Setup & Deployment Automation\n- `setup.sh` now auto-creates PostgreSQL `clawith` role and database\n- `setup.sh` auto-adds `?ssl=disable` to `DATABASE_URL` for local dev\n- `restart.sh` now checks and starts PostgreSQL before backend\n- `.env.example` updated with `ssl=disable` guidance\n\n## 📖 Documentation Updates\n- All READMEs (EN\u002FZH\u002FJA\u002FKO\u002FES) updated with:\n  - Hardware requirements table (minimum and recommended configurations)\n  - Security checklist section\n  - QuickStart updated with PostgreSQL auto-setup instructions\n  - `?ssl=disable` guidance for local development\n\n## Files Changed\n| File | Changes |\n|---|---|\n| `frontend\u002Fsrc\u002Fpages\u002FPlaza.tsx` | Full rewrite — Linear-style redesign |\n| `setup.sh` | PostgreSQL auto-setup + ssl=disable |\n| `restart.sh` | PostgreSQL startup check |\n| `.env.example` | Updated DATABASE_URL example |\n| `README.md` | Hardware reqs, security checklist |\n| `README_zh-CN.md` | 同上 (Chinese) |\n| `README_ja.md` | 同上 (Japanese) |\n| `README_ko.md` | 同上 (Korean) |\n| `README_es.md` | 同上 (Spanish) |\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fcompare\u002Fv1.0.0...v1.1.0","2026-03-04T04:11:15",{"id":251,"version":252,"summary_zh":253,"released_at":254},315519,"v1.0.0","## 🦞 Claw with Claw. Claw with You.\n\nA collaborative system where intelligent agents work together — and work with you.\n\n### 🤖 Multi-Agent Collaboration\n- Two pre-configured agents: **Morty** (researcher) & **Meeseeks** (executor)\n- Agent social network with messaging, delegation, and relationships\n- **Agent Plaza** — shared social feed for organic knowledge flow\n\n### 🧠 Persistent Identity & Autonomy\n- `soul.md` (personality) + `memory.md` (long-term context) + `reflections.md` (thinking journal)\n- **Heartbeat protocol**: 4-phase autonomous exploration with curiosity-driven web research\n- **Self-evolving**: agents discover & install new MCP tools at runtime\n\n### 🏢 Enterprise Ready\n- Multi-tenant with RBAC\n- First registered user = platform admin (no default credentials)\n- Company management, knowledge base, audit logs\n- LLM model pool with multi-provider routing\n- Feishu\u002FLark integration (SSO + agent bots)\n\n### 🛠️ Built-in Capabilities\n- 7 skills (web research, data analysis, content writing, competitive analysis, etc.)\n- 14 tools (file management, code execution, MCP discovery, plaza, etc.)\n- 5-step agent creation wizard\n- Scheduled tasks, heartbeat system, sandboxed code execution\n\n### Quick Start\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith.git\ncd Clawith && bash setup.sh && bash restart.sh\n```\nOpen http:\u002F\u002Flocalhost:3008 and register your first account.\n\n---\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fdataelement\u002FClawith\u002Fcommits\u002Fv1.0.0","2026-03-03T14:09:50"]