ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

cli-anything-minimax 实战指南:用 MiniMax API 驱动 Chat 与 TTS 的 Agent 原生命令行工具

cli-anything-minimax 实战指南:用 MiniMax API 驱动 Chat 与 TTS 的 Agent 原生命令行工具 cli-anything-minimax 实战指南用 MiniMax API 驱动 Chat 与 TTS 的 Agent 原生命令行工具【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything导读本文以 CLI-Anything 仓库中 MiniMax harness 的技能文档minimax/agent-harness/cli_anything/minimax/skills/SKILL.md为主线系统讲解cli-anything-minimax命令行工具它通过 MiniMax API 同时提供大模型对话MiniMax-M3 / MiniMax-M2.7与文本转语音speech-2.x 系列能力。读完本文你将掌握该工具从安装、API Key 配置、单次命令调用、交互式 REPL到 JSON 结构化输出与 AI Agent 集成规范的完整实战方案并结合源码了解其底层请求构造、流式解析与会话持久化原理。一、工具定位一个 harness 同时打通 MiniMax 的 Chat 与 TTScli-anything-minimax是 CLI-Anything 生态中面向 MiniMax AI 的 CLI harness核心能力只有两块chat completions对话补全与text-to-speech语音合成。从其前端入口 minimax_cli.py 的模块 docstring 可以看到工具的设计意图MiniMax CLI — Chat and TTS client for MiniMax AI API.工具本体并不引入重量级 SDK而是在 minimax_backend.py 中直接封装 MiniMax 的 OpenAI 兼容 REST 接口/v1/chat/completions与 TTS 接口/v1/t2a_v2依赖只有click、requests、prompt-toolkit三件套见 setup.py 的install_requires。调用链整体分三层CLI 层Click 命令组负责参数解析、人类可读输出 / JSON 输出切换Backend 层负责鉴权、请求体构造、HTTP 调用与 SSE 流解析Session 层core/session.py负责把多轮对话上下文与命令历史持久化到本地文件。二、安装与前置条件技能文档给出的安装前置条件是Python 3.10setup.py 中python_requires3.10与此一致MiniMax API Key需在 MiniMax 开放平台申请。在仓库内进行本地安装验证时可以直接对 harness 子包做可编辑安装该方式同样被 README.md 采纳cd minimax/agent-harness python3 -m pip install -e . cli-anything-minimax --help安装完成后即获得cli-anything-minimax可执行命令它由 setup.py 中的entry_points注册指向cli_anything.minimax.minimax_cli:mainentry_points{ console_scripts: [ cli-anything-minimaxcli_anything.minimax.minimax_cli:main, ], },同时 setup.py 通过package_data将skills/*.md打包进安装产物便于下游工具在包内定位到技能文档本身。三、快速上手基础命令一览技能文档给出的第一组命令覆盖了工具的主要入口帮助、交互式 REPL、单次 Chat、流式 Chat、TTS 合成与 Agent 友好的 JSON 输出。# 查看帮助 cli-anything-minimax --help # 进入交互式 REPL cli-anything-minimax # 使用默认模型 MiniMax-M3 单次对话 cli-anything-minimax chat --prompt What is AI? # 切换对话模型 cli-anything-minimax chat --prompt Quick answer --model MiniMax-M2.7 # 流式输出聊天结果 cli-anything-minimax stream --prompt Write a poem about code # 文本转语音 cli-anything-minimax tts --text Hello world --output hello.mp3 # 以 JSON 输出供 Agent 解析 cli-anything-minimax --json chat --prompt Hello从 minimax_cli.py 的源码可见--json与全局--model、--api-key都是挂在根命令组上的全局选项其中--json一旦开启所有命令的输出都会改走output()里的json.dumps分支而单独不带子命令直接运行cli-anything-minimax时Click 会通过ctx.invoke(repl)自动进入交互式 REPL。四、命令组全览技能文档用四张表格罗列了全部命令组这里完整继承并补充每个命令背后的行为细节。4.1 Chat 命令组命令说明chat与 MiniMax LLM 单次对话非流式stream流式聊天补全逐字输出chat与stream共用一套核心选项--prompt/-p必填、--model、--temperature0.0–1.0默认 1.0、--max-tokens。两者的差异在输出形式上chat一次性拿到完整choices[0].message.contentstream则通过在 minimax_backend.py 中逐行读取 SSE 的data:帧、累加delta.content再通过on_chunk回调实时click.echo到终端。4.2 TTS 命令组命令说明tts文本转语音合成SSE 返回 hex 编码音频并解码落盘voices列出可用音色 ID技能文档特别强调 tts 返回的是hex-decoded MP3 via SSE。这一机制在源码中体现得非常明确tts_synthesize发送stream: True请求后逐行把 SSE 事件里的data.audiohex 字符串通过bytes.fromhex()还原为二进制音频块拼接后写出到--output指定文件见 minimax_backend.py。单元测试 test_core.py 中的test_tts_synthesize_hex_decoding直接验证了这一 hex→bytes 解码路径。4.3 Session 命令组命令说明session status显示会话状态session clear清空会话历史session history显示命令历史--limit/-n控制条数默认 204.4 Config 命令组命令说明config set写入配置项config get读取配置项不带 key 时显示全部config delete删除配置项config path显示配置文件路径4.5 Utility 命令组命令说明test测试 API 连通性models列出 Chat 模型models --tts列出 TTS 模型test的实现会实际向模型发送一条Say okmax_tokens5的探针请求并回显模型回复见 minimax_cli.py因此它不仅能检查网络连通还能侧面验证 API Key 的合法性。五、API Key 的三种配置方式与解析优先级技能文档给出两种最常用的方式——环境变量与配置文件export MINIMAX_API_KEYyour-api-key # 或 cli-anything-minimax config set api_key your-api-key在 minimax_backend.py 的get_api_key()中实际优先级是三层递进的CLI 参数根组--api-key sk-xxx最高优先环境变量MINIMAX_API_KEY配置文件~/.config/cli-anything-minimax/config.json中的api_key。单元测试 test_core.py 的test_get_api_key_priority完整覆盖了这一顺序。如果最终拿不到 Key_require_api_key()会抛出带三种补救提示的RuntimeError。值得注意的工程细节config set写 Key 时save_config 会先创建配置目录再以chmod(0o600)收紧文件权限而无论是config set的响应还是config get的输出CLI 层都会把超过 10 个字符的 Key 做sk-xxxx...形式的掩码显示避免敏感信息回显到终端。此外除了 Key工具还支持三个与接入环境相关的环境变量变量说明MINIMAX_API_KEYMiniMax API Key必需MINIMAX_REGION区域选择global_en默认https://api.minimax.io/v1或cn_zhhttps://api.minimaxi.com/v1MINIMAX_BASE_URL可选覆盖 API Base URL区域端点表在REGIONAL_ENDPOINTS常量中维护_get_region_endpoint()会优先读MINIMAX_REGION、否则回落global_enMINIMAX_BASE_URL则用于代理或私有化部署场景。测试用例test_chat_completion_uses_global_region_base_url/test_chat_completion_uses_cn_region_base_url分别断言了两套区域下的最终请求 URL。六、TTS 参数详解从技能文档到 Click 类型约束技能文档给出的 TTS 选项说明为--textrequired/--model/--voice/--outputplus voice and audio controls:--speed(0.5..2.0),--vol(0..10),--pitch(-12..12),--sample-rate(8k/16k/22.05k/24k/32k/44.1k),--bitrate(32k/64k/128k/256k),--format(mp3/pcm/flac),--channel(1/2).README.md 给出了更完整的默认值表格结合 minimax_cli.py 中 tts 命令的 Click 参数声明可以得到精确的取值范围与默认值选项取值范围 / 枚举默认值说明--text/-t必填—待合成的文本--model见下方 TTS 模型表speech-2.8-hdTTS 模型--voice音色 IDvoices可查English_Graceful_Lady音色预设--output/-o文件路径output.mp3输出音频文件--speed0.5 .. 2.0FloatRange1.0语速倍率--vol0.0 .. 10.0FloatRange1.0音量--pitch-12 .. 12IntRange0音高偏移半音--sample-rate8000 / 16000 / 22050 / 24000 / 32000 / 4410032000采样率--bitrate32000 / 64000 / 128000 / 256000128000码率--formatmp3 / pcm / flacmp3输出容器格式--channel1 / 211单声道2立体声上述取值范围全部由 Click 的类型系统在参数入口处强制校验例如--speed用click.FloatRange(0.5, 2.0)、--pitch用click.IntRange(-12, 12)、音频三参数用click.Choice。这保证了非法输入在发请求前就会被拒绝。在底层这些参数会被映射为请求体中的两层结构见 minimax_backend.py{ model: speech-2.8-hd, text: ..., stream: true, voice_setting: {voice_id: ..., speed: 1.0, vol: 1.0, pitch: 0}, audio_setting: {sample_rate: 32000, bitrate: 128000, format: mp3, channel: 1} }技能文档中的 TTS 实战示例cli-anything-minimax tts --text Hello! --output hello.mp3 cli-anything-minimax tts --text Fast --model speech-2.8-turbo --voice English_Insightful_Speaker --output fast.mp3更精细的控制示例来自 README.mdcli-anything-minimax tts --text Slow and quiet \ --speed 0.8 --vol 0.5 --pitch -2 \ --sample-rate 44100 --bitrate 256000 --format flac --channel 2 \ --output slow.flac另外提醒一个版本相关的参数名差异技能文档示例使用的是--output而 FIX_NOTES.md 记录了历史上曾有一个 bug——Click 回调参数曾命名为output与模块级output()输出函数产生命名遮蔽导致 TTS 崩溃现已重命名为output_path修复。因此在当前源码版本中命令行选项保持--output/-o不变可放心使用。七、会话管理多轮上下文的本地持久化chat与stream并不是无状态的单发请求。从 minimax_cli.py 可以看到调用前先session.get_messages()取出历史、追加本次用户消息请求完成后把用户消息 助手回复回写会话。会话层实现位于 core/session.py会话文件默认位置~/.cli-anything-minimax/session.json数据结构包含messages对话上下文供多轮携带与history命令历史上限 50 条_save()采用文件锁fcntl.flock原子写入规避多进程并发写坏 JSON 的风险。对应的 CLI 操作cli-anything-minimax session status # 查看 message_count / history_count 等 cli-anything-minimax session clear # 清空上下文开启新一轮对话 cli-anything-minimax session history --limit 50 # 查看最近命令历史对于希望每次调用都从零开始的脚本场景可在调用前执行session clear避免历史上下文被带入下一轮请求。八、Config 命令组配置文件即 Key 仓库# 写入配置 cli-anything-minimax config set api_key your-key cli-anything-minimax config set default_model MiniMax-M2.7 # 查看不传 key 显示全部传 key 查单项 cli-anything-minimax config get cli-anything-minimax config get api_key # 删除 / 查看路径 cli-anything-minimax config delete api_key cli-anything-minimax config path从 minimax_cli.py 可见config set目前接受的可写 key 为api_key与default_model两个枚举值由click.Choice限制。配置文件落在~/.config/cli-anything-minimax/config.json通过config path可以随时打印确切路径。需要注意的是当前 CLI 解析默认模型时优先采用命令行--model 全局--model 常量 MiniMax-M3的规则default_model配置项当前作为可持久化配置存在具体生效逻辑以工具后续版本为准。九、模型与音色注册表9.1 Chat 模型技能文档定义模型 ID说明MiniMax-M3新一代旗舰模型默认MiniMax-M2.7高性能、高性价比这两条目在 minimax_backend.py 的TEXT_MODEL_CONFIG[models]中有更详细的元数据佐证并最终展开为CHAT_MODELSMiniMax-M3上下文窗口 1,000,000 tokens输入模态支持 text / image / videothinking 支持 adaptive / disabledMiniMax-M2.7上下文窗口 204,800 tokens仅文本输入thinking 为 always_on。以上字段均为仓库 minimax_backend.py 与 test_core.py 中登记的目录级信息具体以 MiniMax 官方最新能力为准。定价、上下文等字段被单元测试精确断言属于模型目录的一部分而非运行保证。9.2 TTS 模型技能文档定义模型 ID说明speech-2.8-hd高清 TTS默认speech-2.8-turbo快速 TTSspeech-2.6-hd高清 TTSspeech-2.6-turbo快速 TTSspeech-02-hd高清 TTSspeech-02-turbo快速 TTSspeech-01-hd高清 TTSspeech-01-turbo快速 TTS该列表与MULTIMODAL_CONFIG[speech][models]一致test_core.py 的test_tts_models_list断言恰好 8 个模型并可通过cli-anything-minimax models --tts实时列出。9.3 音色列表工具内置 6 个英文音色 IDTTS_VOICES常量English_Graceful_Lady、English_Insightful_Speaker、English_radiant_girl、English_Persuasive_Man、English_Lucky_Robot、English_expressive_narrator运行cli-anything-minimax voices即可查看。十、面向 AI Agent 的调用规范技能文档专门给出了 Agent 集成时的四条硬性约定这也是整个 CLI-Anything 生态通用的机器可读契约始终使用--json标志保证输出可解析——开启后所有命令输出统一的 JSON 结构错误时输出{error: ..., type: ...}见 minimax_cli.py 的handle_error装饰器检查返回码——0 表示成功非零表示失败handle_error在非 REPL 模式下出错会sys.exit(1)失败时解析 stderr获取错误信息——人类可读的错误消息统一走click.echo(..., errTrue)TTS 输出文件使用绝对路径——避免 Agent 的工作目录漂移导致落盘位置不确定。典型 Agent 调用序列# 1. 连通性测试 cli-anything-minimax --json test # 2. 单次对话限制 token 数 cli-anything-minimax --json chat --prompt Hello --max-tokens 10 # 3. 语音合成到绝对路径 cli-anything-minimax --json tts --text Hello world --output /tmp/hello.mp3完整的无后端 smoke 测试、缺 Key / 非法 Key 场景下的 JSON 错误、以及本地 MiniMax 兼容 Fake 服务器上的 chat / tts 子进程测试都记录在 tests/TEST.md 中。十一、本地验证与测试矩阵无需真实 Key 即可进行的验证文档记录于 TEST.mdcd minimax/agent-harness python3 -m py_compile \ cli_anything/minimax/minimax_cli.py \ cli_anything/minimax/core/session.py \ cli_anything/minimax/utils/minimax_backend.py \ cli_anything/minimax/tests/test_core.py \ cli_anything/minimax/tests/test_full_e2e.py python3 -m pytest cli_anything/minimax/tests/test_core.py cli_anything/minimax/tests/test_full_e2e.py -v仓库验证记录显示本地无 Key 环境下 25 个单元 E2E 用例全部通过25 passed强制安装态 CLI smoke 5 个用例通过。测试覆盖包括API Key 三级优先级、配置读写、请求体默认 temperature1.0、SSE 流式解析、TTS hex 解码、区域端点选择、API 级错误包装等测试源码见 tests/test_core.py 与 tests/test_full_e2e.py。需要真实后端验证时的命令序列需设置MINIMAX_API_KEYcli-anything-minimax --json test cli-anything-minimax --json chat --prompt Say ok only --max-tokens 10 cli-anything-minimax stream --prompt Say ok only --max-tokens 10 cli-anything-minimax --json tts --text MiniMax validation --output /tmp/minimax-validation.mp3 test -s /tmp/minimax-validation.mp3十二、REPL无参数启动的交互模式不带任何子命令直接运行cli-anything-minimax会进入基于 prompt-toolkit 的交互式 REPL。REPL 内部维护一张命令速查表chat --prompt text、stream、tts --text text --output out.mp3、models、voices、session ...、config ...、test、help、quit/exit并对输入行做shlex.split后递归复用 Click 主入口minimax_cli.py。终端外观由统一的 repl_skin.py 提供带 cli-anything 品牌标识的启动横幅、自动补全、历史联想与历史搜索让多轮对话与 TTS 试听在同一次会话里连续完成。十三、版本说明技能文档标注版本为1.0.0REPL 启动横幅中亦显示 1.0.0而打包元数据 setup.py 中的发行版本为1.1.0已包含 FIX_NOTES.md 记录的 TTS 参数遮蔽修复与 E2E smoke 测试增强。两者差异来自技能文件与打包配置的维护节奏不同步在实际集成以pip show cli-anything-minimax返回的安装版本为准。无论哪个版本建议先运行--help与--json test确认环境就绪。结语cli-anything-minimax用一个 Click 命令行把 MiniMax 的对话大模型与语音合成能力统一收纳并围绕可脚本化、可被 Agent 解析设计了全局--json、三级 API Key 解析、SSE 流式 chat/tts、本地会话持久化与完整测试矩阵。无论是想在终端里快速试用 MiniMax-M3 与 speech-2.x还是希望为自己的 Agent 接入一个结构化的 MiniMax 工具入口都可以直接以本文中的命令与配置为起点开始集成。相关技能文档位于 minimax/agent-harness/cli_anything/minimax/skills/SKILL.md可作为 Agent 环境的运行时技能文件直接引用。【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表