2,264· 123 forks· JavaScript· MIT开发工具

unlazy - AI Agent 深度任务防偷懒工具

Leonxlnx/unlazy

基于深度树方法的 AI Agent 任务验收框架,通过多层任务分解和可执行检查门控,解决大模型"偷懒"提前完成问题

成熟度维护活跃,最近提交0天前,无未解决 issue,处于积极开发状态

项目体检

许可 · MIT 协议,可商用,无额外限制

活跃 · 最近提交0天前,11位贡献者参与,活跃维护中

解决什么

大语言模型在执行复杂任务时存在"underthinking"(思考不足)和"premature completion"(提前完成)问题——AI Agent 可能在未完全理解需求时就返回看似完整但实际草率的结果。unlazy 通过"深度树方法"(Depth Tree)将任务拆分 N 层,每个叶子节点获得整个任务的完整时间预算,使工作量随深度指数级增长,强制 AI 完成实质性验证。核心机制是预先编写验收清单(GATES.md),用可执行的 Shell 检查脚本作为门控,只有通过所有检查才算任务完成。

为何火

该项目针对 2025-2026 年 AI Agent 使用中的痛点:当要求 Claude Code 或 Codex 进行大规模重构时,模型常返回"已完成"但实际遗漏边界情况或测试覆盖。unlazy 提供可审计的验收流程:每个门控包含 CHECK: 命令(如 node scripts/verify-pricing.mjs)和 EXPECT: 期望输出,只有进程退出码为 0 且输出匹配才通过。2264 stars 反映开发者对"可验证 AI 工作成果"的强需求,尤其在金融、医疗等需要严格验收的领域。

核心功能

  1. 门控合约系统:用 Markdown 清单定义验收标准,每个门控包含检查命令、期望输出、工作目录和证据记录
  2. 审批机制:首次执行前需 --approve 审查命令,批准记录存储在 ~/.unlazy/approved,绑定命令内容、PATH、shell 等环境指纹
  3. 重验证模式:--reverify 重新运行所有门控(包括已标记完成的),确保依赖变更后仍满足验收条件
  4. 并行编排:通过 .unlazy/<scope>/ 目录结构管理多上下文任务,支持叶子节点和中间节点的依赖声明
  5. 安全边界:审批记录必须在仓库外的私有目录,防止恶意修改;命令继承启动环境但不沙箱化

安装

通过 skills CLI(推荐):

npx skills add Leonxlnx/unlazy      # 当前项目
npx skills add -g Leonxlnx/unlazy   # 全局安装

手动安装:克隆到对应目录

  • Claude Code: ~/.claude/skills/unlazy
  • Codex CLI: ~/.codex/skills/unlazy

需要 Node.js 16 或更高版本,无第三方运行时依赖。核心文件是 SKILL.md(技能描述)和 scripts/gate-check.mjs(检查器)。

适合谁

  • 复杂重构场景:需要 AI 完成多模块改造且必须验证所有迁移路径的团队
  • 高可靠性要求:金融支付、数据迁移等容错率低的项目,需要可审计的验收证据
  • CI/CD 集成:希望将 AI 生成代码纳入自动化测试流程的开发者
  • 多 Agent 协作:通过作用域隔离管理不同上下文的并行任务

中文用户注意:Windows 下需注意 shell 差异(Git Bash vs PowerShell 的 PATH 不同),示例脚本调用 Node.js 保证跨平台,但自定义检查若依赖 grep/tail 等 Unix 工具需额外配置。

社区评价

暂无足量社区公开讨论,以下为基于项目本身的中立评估:该项目在 GitHub 上线 15 天即获 2K+ stars,表明开发者对 AI Agent 质量控制的迫切需求。从设计看,其"先写验收再执行"的理念类似测试驱动开发(TDD),但应用于人机协作场景。技术实现较轻量(纯 Node.js 脚本 + Markdown),易于集成现有工具链。潜在争议点可能在于:审批流程增加交互成本,不适合快速原型阶段;依赖 Shell 检查的可移植性在复杂环境下需额外维护。

选型对比

vs 直接使用 AI Agent:原生 Claude Code 缺少强制验收机制,unlazy 通过门控合约将"AI 说完成"转化为"可执行证明完成",适合高风险任务。

vs 传统 CI/CD:Jenkins/GitHub Actions 验证已提交代码,unlazy 前置到 AI 生成阶段,在代码进入版本控制前就拦截不合格输出。

vs Langchain Agents:Langchain 侧重工具调用编排,unlazy 专注验收纪律,两者可互补——用 Langchain 驱动任务,用 unlazy 验收结果。

取舍:unlazy 增加前期清单编写成本,但减少返工和人工复查时间;不适合探索性编程,适合需求明确的工程任务。

已知坑

  1. 审批记录迁移:更换机器或 UNLAZY_APPROVAL_DIR 后需重新审批所有命令,因记录绑定绝对路径和环境指纹
  2. 依赖变更盲区:审批仅哈希 CHECK: 命令本身,不追踪被调用脚本或测试夹具的修改,需手动 --reverify
  3. Windows shell 兼容性:默认使用 /bin/sh(Unix)或 ComSpec(Windows),跨平台项目需显式指定 --shell 或统一用 Node.js 脚本
  4. 无沙箱隔离:检查命令继承完整文件系统和网络权限,恶意 CHECK: 可执行任意操作,审批前必须人工审查
  5. 学习曲线:需理解门控合约语法、证据记录机制和并行编排规则,文档虽详尽但概念密度高

据 README,项目当前处于 2.1.0 未标记状态,建议生产环境固定 commit SHA。gate-lint.mjs 可检测弱模式(如空期望、重复 ID),加 --strict 可将警告升级为错误。

安装方式:npx/手动克隆