Doramagic 项目包 · 项目说明书

nextclaw 项目

面向智能体的本地优先 AI 工作台,集技能、文件、浏览器工具、自动化与消息通道于一体。

项目概览

NextClaw(仓库 Peiiii/nextclaw)是一个面向"类 OpenClaw"使用场景的多端 Agent 运行时项目。顶层 README.md 将其定位为可在 CLI、桌面端与 Web 端统一部署的对话与代理入口,强调"开箱即用、可视化、人性化界面"。

章节 相关页面

继续阅读本节完整说明和来源证据。

一、项目定位与目标用户

NextClaw(仓库 Peiiii/nextclaw)是一个面向"类 OpenClaw"使用场景的多端 Agent 运行时项目。顶层 README.md 将其定位为可在 CLI、桌面端与 Web 端统一部署的对话与代理入口,强调"开箱即用、可视化、人性化界面"。

  • 双分发形态:同时维护 NPM CLI 发行版([email protected])与桌面安装包(NextClaw Desktop)两条分发渠道,前者面向开发者与服务器部署,后者面向普通用户。
  • 核心抽象:围绕 Channels(消息渠道)Providers(模型/搜索提供方)Skills(技能) 三大模块展开,方便扩展第三方消息平台与模型服务。

资料来源:README.md:1-40apps/desktop/README.md:1-30

二、仓库与子项目结构

NextClaw 是一个 monorepo,顶层聚合了 CLI、桌面端、配套 Web 应用与共享子包:

graph TD
  Root[nextclaw monorepo<br/>package.json] --> Desktop[apps/desktop<br/>Electron 桌面端]
  Root --> Companion[apps/companion<br/>伴侣应用]
  Root --> LB[apps/competitive-leaderboard<br/>排行榜前端]
  Desktop --> Launcher[apps/desktop/src/launcher<br/>启动器/更新器]
  Desktop --> Main[apps/desktop/src/main<br/>主窗口与运行时]
  • apps/desktop/package.json 定义了桌面壳版本号、嵌入的运行时捆绑版本,以及最低启动器版本约束,保证跨发行版的兼容性。
  • apps/desktop/src/launcher/README.md 记录了桌面端特有的启动、更新、签名与安装路径逻辑。
  • apps/companionapps/competitive-leaderboard 是与主产品配套的轻量前端项目,提供同步/社区类能力。

资料来源:package.json:1-30apps/desktop/package.json:1-40apps/desktop/src/launcher/README.md:1-30

三、核心能力与已知的扩展点

NextClaw 的能力由配置驱动的多模块组成:

  • Channels:当前支持 Telegram 等消息平台。社区反馈指出 Telegram forum 主题(message_thread_id)尚未被区分处理(issue #11),属于待扩展点。
  • Providers:模型提供方如 Groq 等;若 providers.groq 整段缺失,早期版本会在 nextclaw start 阶段触发空引用崩溃(issue #4),属于历史已修复缺陷。
  • Skills:技能系统支持动态安装与调用,Windows 10/11 早期版本曾出现安装失败(issue #3,已修复);社区另请求在 UI 中集成技能市场与调用统计(issue #14)。
  • 搜索渠道:当前内置 bocha 与 brave,社区希望原生支持 Tavily 与 EXA(issue #10)。
  • UI 主题:当前仅有亮色模式,社区高优请求暗色模式(issue #18)。
  • 启动健康度:曾出现 Marked as degraded after start 的误报(issue #6),后续版本已修复。

资料来源:apps/companion/package.json:1-20apps/competitive-leaderboard/package.json:1-20README.md:1-40

四、发布节奏与版本线

项目通过 GitHub Releases 同时维护 NPM 运行时与桌面壳两条版本线:

  • NPM 运行时:最新稳定版 [email protected],近期连续发布 0.25.3 → 0.26.0/0.26.1 → 0.27.0–0.27.5,呈高频小版本迭代。
  • 桌面壳NextClaw Desktop 0.0.227 捆绑 0.26.0 运行时;0.0.223 捆绑 0.25.0。桌面端的版本号(0.0.x)与内部捆绑的运行时版本号(0.x.y)是独立递增的。
  • 本次发布要点v0.27.5):新对话自动恢复最近为每个 Agent Runtime 选择的模型,提供更清晰的上下文压缩反馈并增强消息连续性。

资料来源:README.md:1-40apps/desktop/README.md:1-30

资料来源:README.md:1-40apps/desktop/README.md:1-30

Lib 模块

Lib 模块位于 packages/nextclaw-core/src/shared/lib/,是 NextClaw 核心包中共享的纯函数与领域工具库,被 CLI、Desktop 端以及上层特性(channels、providers、skills、agents 等)共同依赖。它承担三类职责:

章节 相关页面

继续阅读本节完整说明和来源证据。

模块定位与职责

Lib 模块位于 packages/nextclaw-core/src/shared/lib/,是 NextClaw 核心包中共享的纯函数与领域工具库,被 CLI、Desktop 端以及上层特性(channels、providers、skills、agents 等)共同依赖。它承担三类职责:

  1. 通用基础工具:与具体业务无关的字符串、对象、IO、流处理等纯函数。
  2. 领域工具(feature-scoped utilities):按特性维度(如 openai)组织的高阶工具集,封装与外部服务或协议交互的细节。
  3. 稳定 API 出口:通过每个特性目录下的 index.ts 统一对外暴露,避免上层直接耦合内部文件。

资料来源:packages/nextclaw-core/src/shared/lib/core-utils/features/openai/index.ts:1-40

目录结构

Lib 模块以 core-utils 为根目录,按"特性 → 子工具"两层组织:

src/shared/lib/
└── core-utils/
    └── features/
        ├── openai/
        │   ├── index.ts            # 统一出口
        │   └── utils/              # 细分工具
        │       ├── response.utils.ts
        │       ├── responses-payload.utils.ts
        │       ├── responses-stream-state.utils.ts
        │       ├── responses-stream.utils.ts
        │       └── sse-stream.utils.ts
        └── <其他特性>/

每个特性目录都遵循同样的模式:index.ts 汇总导出,utils/ 下放实现细节。这种"特性桶(feature barrel)"的结构使得新增能力时只需新增一个 features/<name>/ 子树,不影响既有调用方。

资料来源:packages/nextclaw-core/src/shared/lib/core-utils/features/openai/index.ts:1-40packages/nextclaw-core/src/shared/lib/core-utils/features/openai/utils/response.utils.ts:1-20

core-utils 与特性桶模式

core-utils 是 Lib 模块的核心容器,它的设计原则是"以特性为单位聚合工具":

  • 统一入口:上层代码只通过 core-utils/features/<feature>/index.ts 引用能力,例如 import { ... } from '@nextclaw/core/shared/lib/core-utils/features/openai'
  • 实现隐藏utils/ 子目录里的实现细节(响应解析、流状态机、SSE 解码等)不直接被外部依赖,未来重构不会破坏 API 表面。
  • 就近组织:与某特性强相关的代码集中放置,避免散落在 shared/lib/ 顶层造成"工具坟场"。

资料来源:packages/nextclaw-core/src/shared/lib/core-utils/features/openai/index.ts:1-40

OpenAI 特性工具集:以 Responses API 为例

features/openai/ 是当前最完整的特性桶,覆盖与 OpenAI Responses API(含流式)交互所需的所有底层工具:

工具文件主要职责
response.utils.ts处理非流式 response 对象的归一化、字段提取、错误归类
responses-payload.utils.ts构造与校验请求 payload(消息、工具、上下文压缩参数)
responses-stream-state.utils.ts维护流式响应的事件状态机(已接收 token、当前 delta、是否结束)
responses-stream.utils.ts把上游分片聚合成可消费的事件序列,供上层订阅
sse-stream.utils.tsServer-Sent Events 字节流解码,处理 data: 行、换行与多事件边界

各工具之间存在单向依赖:sse-stream.utils.ts 是最底层的字节解析层,向 responses-stream.utils.ts 提供事件;后者把事件喂给 responses-stream-state.utils.ts 维护状态;最终由 response.utils.ts 在请求结束时汇总成最终响应对象。responses-payload.utils.ts 与上述四者无运行时依赖,仅在请求构造阶段被调用。

flowchart LR
    Byte[SSE 字节流] --> SSE[sse-stream.utils.ts]
    SSE --> Stream[responses-stream.utils.ts]
    Stream --> State[responses-stream-state.utils.ts]
    State --> Resp[response.utils.ts<br/>最终响应]
    Payload[responses-payload.utils.ts<br/>请求构造] -.独立.-> Stream

这一分层在社区反馈的 上下文压缩(context compaction) 场景中尤为重要:v0.27.5 引入的"更清晰的上下文压缩反馈"正是通过 responses-stream-state.utils.ts 在流式过程中插入压缩事件,由 response.utils.ts 汇总到最终结果,使 Agent 在长对话中保持消息连续性。

资料来源:packages/nextclaw-core/src/shared/lib/core-utils/features/openai/utils/sse-stream.utils.ts:1-40packages/nextclaw-core/src/shared/lib/core-utils/features/openai/utils/responses-stream.utils.ts:1-40packages/nextclaw-core/src/shared/lib/core-utils/features/openai/utils/responses-stream-state.utils.ts:1-40packages/nextclaw-core/src/shared/lib/core-utils/features/openai/utils/response.utils.ts:1-40packages/nextclaw-core/src/shared/lib/core-utils/features/openai/utils/responses-payload.utils.ts:1-40

扩展与演进建议

Lib 模块新增能力时,应遵循以下约定:

  • core-utils/features/<feature>/ 下创建目录,并提供 index.ts 作为统一出口。
  • 内部实现放在 <feature>/utils/*.utils.ts,文件名以 .utils.ts 结尾以保持一致性。
  • 保持纯函数风格:避免直接依赖全局状态或外部 IO,便于在 CLI、Desktop、单元测试中复用。
  • 与上游协议(如 OpenAI Responses、Telegram message_thread_id)强相关的解析逻辑应优先进入 Lib,由 channels/providers 调用,而不是写在业务层。

这种结构与社区中"技能市场(#14)""暗色模式(#18)"等请求并不直接冲突——它们属于 UI 层;但当涉及底层协议适配(例如未来原生支持 Tavily / EXA 搜索渠道,#10)时,新增的 features/search/tavily/features/search/exa/ 桶即可按同一模式落地,无需修改 Lib 模块的骨架。

资料来源:packages/nextclaw-core/src/shared/lib/core-utils/features/openai/index.ts:1-40packages/nextclaw-core/src/shared/lib/core-utils/features/openai/utils/response.utils.ts:1-40

资料来源:packages/nextclaw-core/src/shared/lib/core-utils/features/openai/index.ts:1-40

失败模式与踩坑日记

保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。

medium 来源证据:Telegram 开启时,若 `providers.groq` 缺失,`nextclaw start` 会在启动阶段崩溃

可能影响升级、迁移或版本选择。

medium 可能修改宿主 AI 配置

安装可能改变本机 AI 工具行为,用户需要知道写入位置和回滚方法。

medium 能力判断依赖假设

假设不成立时,用户拿不到承诺的能力。

medium 维护活跃度未知

新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。

Pitfall Log / 踩坑日志

项目:Peiiii/nextclaw

摘要:发现 10 个潜在踩坑项,其中 0 个为 high/blocking;最高优先级:安装坑 - 来源证据:Telegram 开启时,若 providers.groq 缺失,nextclaw start 会在启动阶段崩溃。

1. 安装坑 · 来源证据:Telegram 开启时,若 `providers.groq` 缺失,`nextclaw start` 会在启动阶段崩溃

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Telegram 开启时,若 providers.groq 缺失,nextclaw start 会在启动阶段崩溃
  • 对用户的影响:可能影响升级、迁移或版本选择。
  • 证据:community_evidence:github | https://github.com/Peiiii/nextclaw/issues/4 | 来源讨论提到 node 相关条件,需在安装/试用前复核。

2. 配置坑 · 可能修改宿主 AI 配置

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主,或安装命令涉及用户配置目录。
  • 对用户的影响:安装可能改变本机 AI 工具行为,用户需要知道写入位置和回滚方法。
  • 证据:capability.host_targets | https://github.com/Peiiii/nextclaw | host_targets=claude_code, claude

3. 能力坑 · 能力判断依赖假设

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:README/documentation is current enough for a first validation pass.
  • 对用户的影响:假设不成立时,用户拿不到承诺的能力。
  • 证据:capability.assumptions | https://github.com/Peiiii/nextclaw | README/documentation is current enough for a first validation pass.

4. 维护坑 · 维护活跃度未知

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:未记录 last_activity_observed。
  • 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
  • 证据:evidence.maintainer_signals | https://github.com/Peiiii/nextclaw | last_activity_observed missing
  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 证据:downstream_validation.risk_items | https://github.com/Peiiii/nextclaw | no_demo; severity=medium

6. 安全/权限坑 · 存在安全注意事项

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:No sandbox install has been executed yet; downstream must verify before user use.
  • 对用户的影响:用户安装前需要知道权限边界和敏感操作。
  • 证据:risks.safety_notes | https://github.com/Peiiii/nextclaw | No sandbox install has been executed yet; downstream must verify before user use.

7. 安全/权限坑 · 存在评分风险

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 对用户的影响:风险会影响是否适合普通用户安装。
  • 证据:risks.scoring_risks | https://github.com/Peiiii/nextclaw | no_demo; severity=medium

8. 安全/权限坑 · 来源证据:[Bug] Marked as degraded after start

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Bug] Marked as degraded after start
  • 对用户的影响:可能影响授权、密钥配置或安全边界。
  • 证据:community_evidence:github | https://github.com/Peiiii/nextclaw/issues/6 | 来源讨论提到 node 相关条件,需在安装/试用前复核。

9. 维护坑 · issue/PR 响应质量未知

  • 严重度:low
  • 证据强度:source_linked
  • 发现:issue_or_pr_quality=unknown。
  • 对用户的影响:用户无法判断遇到问题后是否有人维护。
  • 证据:evidence.maintainer_signals | https://github.com/Peiiii/nextclaw | issue_or_pr_quality=unknown

10. 维护坑 · 发布节奏不明确

  • 严重度:low
  • 证据强度:source_linked
  • 发现:release_recency=unknown。
  • 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
  • 证据:evidence.maintainer_signals | https://github.com/Peiiii/nextclaw | release_recency=unknown

来源:Doramagic 发现、验证与编译记录