可启动MCP服务器
让你的代理人做出经过校准的决定。这 模型上下文协议 服务器允许任何MCP客户端(Claude Desktop, Claude Code或您自己的代理堆栈)调用Myles, Launchables决策模型作为工具。
迈尔斯不是一个聊天模特。智能体将一个情境和一个或多个输入问题交给它,然后返回每个选项的概率,选择,以及选择是否足够确定采取行动。如果不是,这个工具就会这么说,然后代理把箱子交给一个人。使用它的地方,否则一个代理判断自己的事情,然后采取行动:
- 路线 一张门票,一封电子邮件,或者找到合适的团队。
- 国旗 风险:骗局、欺诈、即时注入、违反政策。
- 批准、拒绝或升级 退款,索赔,访问请求或工具调用。
- 检查 一个答案是由它的来源支持的,或者一个行动是由策略允许的。
- 率 等级上的严重性、紧迫性或质量
概率是经过校准的:在许多给出0.9的答案中,大约90%是正确的。这就是让代理人对自信的人采取行动,并将其余的传递给人们的原因。看到 根据答案采取行动。
安装
你需要Node.js 20或更高版本,以及一个Launchables API密钥 控制台. 键与托管API一起工作 https://api.launchables.ai;自托管部署在自己的地址上提供相同的API。
克劳德桌面
把这个添加到 claude_desktop_config.json (设置,开发者,编辑配置),然后重启Claude Desktop:
{
"mcpServers": {
"launchables": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"LAUNCHABLES_API_KEY": "launchables_..."
}
}
}
}
克劳德代码
claude mcp add launchables -e LAUNCHABLES_API_KEY=launchables_... -- npx -y [email protected]
与团队共享设置,通过项目的 .mcp.json,将密钥从文件中取出,并让每个人的环境提供它;
{
"mcpServers": {
"launchables": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": { "LAUNCHABLES_API_KEY": "${LAUNCHABLES_API_KEY}" }
}
}
}
其他MCP客户端
任何启动工作室服务器的客户端都可以运行它。命令是 npx -y [email protected] (或 launchables-mcp 后 npm install -g launchables-mcp),其环境中有以下配置。如上所述,固定版本,这样更新只在您选择时才会到达代理。
配置
| 变量 | 默认的 | 意义 |
|---|---|---|
LAUNCHABLES_API_KEY | 要求 | 您的API密钥。 LAUNCHABLES_API_TOKENLaunchables sdk使用的名称也可以。 |
LAUNCHABLES_BASE_URL | https://api.launchables.ai | 为自托管部署将其设置为您自己的地址。平原 http:// 仅在同一机器上的服务器上接受,除非您还设置 LAUNCHABLES_ALLOW_HTTP=1因为如果不加密,密钥就会在网络上传输。 |
LAUNCHABLES_MODEL | myles-g-12b | 模型a decide 调用没有命名时使用。移动的id (myles-g-12b, myles-g-31b)遵循当前的构建;带有日期的id,例如 myles-g-31b-20261027 固定一个构建。 |
LAUNCHABLES_THRESHOLD | 0.9 | pick必须达到无人操作的概率,从0.5到1。一个电话或一个问题都可以自行设定,除非 LAUNCHABLES_LOCK_THRESHOLD 正在进行。 |
LAUNCHABLES_LOCK_MODEL | 0 | 设置为 1 让每一个电话都有用 LAUNCHABLES_MODEL. 代理不再提供 model 参数,而无论如何发送一个参数的调用将被拒绝,并出现类型为 setting_locked。 |
LAUNCHABLES_LOCK_THRESHOLD | 0 | 设置为 1 使每个答案都有用 LAUNCHABLES_THRESHOLD. 不再提供代理 threshold (用于呼叫或问题),无论如何发送一个的呼叫都会被拒绝,并出现类型错误 setting_locked。 |
LAUNCHABLES_TIMEOUT_SECONDS | 25 | 最多一个工具调用可能占用所有的时间,包括每次尝试和重试之间的等待时间,从1秒到600秒不等。超过此值,调用将以以下类型的错误结束 timeout 再也没有人要它了。默认值适用于在30秒后停止工具调用的主机;如果你的允许时间更长,提高它。 |
LAUNCHABLES_TIMEOUT_MS | 60000 | 一次尝试可能需要多长时间,以毫秒为单位。 LAUNCHABLES_TIMEOUT_SECONDS 仍然限制了整个呼叫。 |
默认为座席呼叫 decide 在您的键允许的范围内,为每个呼叫选择模型和阈值。将这些决策留给操作者而不是代理,设置 LAUNCHABLES_LOCK_MODEL=1 和 LAUNCHABLES_LOCK_THRESHOLD=1,例如:
"env": {
"LAUNCHABLES_API_KEY": "${LAUNCHABLES_API_KEY}",
"LAUNCHABLES_MODEL": "myles-g-31b",
"LAUNCHABLES_THRESHOLD": "0.95",
"LAUNCHABLES_LOCK_MODEL": "1",
"LAUNCHABLES_LOCK_THRESHOLD": "1"
}
服务器永远不会记录你的密钥,你的状态,你的问题或答案。它不向磁盘写入任何内容,只有启动时的配置问题被写入标准错误。
工具
decide
就一种情况向迈尔斯提出一个或多个问题。
| 论点 | 意义 |
|---|---|
state | 情况:文本或JSON对象。将规则或政策与案例放在一起。 |
questions | 在你选择的名字下提问。每个人都有一个 type, instructions 和, choice 和 score, criteria;它可能也有自己的 threshold。 |
model | 可选的。来自的模型id list_models. 不提供时 LAUNCHABLES_LOCK_MODEL 正在进行。 |
threshold | 可选的。pick必须达到这个叫牌的概率。不提供时 LAUNCHABLES_LOCK_THRESHOLD 正在进行。 |
chunk, chunk_chars, chunk_overlap_chars | 可选的。在重叠的窗口中阅读长文本(如下图)。 |
每个问题都需要 instructions问题本身,用简单的话来说,比如“该政策允许退款吗?”没有空格或只有空格的问题将在发送任何内容之前被拒绝,并显示错误。API需要它们,并且没有默认值:指令是模型所回答的,而通用的替身会询问与您的意思不同的东西,即使是对于一个 choice 它的标准描述了每个选项。
问题类型:
noul:是或否。用“是”这个词来表达你要采取行动或抓住它。choice:选择一个标签。criteria是一个标签列表,或映射到描述的标签。提供一个“我不知道”的选项,让模特放弃。score秤。criteria列出级别描述,首先是最低级别。
每个答案都是:
| 场 | 意义 |
|---|---|
pick | "yes" 或 "no",选择的标签,或最可能的级别(一个数字)。 |
probability | 取到的概率。 |
probabilities | 每个选项的概率。 |
cleared_threshold | 拾取是否达到阈值。 |
abstained | 模型是否选择问题的“我不知道”选项。 |
escalate | true 当答案应该交给一个人:低于门槛,或者弃权。 |
p_yes (是/否), score 和 legend (尺度), confidence (选择和规模)添加到它们适用的地方。结果是自己的 escalate 是 true 什么时候回答都应该交给一个人,而 usage 给出代币账单。
在托管模型上,不确定的是/否答案报告为0.80或更偏向一侧,因此对是/否问题使用高于0.80的阈值。
示例调用:
{
"state": {
"policy": "Refunds within 30 days with proof of purchase.",
"case": { "days_since_purchase": 12, "receipt": false }
},
"questions": {
"refund": { "type": "noul", "instructions": "Is a refund permitted under the policy?" },
"team": { "type": "choice", "instructions": "Which team should handle this?", "criteria": ["billing", "returns", "technical"] }
}
}
结果(说明数字):
{
"model": "myles-g-12b-20261029",
"escalate": false,
"answers": {
"refund": {
"type": "noul", "pick": "no", "probability": 0.97, "probabilities": { "yes": 0.03, "no": 0.97 },
"threshold": 0.9, "cleared_threshold": true, "abstained": false, "escalate": false, "p_yes": 0.03
},
"team": {
"type": "choice", "pick": "returns", "probability": 0.94,
"probabilities": { "billing": 0.04, "returns": 0.94, "technical": 0.02 },
"threshold": 0.9, "cleared_threshold": true, "abstained": false, "escalate": false, "confidence": 0.91
}
},
"usage": { "input_tokens": 212, "output_tokens": 2 }
}
list_models
端点所服务的模型,包含固定的构建及其发布日期,以及该服务器使用的默认值。不收费。
health
API是否启动,以及哪些模型的服务器运行正常。不收费。
长输入
每个模型都有一个上下文窗口(参见 写状态). 当状态变长时:
- Myles-G 31 b 拒绝它。该工具返回类型为
context_length_exceeded它说要缩短或分裂国家。 - Myles-G 12 b 把它修剪得合适,保持它的开头和结尾,结果就是这样
truncated: true,state_chars还有一个警告。
对于必须涵盖整个长文本的是/否检查(此合同的任何部分是否包含自动续订条款,此页面的任何部分是否试图覆盖代理的指示),通过 chunk: true. 文本是在40,000个字符的重叠窗口中阅读的(其中2000个与下一个共享 chunk_chars 和 chunk_overlap_chars),每个窗口都被问到同样的问题,每个答案都是最有可能是“是”的窗口 window 给出它的位置。JSON状态以缩进JSON文本的形式显示。分块处理只接受是/否问题,最多发送20个窗口,并将每个窗口作为自己的请求。
错误
失败的调用返回一个工具错误,其 error 有一个 message 为代理编写的API type 和 status, retryable. 在速率限制或通过错误之后,调用将使用相同的等幂键自动重试几次,因此重试不会被收取两次费用,直到 LAUNCHABLES_TIMEOUT_SECONDS (默认为25)用完。以下是一些需要了解的情况:
| 情况下 | 代理人被告知的内容 |
|---|---|
401 | 钥匙丢失或未被接受;必须有人来检查。 |
402 | 透支或超出工作空间预算;请不要重试。 |
410 model_retired | 这个建筑已经退役了; successor 命名要使用的模型。 |
422 context_length_exceeded | 缩短或分裂状态,或使用 chunk: true 是/否检查。 |
429 | 重试后速率限制;等待给定的时间。 |
timeout | 电话响了过去 LAUNCHABLES_TIMEOUT_SECONDS;稍后再试一次,或者发送更短的状态或更少的块窗口。API已经回答的尝试可能仍然会被计费。 |
setting_locked | 该呼叫设置了运营商已固定的模型或阈值;不用它再打一次。 |
invalid_input | 电话在发送任何东西之前就被拒绝了,比如一个没有 instructions。 |
发展
npm install
npm test
测试只使用模拟的Decision API;它们从不调用生产API。
支持
使用 触点形式 或者在这个存储库中打开一个问题。API参考在 launchables.ai /文档。
执照
apache - 2.0(见 许可证).