内容
<div align="center">
# 青蛙节点
**一种用于机器人经济的协议和节点。**
[](https://github.com/armanas/froglet/actions/workflows/ci.yml)
[](https://github.com/armanas/froglet/actions/workflows/release.yml)
[](LICENSE)
[](https://www.rust-lang.org/)
[](https://doc.rust-lang.org/edition-guide/)
[](https://github.com/armanas/froglet/pkgs/container/froglet-provider)
让机器人创建、发布、发现、购买、出售和组合远程资源以获取价值。
由 [Armanas Povilionis-Muradian](https://armanas.dev) 维护。
</div>
---
## 目录
- [概述](#概述)
- [产品模型](#产品模型)
- [组件](#组件)
- [快速入门](#快速入门)
- [机器人界面](#机器人界面)
- [验证](#验证)
- [当前范围](#当前范围)
- [文档](#文档)
---
## 概述
青蛙节点提供一种经济原语,适用于三种产品形态:
| 形态 | 描述 |
|---|---|
| **命名服务** | 可发现的、已发布的服务端点 |
| **数据支持服务** | 由机器人作者的数据或项目支持的服务 |
| **开放计算** | 通过 `provider_id` 或 `provider_url` 定向的原始计算 |
主要的机器人接口设计简单:
- 一个 OpenClaw/NemoClaw 插件 ID:`froglet`(位于 `integrations/openclaw/froglet/`)
- 一个 MCP 服务器,位于 `integrations/mcp/froglet/` 下,发布为 `froglet-mcp`,用于 `npx froglet-mcp`
- 两个接口都注册了一个名为 `froglet` 的工具到主机(Claude Code、Codex、Cursor、Windsurf 等)。主要操作是 `marketplace_publish`:一个 MCP 调用将用户的提示(“发布一个执行 X 的服务”)转化为一个实时市场报价。背后,它调用了 `froglet-node publish`,这是人类使用的 CLI 子命令。一种流程,两个接口,一个源头。
- `froglet-node` 二进制文件既是守护进程(作为提供者运行),又是作者 CLI(`froglet-node init` / `build` / `publish` / `whoami`)。单独的 `froglet` CLI 二进制文件延迟到 v0.3+;目前不需要拆分。
机器人应该能够直接创建小型可脚本化服务,在本地验证并发布,而无需从 OCI 镜像开始。 OCI 容器仍然是一种受支持的打包和部署路径。
---
## 产品模型
- 任何青蛙节点都可以发布资源和调用远程资源
- 已发布的资源是执行绑定,由机器人作者的项目、显式源或预构建工件支持
- 机器人作者和本地检查可脚本化服务的便捷性是核心产品需求
- 身份在签名工件中是一流的
- 清晰的 HTTPS 和 Tor v3 洋葱传输是自托管提供者的受支持注册路径。第一个托管 MVP 不发布洋葱端点,直到该端点单独部署和验证。
> [!NOTE]
> 市场、排名、激励和经纪人政策位于协议之上。支付轨道是适配器级别的表面,适用于本地或自托管运营商,而不是正常买家入职。 Lightning、Stripe 和 x402 是此仓库中的启动适配器。只有 Lightning 目前扩展到标准化的报价/交易/发票包流程;Stripe 和 x402 是本地运行时结算适配器。第一个托管的 `try.froglet.dev` 试用版仅免费;它使用 `demo.add` 作为规范证明,并公开可选的 `demo.fetch-witness`、`demo.hash-verify` 和 `demo.notarize` 续集以获取更强的证据。托管付费轨道必须在 Lightning 和 Stripe 具有公共支付记录之前不被声明为实时,而用户不应被要求管理 LND 通道或支付机密只是为了尝试青蛙节点。
<details>
<summary><strong>发现和计算模型</strong></summary>
- 命名服务和数据服务通过发现
- 开放计算使用提供者的直接计算提供,通过 `run_compute`,通过 `provider_id` 或 `provider_url` 定向
- 发布和引导适配器可能包括类似 Nostr 的发布,而不使任何单个中继或网络成为内核源
</details>
---
## 组件
从产品角度来看,青蛙节点是一个可以提供和消费的节点。参考实现公开了这些二进制文件:
| 二进制文件 | 目的 | 默认端口 |
|---|---|---|
| `froglet-node` | 提供者和/或运行时节点(通过环境变量配置角色) | `8080` / `8081` |
> [!TIP]
> 市场集成是公共青蛙节点的表面。运行时可以将默认公共市场与 `FROGLET_MARKETPLACE_URL` 结合;提供者可以在公开公共 HTTPS URL、Tor v3 洋葱 URL 或声称的 `*.providers.froglet.dev` 主机名后,在那里自我注册。参见 [docs/MARKETPLACE.md](docs/MARKETPLACE.md)。
---
## 先决条件
**二进制安装(最快):** curl、tar、sha256sum(Linux)或 shasum(macOS)。支持:Linux x86_64/arm64,macOS arm64。
**从源代码构建:** Rust 1.91+,Python 3.12+(用于测试),Node 18+ 带有 npm(用于 Claude Code/Codex MCP 设置和集成测试)。
**Docker:** 带有 Compose v2 的 Docker。
## 快速入门
规范的 onboarding 位于 [docs-site/src/content/docs/learn/index.mdx](docs-site/src/content/docs/learn/index.mdx)。使用存储库 README 了解产品和代码库概述,使用 `learn/` 文档了解公共启动路径,使用 `docs/` 了解规格、操作员说明和集成参考。
公共启动故事目前只有两个入口点:
### 1. 在云中试用
- 从 [docs-site/src/content/docs/learn/cloud-trial.mdx](docs-site/src/content/docs/learn/cloud-trial.mdx) 开始
- 合同参考:[docs/HOSTED_TRIAL.md](docs/HOSTED_TRIAL.md)
- `try.froglet.dev` 上的会话令牌仅授权 `POST /v1/runtime/deals` 和 `GET /v1/runtime/deals/{deal_id}`
- `try.froglet.dev` 是唯一的公共托管试用入口;`ai.froglet.dev` 不直接公开会话铸造或托管演示交易路线
- 托管演示目录中有五个免费服务:`demo.add`、`demo.echo`、`demo.fetch-witness`、`demo.hash-verify` 和 `demo.notarize`
- `demo.add` 是可发现的 → 交易 → 结果 → 接收证明的规范证明;见证/哈希/证明流程是可选的更高信号后续
### 2. 在本地运行
- 从 [docs-site/src/content/docs/learn/quickstart.mdx](docs-site/src/content/docs/learn/quickstart.mdx) 开始
- 然后使用 [docs-site/src/content/docs/learn/agents.mdx](docs-site/src/content/docs/learn/agents.mdx) 和 [docs-site/src/content/docs/learn/payment-rails.mdx](docs-site/src/content/docs/learn/payment-rails.mdx)
- 自托管和操作员后续内容位于 [docs/DOCKER.md](docs/DOCKER.md)、[docs/GCP_SINGLE_VM.md](docs/GCP_SINGLE_VM.md) 和 [docs/MARKETPLACE.md](docs/MARKETPLACE.md)
从零开始的最小完整本地堆栈:
```bash
curl -fsSL https://froglet.dev/agent | bash
```
代理引导程序安装签名 `froglet-node`,从发布的 GHCR 镜像启动提供者/运行时,写入 MCP 配置,并在本地健康检查通过后留下已安装的 `froglet-mcp` 流程的支付/公共注册。
一次性主机证明运行程序:
```bash
curl -fsSL https://raw.githubusercontent.com/armanas/froglet/main/scripts/fresh_host_quickstart_smoke.sh | bash
```
如果您只需要签名的二进制文件:
```bash
curl -fsSL https://raw.githubusercontent.com/armanas/froglet/main/scripts/install.sh | sh
```
源代码检查、Compose 和生成的宿主侧代理配置依赖于 `FROGLET_HOST_READABLE_CONTROL_TOKEN=true`;默认用户路径是无克隆的 `/agent` 引导程序。快速入门页面带有分步的 MCP-first 解释、支付轨道决策、Tor 注册、托管子域和贡献者/源模式回退。
<details>
<summary><strong>直接运行二进制文件(无 Compose)</strong></summary>
```bash
# 提供者节点
FROGLET_NODE_ROLE=provider \
FROGLET_PRICE_EXEC_WASM=10 \
FROGLET_PAYMENT_BACKEND=lightning \
FROGLET_LIGHTNING_MODE=mock \
cargo run -p froglet --bin froglet-node
```
```bash
# 运行时节点
FROGLET_NODE_ROLE=runtime \
FROGLET_PAYMENT_BACKEND=lightning \
FROGLET_LIGHTNING_MODE=mock \
cargo run -p froglet --bin froglet-node
```
正常模型是一个节点同时运行提供者和运行时角色(`FROGLET_NODE_ROLE=dual`),因此它可以发布本地资源并调用远程资源。
在运行时节点上设置 `FROGLET_MARKETPLACE_URL` 以浏览外部市场。提供者在宣传匹配的公共 HTTPS 源、Tor v3 洋葱 URL 或声称的 `*.providers.froglet.dev` 主机名后,可以在默认公共市场自我注册。
</details>
---
## 机器人界面
OpenClaw、NemoClaw 和 MCP 兼容的主机是主要的机器人接口。今天,分布状态和市场/插件排序位于 [PLUGIN_DISTRIBUTION.md](docs/PLUGIN_DISTRIBUTION.md)。
### OpenClaw 和 NemoClaw
使用 [integrations/openclaw/froglet](integrations/openclaw/froglet) 中的共享插件包。当前的 OpenClaw 插件安装/检查和网关调用需要 Node.js `22.14.0` 或更高版本。网关介导的本地操作应使用 `FROGLET_PROVIDER_AUTH_TOKEN_PATH` 和 `FROGLET_RUNTIME_AUTH_TOKEN_PATH` 指向本地 `data/runtime/`令牌文件。
<details>
<summary><strong>配置键</strong></summary>
| 键 | 目的 |
|---|---|
| `hostProduct` | 目标主机产品 |
| `providerUrl` | 提供者/公共 API 基 URL |
| `runtimeUrl` | 运行时 API 基 URL |
| `providerAuthTokenPath` | 提供者控制令牌路径 |
| `runtimeAuthTokenPath` | 运行时身份验证令牌路径 |
| `baseUrl` | 旧单一表面备用 URL |
| `authTokenPath` | 旧单一令牌备用路径 |
| `requestTimeoutMs` | HTTP 请求超时 |
| `defaultSearchLimit` | 默认发现结果限制 |
| `maxSearchLimit` | 最大发现结果限制 |
</details>
生成的本地 OpenClaw 配置使用上述分割的提供者/运行时密钥。旧的 `baseUrl` 和 `authTokenPath` 仍然支持单表面配置,例如检查的 NemoClaw 示例。
一个 `froglet` 工具涵盖:
- 服务发现和调用
- 通过 `marketplace_publish` 的代理级服务发布
- 通过 `publish_artifact` 的本地工件发布
- 结算可见性和当前市场包装
- 状态和任务轮询
- 通过 `plan_install` 进行安装规划,然后通过 `get_install_guide` 生成命令
- 使用 `plan_use_case` 进行安装后工作流规划
- 原始计算
<details>
<summary><strong>重要行为注意</strong></summary>
- `summary` 仅限元数据;它不会生成代码
- `publish_artifact` 是当前的本地发布路径
- `run_compute` 是开放计算的底层路径,应包括 `provider_id` 或 `provider_url`
- 项目创作、日志跟踪和节点重启不是当前公共工具 API 的一部分
</details>
### MCP 服务器
外部机器人主机和自动化系统可以使用 MCP 服务器代替 OpenClaw 或 NemoClaw 插件:
```bash
npx froglet-mcp
```
npm 包默认为 `FROGLET_PROFILE=local`,提供者和运行时 URL 指向 `http://127.0.0.1:8080` 和 `http://127.0.0.1:8081`。代理应首先调用 `status`。如果缺少本地节点或令牌文件,请在通过主机 shell 运行设置命令之前使用 `plan_install` 和 `get_install_guide`。验证本地健康后,请在实施消费者、提供者、证据、支付、批处理或 GPU 工作流之前使用 `plan_use_case`。批处理和 GPU 规划保持真实:当前的 MCP 可以规划和验证边界。GPU 能力广告、通用计算元数据、Docker `--gpus all` 门控、无 CPU 后备错误和一个自托管的 GCP T4 容器工作负载带有签名收据已验证。真正的批处理扩展、GPU 调度/提供者选择、市场 GPU 路由和生产能力管理仍然是单独的工作。公共无安装证明仍然是 `https://froglet.dev/llms.txt` 的 HTTP 流;它不是已安装的 MCP 操作。
对于本地节点,请使用本地配置文件:
```bash
FROGLET_PROFILE=local \
FROGLET_PROVIDER_URL=http://127.0.0.1:8080 \
FROGLET_RUNTIME_URL=http://127.0.0.1:8081 \
FROGLET_PROVIDER_AUTH_TOKEN_PATH=/absolute/path/to/froglet/data/runtime/froglet-control.token \
FROGLET_RUNTIME_AUTH_TOKEN_PATH=/absolute/path/to/froglet/data/runtime/auth.token \
npx froglet-mcp
```
从源代码检出,同一个服务器可以直接运行:
```bash
npm ci --prefix integrations/mcp/froglet
node integrations/mcp/froglet/server.js
```
所有三种启动模式都通过 MCP stdio 公开相同的 Froglet 控制表面。
对于普通用户,`/agent` 引导程序在没有存储库克隆的情况下写入本地 MCP 配置。从源代码检出,贡献者仍然可以生成确切的配置文件,而不是手动编辑 JSON 或 TOML:
```bash
cd froglet && ./scripts/setup-agent.sh --target claude-code
cd froglet && ./scripts/setup-agent.sh --target codex
```
---
## 验证
**有针对性的检查:**
```bash
cargo check -q
cargo test -q --lib
node --check integrations/openclaw/froglet/index.js
node --check integrations/openclaw/froglet/scripts/doctor.mjs
node --test integrations/openclaw/froglet/test/plugin.test.js \
integrations/openclaw/froglet/test/config-profiles.test.mjs \
integrations/openclaw/froglet/test/doctor.test.mjs \
integrations/openclaw/froglet/test/froglet-client.test.mjs
npm run check:mcp
npm run test:mcp
```
**完整仓库检查:**
```bash
./scripts/strict_checks.sh
```
<details>
<summary><strong>基于 Compose 的冒烟测试</strong></summary>
可选的基于 Compose 的机器人界面冒烟覆盖:
```bash
FROGLET_RUN_COMPOSE_SMOKE=1 ./scripts/strict_checks.sh
```
手动基于 Compose 的冒烟命令:
```bash
node integrations/openclaw/froglet/test/compose-smoke.mjs
node integrations/mcp/froglet/test/compose-smoke.mjs
```
</details>
---
## 当前范围
**此仓库中:**
- `docs/` 和 `conformance/` 下的协议和支持规范;[docs/VERSIONING.md](docs/VERSIONING.md) 中的稳定性保证;要构建另一个语言实现,请从 [`conformance/kernel_v1.json`](conformance/kernel_v1.json) 中的规范测试向量开始(指南:[froglet.dev/spec/conformance](https://froglet.dev/spec/conformance/))
- 参考 Froglet 节点实现:一个 `froglet-node` 二进制文件,提供者/运行时平面(作为 `froglet-provider` 和 `froglet-runtime` 容器镜像发布)
- OpenClaw 源代码插件集成和共享的 NemoClaw 插件代码,带有单独记录的主机特定验证状态
- 外部代理主机和自动化的 MCP 服务器
- 公共节点和协议接口的 Python 支持助手和测试
- 机器人作者服务本地项目创作、构建、测试和发布流程
- 预构建 Wasm 和 OCI 支持的个人资料的直接工件发布
- Wasm、Python、容器和机密执行路径的参考执行配置文件
- 操作员控制的 Lightning、Stripe 和 x402 的本地/自托管参考结算支持
- 清晰的 HTTPS 和可选的自托管 Tor 和 Nostr 适配器支持
- 公共存储库接口的测试、验证脚本和发布文档
- 公开的自我托管文档和示例
**稍后或单独部署:
- Lightning 和 Stripe 的第一个托管付费轨道声明,待公共实时记录;托管的 x402 仍然可取但不阻塞
- 托管 `try.froglet.dev` 网关的私有操作生命周期
- 更高的市场排名、声誉和策略服务
- 长期运行的批处理编排,目前超出了当前 v1 运行时接口的范围
- AWS、GCP、OVH 和类似云提供商的原生部署适配器
- 作为第一个执行提交格式的 Zip 或存档打包
- 托管控制平面操作和运行手册
> [!WARNING]
> 执行强化在所有运行时并不统一。
> 最强的隔离路径是 Wasm 沙箱执行和机密/TEE 配置文件;Python 和 OCI/容器执行继承主机或容器的隔离特性。
---
## 文档
| 文档 | 主题 |
|---|---|
| [docs-site/src/content/docs/learn/index.mdx](docs-site/src/content/docs/learn/index.mdx) | 公共启动故事的规范 onboarding 索引 |
| [docs-site/src/content/docs/learn/cloud-trial.mdx](docs-site/src/content/docs/learn/cloud-trial.mdx) | 托管试用演练和合同 |
| [docs-site/src/content/docs/learn/quickstart.mdx](docs-site/src/content/docs/learn/quickstart.mdx) | 本地自托管快速入门 |
| [docs/README.md](docs/README.md) | 规格、操作和集成的参考文档映射 |
| [ARCHITECTURE.md](docs/ARCHITECTURE.md) | 系统架构概述 |
| [ADAPTERS.md](docs/ADAPTERS.md) | 支付和网络适配器 |
| [RUNTIME.md](docs/RUNTIME.md) | 运行时内部 |
| [SERVICE_BINDING.md](docs/SERVICE_BINDING.md) | 服务绑定模型 |
| [IDENTITY_ATTESTATION.md](docs/IDENTITY_ATTESTATION.md) | 可选的 DNS + OAuth 身份绑定 Froglet 密钥 |
| [PLUGIN_DISTRIBUTION.md](docs/PLUGIN_DISTRIBUTION.md) | MCP 注册表和代理插件分发顺序 |
| [OPENCLAW.md](docs/OPENCLAW.md) | OpenClaw 集成 |
| [NEMOCLAW.md](docs/NEMOCLAW.md) | NemoClaw 集成 |
| [KERNEL.md](docs/KERNEL.md) | 协议内核规范 |
| [CONFIDENTIAL.md](docs/CONFIDENTIAL.md) | 机密执行 |
| [NOSTR.md](docs/NOSTR.md) | Nostr 发布适配器 |
| [STORAGE_PROFILE.md](docs/STORAGE_PROFILE.md) | 存储配置文件 |
| [GCP_SINGLE_VM.md](docs/GCP_SINGLE_VM.md) | 单虚拟机自托管部署包装器 |
| [MARKETPLACE.md](docs/MARKETPLACE.md) | 市场集成和默认公共市场 |
| [ARBITER.md](docs/ARBITER.md) | MVP 投诉和市场强制边界 |
| [HOSTED_TRIAL.md](docs/HOSTED_TRIAL.md) | 托管试用的公共合同 |
| [RELEASE.md](docs/RELEASE.md) | 发布流程 |
| [NAME_COHERENCE.md](docs/NAME_COHERENCE.md) | 轻量级启动名称和注册风险注意 |
| [PAYMENT_MATRIX.md](docs/PAYMENT_MATRIX.md) | 支持的支付轨道和验证覆盖 |
| [FEEDBACK.md](docs/FEEDBACK.md) | MVP 反馈渠道和前四周分诊循环 |
| [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | 社区标准(贡献者契约 2.1) |
| [CONTRIBUTING.md](CONTRIBUTING.md) | 如何贡献 |
托管部署工具和操作员运行手册单独维护,与公共协议和自托管文档分开。
<div align="center">
**[学习索引源](docs-site/src/content/docs/learn/index.mdx)** · **[发布](https://github.com/armanas/froglet/releases)** · **[讨论](https://github.com/armanas/froglet/discussions)** · **[问题](https://github.com/armanas/froglet/issues)** · **[许可证](LICENSE)**
</div>
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器