入门指南#
MoonBit Pilot#
在你的终端中直接释放 MoonBit 语言的原始力量。并行重构你的代码。将数小时的工作流程转变为一个单一的命令。你的工具。你的工作流程。你的代码库,以思想的速度进化。
模型配置#
在使用 MoonBit Pilot 之前,你需要通过在 ~/.moonagent/models/models.json
创建一个配置文件来配置至少一个模型:
[
{
"name": "sonnet4",
"description": "Claude Sonnet model for general tasks",
"model_name": "anthropic/claude-sonnet-4",
"model_type": "saas/openai",
"base_url": "https://openrouter.ai/api/v1",
"is_reasoning": false,
"input_price": 3.0,
"output_price": 15.0,
"max_output_tokens": 8096,
"context_window": 200000,
"api_key": "your-api-key-here"
},
{
"name": "k2",
"description": "",
"model_name": "kimi-k2-0711-preview",
"model_type": "saas/openai",
"base_url": "https://api.moonshot.cn/v1",
"is_reasoning": false,
"input_price": 0.28,
"output_price": 2.28,
"max_output_tokens": 8096,
"context_window": 120000,
"api_key": "your-api-key-here"
}
]
我们强烈推荐使用 sonnet4 并且将其放在配置文件的第一个位置。
配置字段说明#
name: 模型的唯一标识符(用于参考)
description: 模型的可读描述
model_name: API 提供商使用的实际模型标识符
model_type: API 接口类型(目前支持 “saas/openai”)
base_url: 模型提供商的 API 端点 URL
is_reasoning: 是否为推理模型(影响 token 计数)
input_price: 每百万输入 token 的成本(美元)
output_price: 每百万输出 token 的成本(美元)
max_output_tokens: 模型可以输出的最大 token 数
context_window: 总上下文窗口大小(以 token 为单位)
api_key: 您此提供商的 API 密钥
关于示例模型#
以上配置包括两个流行的模型:
[Recommend]Claude Sonnet 4 (
sonnet4
): Anthropic’s latest high-performance model via OpenRouter高上下文窗口(20 万 token)适用于复杂任务
价格较高但质量卓越
[Unstable]Kimi K2 (
k2
): Moonshot’s cost-effective modelLower pricing
12 万 token 上下文窗口
获取 API 密钥#
要使用这些模型,你需要获取 API 密钥:
OpenRouter (用于 Claude Sonnet 4): 访问 openrouter.ai 创建账户并获取你的 API 密钥
Moonshot (用于 Kimi K2): 访问 moonshot.cn 注册并获取你的 API 密钥
在配置中将 "your-api-key-here"
替换为你的实际 API 密钥。
设置#
安装 Node.js v22.16.0 然后运行:
moon pilot
用法#
MoonBit Pilot 将自动使用你配置文件中的第一个模型(在本例中为 “sonnet4”)。你可以配置多个模型,并在启动 MoonBit Pilot 时通过 --model
参数指定它们。
交互模式#
使用预览部分指定的第一个模型启动交互模式。
moon pilot
或者指定一个特定的模型:
moon pilot --model k2
交互式命令#
进入交互模式后,你可以正常输入你的需求,MoonBit Pilot 会为你响应并执行任务。
act ▶ 这个项目是做什么的?
退出交互模式#
使用
:exit
或Ctrl+D
退出应用程序使用
Ctrl+C
停止当前请求并清除当前输入
打印/非交互模式#
你可以通过 -p
标志执行一次性命令。非交互模式支持管道:
echo "这个项目是做什么的" | moon pilot -p
该命令将在完成后自动退出,非常适合程序化调用(通过编程语言中的子进程派生或 shell 脚本调用)。
你也可以将它与 cat
一起使用:
cat prompt.md | moon pilot -p
此外,非交互模式也有会话概念。之前的命令每个都会创建一个新会话,可以简单地理解为无状态的。
你可以通过 conversations
查看最近执行的非交互式命令:
moon pilot conversations
1. 0ada20c9
Name: Session 7/18/2025, 2:30:40 PM
Description: Interactive conversation
Messages: 0
Created: 7/18/2025, 2:30:40 PM
Updated: 7/18/2025, 2:30:40 PM
2. e1a5b071
Name: Session 7/17/2025, 11:55:38 AM
Description: Interactive conversation
Messages: 18
Created: 7/17/2025, 11:55:38 AM
Updated: 7/17/2025, 11:56:32 AM
你可以通过会话 ID 查看详情:
moon pilot conversation 0ada20c9
或者你可以将会话导出到 markdown 文件:
moon pilot conversation 0ada20c9 --output conversation.md
如果你想从上一个命令执行处继续,让这次修改拥有上次的上下文,你可以使用 --continue
来继续上一个会话。这样,两个命令将共享同一个对话列表:
echo "我之前问了你什么?" | moon pilot -p --continue
这允许你通过多次 moon pilot
调用来完成对话。这意味着任何第三方应用程序都可以通过简单的命令行调用轻松地与 moon pilot
集成。未来,我们还可以为各种语言提供 SDK,方便其他语言使用 moon pilot
创建交互式界面并实现包迁移工作。
当然,你也可以使用 --resume
参数恢复到特定会话,这将切换到该会话:
echo "我之前问了你什么?" | moon pilot -p --resume ed19c993
这提供了出色的可控性。