使用说明
Machine commerce, made clear.
The TypeScript runtime for machine commerce.
Lucid将类型化函数转化为可发现的服务 应用程序可以调用、付费、流式传输或作为任务运行。它提供了一个 模式运行时、支付许可、策略、幂等性、履行、, 钱包、支付协议、网络和 主持人仍然是外部的。
当服务需要多个类型化功能或共享行为时,使用Lucid 跨框架。对于单一付费路线,上游支付中间件可能 依赖性较小。
从你的编码代理开始
使用Lucid的主要方式是通过一个能够理解的编码代理 运行时、包、发布通道和适配器边界。从运行此 在将第一个Lucid任务交给代理之前,您的项目根:
curl -fsSL https://docs.daydreams.systems/skills/lucid-agents/install.sh | sh
重新加载您的代理,让它使用 lucid-agents 技能,让它检查
编辑前的项目。安装程序验证版本化的技能档案
不安装npm包或修改应用程序源代码;看
技能安装指南
有关手动校验和流程和删除说明。
快速开始
需要Bun 1.3+。运行时包还支持Node.js 20.9+。
bunx @lucid-agents/cli@2.5.0 my-agent --adapter=hono --template=blank
cd my-agent
bun install
bun run dev
生成的服务公开运行状况、发现和类型 echo
入口点:
curl http://localhost:3000/health
curl http://localhost:3000/.well-known/agent-card.json
curl -X POST http://localhost:3000/entrypoints/echo/invoke \
-H 'Content-Type: application/json' \
-d '{"input":{"text":"Hello"}}'
公共npm包是 稳定 频道。此存储库是 下一步 和 可以领先于npm。将所有包裹放在一个频道上;看见 释放通道 对于当前的兼容性表。
核心api
此示例使用当前存储库界面:
import { createAgent } from '@lucid-agents/core';
import { createAgentApp } from '@lucid-agents/hono';
import { http } from '@lucid-agents/http';
import { z } from 'zod';
const runtime = await createAgent({
name: 'greeter',
version: '1.0.0',
description: 'A typed greeting service',
})
.use(http())
.addEntrypoint({
key: 'greet',
input: z.object({ name: z.string().min(1) }),
output: z.object({ message: z.string() }),
handler: async ({ input }) => ({
output: { message: `Hello, ${input.name}` },
}),
})
.build();
const { app } = await createAgentApp(runtime);
export default {
port: Number(process.env.PORT ?? 3000),
fetch: app.fetch,
};
入口点定义是验证、调用、流式传输的来源, 任务、发现和每个框架适配器。
编译 完整代理示例 添加 支付、身份和流媒体。
特征矩阵
下面的包名称使用 @lucid-agents/ 前缀。
| 能力 | 涉及的包 | 它们提供了什么 |
|---|---|---|
| 键入运行时 | core, types |
扩展生命周期、精确的运行时类型和一个入口点注册表 |
| 超文本传输协议 | http |
获取处理程序、路由规划、授权、幂等性、服务器发送事件(SSE)和服务页面数据 |
| x402商业 | payments |
以太坊虚拟机(EVM)和Solana卖家验证、EVM购买、Sign-In-With-X(SIWX)、策略和跟踪 |
| 机器支付协议(MPP) | mpp |
支付认证挑战和Tempo、Stripe或自定义凭证验证 |
| 钱包 | wallet |
用于签名和拨打电话的代理和开发人员钱包连接器 |
| 身份 | identity, wallet |
ERC-8004注册和查找、信任元数据和 开放代理模式框架(OASF) 输出 |
| 代理发现和任务 | a2a |
代理卡形发现、客户端调用和受令牌保护的异步任务 |
| 代理支付协议(AP2)元数据 | ap2 |
发现中的AP2 v0.1角色元数据 |
| 分析 | analytics, payments |
绑定付款摘要和JSON/CSV导出 |
| 日程安排 | scheduler, a2a |
租用的幂等调度代理呼叫 |
| 目录 | catalog |
YAML/CSV定义的入口点 |
| 框架 | hono, express, tanstack |
将规范HTTP合约绑定到Hono、Express或TanStack Start |
| 工装 | cli, deploy |
项目生成和受保护的提供商部署 |
| 托管客户端 | api-sdk |
为单独操作的托管运行时API生成的客户端 |
CLI生成Hono、Express、TanStack UI/headless和Next.js项目。
Next.js使用生成的App Router模块,而不是独立的适配器
包裹。看 包装参考
用于开源导出、配置和运行时支持。这个 api-sdk 有a
独立生命周期.
矩阵中的协议名称描述了Lucid实现的子集,而不是包罗万象的子集 一致性。看 协议兼容性 用于版本、绑定和排除。
运行期模型
typed entrypoint
↓
core registry + domain extensions
↓
one HTTP authorization and route contract
↓
Hono | Express | TanStack Start | generated Next.js routes
包装边界是经过深思熟虑的:
types拥有共享合同;每个域包都有自己的运行时行为。- Core直接公开扩展切片,无需包装器或重复状态。
- 适配器绑定HTTP路由计划;他们不会添加另一个付费墙或注册表。
- 内存状态是可移植的默认状态;耐用的后端是明确的。
阅读 架构指南 对于扩展订购, 授权、任务所有权、部署边界和可移植性。
指南
| 目标 | 指南 |
|---|---|
| 决定Lucid是否适合 | 何时使用Lucid |
| 构建付费服务 | 出售付费API |
| 建立一个受控的买家 | 预算买家 |
| 将Lucid添加到应用程序中 | 现有应用程序 |
| 准备生产 | 生产检查表 |
| 浏览测试示例 | 示例 |
贡献
bun install --frozen-lockfile
bun run build:packages
bun run type-check
bun run lint
bun run test:coverage
将更改保留在拥有行为的包中。添加或
修改SDK表面需要单元或集成覆盖,匹配示例冒烟
测试,更新相关内容 AGENTS.md 和包README,公共API JSDoc,
以及变更集。共享概念属于 @lucid-agents/types;不要
通过另一个包裹复制或重新导出它们。跑 bun run test:docs
更改公共示例、包引用或文档导航时。
看 贡献.md 对于开发工作流程,测试 命令、拉取请求清单和发布过程。