Sign in

    MBOpenClacky

    AI Agent CLI tool rewritten in MoonBit

    ai
    agent
    cli
    llm
    Download zip
    Version
    0.3.1
    License
    MIT
    Last updated
    7 days ago
    Downloads
    41

    #MBOpenClacky

    MBOpenClacky 是 openclacky AI Agent CLI 的 MoonBit 重写版本,提供 CLI、TUI 与 Web 三种入口,并共享同一套 Agent 核心。

    当前版本以 native 目标为正式验收面;wasm-gc 仅做类型检查。功能边界、已知缺口和上游对齐结论分别见 项目状态 与 真话台账,不要只看宣传性描述。

    #核心能力

    • Agent 核心:ReAct 循环、上下文压缩、重试/回退、子代理、记忆、Todo、成本追踪、Time Machine。
    • 模型接入:OpenAI、Anthropic、Bedrock 等协议;内置 13 个 Provider 预设,支持主模型、lite 模型与媒体模型配置。
    • 工具系统:14 个注册进 AnyTool 的内置工具,含文件读写/编辑、搜索、终端 PTY、网页、浏览器、技能、记忆、Todo、用户反馈与回收站。
    • 技能与扩展:16 个 assets/skills/ 默认 Skill;扩展包另带 3 个 Skill(ext-develop 默认可用,meeting-summarizer 与 extend-openclacky 随默认关闭的扩展发布)。仓库含 10 个内置扩展清单。
    • MCP:客户端支持 Stdio 与 Streamable HTTP/SSE;cmd mcp 可把本 CLI 暴露为 stdio MCP server。当前能力面是 tools,不承诺 MCP resources/prompts。
    • IM 渠道:飞书、企业微信、Telegram、Discord、钉钉、微信。发送路径均已接线;接收路径包含 webhook、Telegram 长轮询、企微 WebSocket、Discord Gateway 与钉钉 Stream Mode。
    • Web:原生 JavaScript SPA、REST API、WebSocket token 级流式输出、认证/日志/超时/CORS 中间件;默认端口 7071。
    • 多模态与文档:PDF/DOCX/PPTX/XLSX/DOC/WPS 解析、Vision OCR、视频理解,以及图片/视频/音频生成接口。
    • 持久化:会话 JSON 快照 + append-only JSONL 事件日志;cmd inspect 可离线回放,旧 JSON/Debug-repr 会话为只读兼容投影。

    #仓库指标

    本表由 scripts/repo_stats.sh 生成并由 CI 校验;不要手改生成块。

    指标数值
    版本(moon.mod / cmd VERSION / tui / web 四处一致)0.3.1
    源代码文件(.mbt,lib+cmd,不含测试)316
    测试文件(*_wbtest.mbt + *_test.mbt)242
    源代码行数106,298
    测试行数65,971
    总行数172,269
    测试用例(moon test --release,本模块 scoped 口径 = CI 主测试步 + test/e2e 独立作业;lib/mcp 另一步单独跑、不计入)4086
    包(lib 一级包 / cmd 入口 / moon.pkg 总数)25 / 1 / 30
    pkg.generated.mbti(git 入库)32
    Provider 预设13
    内置工具14
    默认 Skill16
    REST 路由注册(crescent,lib/web/server.mbt)214(GET 86 / POST 86 / PATCH 15 / DELETE 18 / PUT 9)
    moon check0 errors / 0 warnings

    release 产物大小随工具链和链接配置浮动(当前约 13 MB),不作为质量闸门。

    #快速开始

    完整安装、配置与故障排除见 快速入门。最短路径:

    moon update moon check moon build --target native --release cmd BIN=./_build/native/release/build/cmd/cmd.exe "$BIN" --message "Hello" "$BIN" # TUI "$BIN" server # Web,http://127.0.0.1:7071

    Windows 上产物名为 cmd.exe,Linux/macOS 上为 cmd。始终显式构建 cmd 包;裸 moon build 会受 moon#1488 影响。

    常用验证命令:

    "$BIN" selftest --repo . "$BIN" eval --offline --repo . "$BIN" journey --repo . "$BIN" benchmark

    测试必须限定本模块包,不能裸跑 moon test:

    moon test --release $(find lib cmd test -name moon.pkg | sed 's|/moon.pkg$||')

    third_party/clap 是本模块内的 vendored 上游包(无自己的 moon.mod);裸跑会连带执行它的测试,不属于本仓库回归面。

    #架构摘要

    cmd/ CLI 入口与子命令 lib/agent/ Agent、ReAct、会话、提示词、记忆、子代理、压缩 lib/client/ LLM 协议、流式聚合、平台 HTTP lib/tool/ 14 个 AnyTool 实现、PTY、安全策略 lib/skill/ Skill 解析/发现/执行与 GEP 进化 lib/extension/ 扩展加载、校验、打包、市场、Patch/API 贡献 lib/mcp/ MCP client/server 与传输 lib/channel/ 6 个 IM 适配器与连接循环 lib/web/ + web/ Web 后端与原生 JS 前端 lib/tui/ Inline Scrolling TUI lib/protocol/ 引擎事件与 wire 词表 test/ 层 1-9 测试、评测、旅程、基准与浏览器 E2E assets/ Agent profile、Skill、内置扩展 deploy/ Docker Compose、systemd、logrotate specs/ Harness v2 spec、模板与 ADR

    会话采用 JSON 快照而不是 SQLite:项目是单用户、低并发、小数据量 CLI,JSON 便于调试、备份和兼容旧文件;事件日志另行使用 append-only JSONL。该决策的完整背景见 项目状态。

    #质量闸门

    闸门命令作用
    类型/警告moon check -d全仓 0 error / 0 warning
    公共 APImoon info,再检查 pkg.generated.mbti diff防止未提交接口变化
    CLI 契约<binary> selftest --repo .退出码、stdout/stderr 形状、panic 泄漏
    确定性评测<binary> eval --offline --repo .工具层任务成功且可重复
    真话台账scripts/known_gaps.sh check缺口扫描与人工状态一致
    数字一致性scripts/repo_stats.sh checkREADME/AGENTS/project-status 数字不过期
    测试scoped moon test本模块回归

    AI 辅助开发声明见 docs/ai-usage.md;开源与第三方披露见 NOTICE。

    #文档索引

    #License

    MIT,见 LICENSE。本项目以 clacky-ai/openclacky 为设计与实现起点,感谢上游作者与贡献者。