返回市场
清晰代理

清晰代理

作者:daydreamsai108 星标更新:2025-11-24

项目介绍

<div align="center"> <h1>Lucid Agents</h1> <p><strong>一种构建和货币化AI代理的协议无关多运行时框架</strong></p> <p>使用类型化的入口点、链上身份和内置支付基础设施来构建、部署和货币化自主AI代理。</p> </div> <div align="center"> <a href="https://github.com/daydreamsai/lucid-agents/blob/master/LICENSE"><img src="https://img.shields.io/github/license/daydreamsai/lucid-agents?style=for-the-badge" alt="License"></a> <a href="https://www.npmjs.com/package/@lucid-agents/cli"><img src="https://img.shields.io/npm/v/@lucid-agents/cli?style=for-the-badge" alt="NPM 版本"></a> <a href="https://github.com/daydreamsai/lucid-agents/actions"><img src="https://img.shields.io/github/actions/workflow/status/daydreamsai/lucid-agents/ci.yml?branch=master&style=for-the-badge" alt="CI 状态"></a> <a href="https://bun.sh"><img src="https://img.shields.io/badge/runtime-bun-black?style=for-the-badge&logo=bun" alt="Bun"></a> </div>

什么是 Lucid Agents?

Lucid Agents 是一个以 TypeScript 为主的框架,用于构建和货币化AI代理——这是一个代理商业和支付SDK。构建能够销售服务、促进货币交易并参与代理市场中的AI代理。

核心能力:

  • 行业标准协议:对 x402(支付)、A2A(代理间通信)和 ERC-8004(链上身份)的原生支持——构建与生态系统兼容的代理。
  • 接受支付:在以太坊L2(Base)或Solana上接受USDC支付,并自动处理支付墙中间件——无需编写支付基础设施代码。
  • 代理间通信:代理可以发现并调用其他代理,使代理市场和多代理系统中代理之间可以买卖服务。
  • 链上身份:在链上注册代理身份,建立声誉并证明所有权,以增强代理市场的信任。
  • 框架灵活性:一次编写代理逻辑,可以在Hono、TanStack Start、Express或Next.js上部署——选择适合您堆栈的框架。
  • 类型安全API:使用Zod模式定义输入/输出,获得自动验证、JSON模式和完整的TypeScript推断。
  • 实时流传输:使用Server-Sent Events (SSE)进行代理响应流传输——非常适合LLM输出和长时间运行的操作。
  • 任务管理:具有状态跟踪、取消和通过SSE订阅实时更新的长时间运行任务。
  • 自动发现:自动生成带有Open Graph标签的AgentCard清单——代理在目录中可被发现,并在共享时显示丰富的预览。
  • 快速开始:使用模板进行CLI搭建——几分钟内即可创建一个工作的代理,而不是几小时。
  • 多网络支持:在EVM(Base、Ethereum、Sepolia)或Solana(主网、测试网)网络上接受支付。
  • 组合架构:只需添加您需要的功能——支付、身份、A2A、钱包——根据代理的发展需求进行混合搭配。

无论您是构建付费AI服务、代理市场还是代理之间相互交易的多代理系统,Lucid Agents都提供了所需的支付和商业基础设施。


快速开始(5分钟)

几分钟内启动您的第一个货币化AI代理。

先决条件

  • Bun >= 1.0(推荐)或 Node.js >= 20.9
  • 您首选的LLM提供商的API密钥(OpenAI、Anthropic等)
  • 可选:接收支付的钱包地址

1. 创建并配置您的代理

# 交互模式 - CLI引导您完成所有选项
bunx @lucid-agents/cli my-agent

# 或使用内联配置进行更快设置
bunx @lucid-agents/cli my-agent \
  --adapter=hono \
  --template=axllm \
  --AGENT_NAME="我的AI代理" \
  --AGENT_DESCRIPTION="AI驱动的助手" \
  --OPENAI_API_KEY=your_api_key_here \
  --PAYMENTS_RECEIVABLE_ADDRESS=0xYourAddress \
  --NETWORK=base-sepolia \
  --DEFAULT_PRICE=1000

CLI将:

  • 适配器选择hono(HTTP服务器)、tanstack-ui(全仪表板)、tanstack-headless(仅API)、express(Node.js服务器)或next(Next.js应用路由器)
  • 模板选择blank(最小)、axllm(基于LLM)、axllm-flow(工作流程)、identity(链上身份)、trading-data-agent(商家)或trading-recommendation-agent(购物者)
  • 配置:设置代理元数据、LLM密钥和可选支付详情
  • 安装依赖项:自动运行bun install

2. 启动您的代理

cd my-agent
bun run dev

您的代理现在正在http://localhost:3000运行!

试一试:

# 查看代理清单
curl http://localhost:3000/.well-known/agent.json

# 列出入口点
curl http://localhost:3000/entrypoints

# 调用入口点(例如回声模板)
curl -X POST http://localhost:3000/entrypoints/echo/invoke \
  -H "Content-Type: application/json" \
  -d '{"input": {"text": "你好,Lucid Agents!"}}'

架构概述

Lucid Agents是一个TypeScript单体仓库,旨在实现协议无关、多运行时代理部署,并采用组合扩展架构:

  • 第1层:核心 - 协议无关代理运行时,带扩展系统(@lucid-agents/core)- 不含特定协议代码
  • 第2层:扩展 - 通过组合添加的可选功能:http()(HTTP协议)、payments()(x402)、wallets()(钱包管理)、identity()(ERC-8004)、a2a()(代理间通信)、ap2()(代理支付协议)
  • 第3层:适配器 - 框架集成(hono、tanstack、express、next),使用HTTP扩展

核心运行时完全协议无关——如HTTP等协议作为扩展提供,合并到运行时中。未来协议(gRPC、WebSocket等)可以作为额外扩展添加。

有关详细的架构文档,包括依赖图、请求流和扩展系统设计,请参阅docs/ARCHITECTURE.md

  • @lucid-agents/types - 所有包使用的共享类型定义
  • @lucid-agents/core - 带扩展系统的协议无关代理运行时
  • @lucid-agents/http - 处理请求/响应、流传输和SSE的HTTP扩展
  • @lucid-agents/wallet - 代理和开发者钱包管理的SDK
  • @lucid-agents/payments - 多网络支付处理的x402支付工具
  • @lucid-agents/identity - 链上代理身份的ERC-8004工具包
  • @lucid-agents/a2a - 代理间通信的A2A协议客户端
  • @lucid-agents/ap2 - 用于代理卡片的AP2(代理支付协议)扩展
  • @lucid-agents/hono - Hono HTTP服务器适配器
  • @l_ucid-agents/express - Express HTTP服务器适配器
  • @lucid-agents/tanstack - TanStack Start适配器(UI和无头变体)
  • @lucid-agents/cli - 创建新代理项目的CLI搭建工具

关键概念

入口点:定义代理功能的类型化API端点。每个入口点都有:

  • 输入/输出模式(Zod)
  • 可选定价(x402)
  • 处理程序(同步)或流处理程序(SSE)

适配器:暴露您的入口点为HTTP路由的运行时框架。根据您的部署需求选择:

  • hono - 轻量级、边缘兼容的HTTP服务器
  • tanstack - 全栈React,带有UI仪表板(或仅API的无头变体)
  • express - 传统的Node.js HTTP服务器
  • next - Next.js应用路由器集成

A2A通信:允许代理调用其他代理的代理间通信协议:

  • 直接调用:通过client.invoke()client.stream()进行同步调用
  • 基于任务的操作:长时间运行的任务,具有sendMessage()、状态跟踪和取消
  • 多轮对话:使用contextId将相关任务分组,适用于对话代理
  • 代理组合:代理可以充当客户端和服务器,实现复杂的供应链

清单:自动生成的AgentCard(.well-known/agent-card.json),描述代理的能力、定价和身份,供发现工具和A2A协议使用。使用不可变组合模式构建。

支付网络:在以下网络上接受支付:

  • EVM:Base、Ethereum、Sepolia(ERC-20 USDC)
  • Solana:主网、测试网(SPL USDC)

身份:用于声誉和信任的ERC-8004链上身份。注册一次,在所有网络中引用。


关键包

核心包

@lucid-agents/core

协议无关代理运行时,带扩展系统。

import { createAgent } from '@lucid-agents/core';
import { http } from '@lucid-agents/http';
import { z } from 'zod';

const agent = await createAgent({
  name: 'my-agent',
  version: '1.0.0',
  description: '我的第一个代理',
})
  .use(http())
  .build();

agent.entrypoints.add({
  key: 'greet',
  input: z.object({ name: z.string() }),
  async handler({ input }) {
    return { output: { message: `你好,${input.name}!` } };
  },
});

@lucid-agents/hono

用于构建传统HTTP服务器的Hono适配器。

import { createAgent } from '@lucid-agents/core';
import { http } from '@lucid-agents/http';
import { createAgentApp } from '@lucid-agents/hono';

const agent = await createAgent({
  name: 'my-agent',
  version: '1.0.0',
})
  .use(http())
  .build();

const { app, addEntrypoint } = await createAgentApp(agent);

// 添加入口点...

// 导出供Bun.serve使用或使用Hono serve辅助
export default {
  port: Number(process.env.PORT ?? 3000),
  fetch: app.fetch,
};

@lucid-agents/tanstack

带有UI和无头变体的TanStack Start适配器。

import { createAgent } from '@lucid-agents/core';
import { http } from '@lucid-agents/http';
import { createTanStackRuntime } from '@lucid-agents/tanstack';

const agent = await createAgent({
  name: 'my-agent',
  version: '1.0.0',
})
  .use(http())
  .build();

export const { runtime: tanStackRuntime, handlers } =
  await createTanStackRuntime(agent);

@lucid-agents/http

用于请求/响应处理、流传输和Server-Sent Events的HTTP扩展。

import { createAgent } from '@lucid-agents/core';
import { http } from '@lucid-agents/http';

const agent = await createAgent({
  name: 'my-agent',
  version:  '1.0.0',
})
  .use(http({ landingPage: true }))
  .build();

// 通过agent.handlers访问HTTP处理器

@lucid-agents/identity

用于链上身份、声誉和验证的ERC-8004工具包。

import { createAgent } from '@lucid-agents/core';
import { wallets } from '@lucid-agents/wallet';
import { walletsFromEnv } from '@lucid-agents/wallet';
import { createAgentIdentity } from '@lucid-agents/identity';

const agent = await createAgent({
  name: 'my-agent',
  version: '1.0.0',
})
  .use(wallets({ config: walletsFromEnv() }))
  .build();

const identity = await createAgentIdentity({
  runtime: agent,
  domain: 'my-agent.example.com',
  autoRegister: true, // 如果不存在则在链上注册
});

@lucid-agents/payments

用于多网络支付处理的x402支付工具。

import { createAgent } from '@lucid-agents/core';
import { payments } from '@lucid-agents/payments';
import { paymentsFromEnv } from '@lucid-agents/payments';

const agent = await createAgent({
  name: 'my-agent',
  version: '1.0.0',
})
  .use(payments({ config: paymentsFromEnv() }))
  .build();

// 自动检测EVM与Solana,取决于PAYMENTS_RECEIVABLE_ADDRESS格式

@lucid-agents/a2a

用于代理间通信的A2A协议客户端。

import { createAgent } from '@lucid-agents/core';
import { http } from '@lucid-agents/http';
import { a2a } from '@lucid-agents/a2a';

const agent = await createAgent({
  name: 'my-agent',
  version: '1.0.0',
})
  .use(http())
  .use(a2a())
  .build();

// 通过agent.a2a访问A2A客户端
const result = await agent.a2a.client.invoke(
  'https://other-agent.com',
  'skillId',
  {
    input: 'data',
  }
);

@lucid-agents/ap2

用于代理卡片的AP2(代理支付协议)扩展。

import { createAgent } from '@lucid-agents/core';
import { ap2 } from '@lucid-agents/ap2';

const agent = await createAgent({
  name: 'my-agent',
  version: '1.0.0',
})
  .use(ap2({ roles: ['merchant'] }))
  .build();

@lucid-agents/wallet

用于代理和开发者钱包管理的SDK。

import { createAgentWallet } from '@lucid-agents/wallet';

const wallet = await createAgentWallet({
  type: 'local',
  privateKey: process.env.AGENT_WALLET_PRIVATE_KEY,
});

CLI工具

@lucid-agents/cli

用于使用模板和交互式配置搭建新代理项目的CLI。

# 交互模式
bunx @lucid-agents/cli

# 带选项
bunx @lucid-agents/cli my-agent \
  --adapter=tanstack-ui \
  --template=axllm \
  --non-interactive

每个包都包含详细的API文档、环境变量参考和工作示例。


示例:功能齐全的代理

这里是一个完整的示例,展示了身份、支付和LLM集成以及流传输:

import { z } from 'zod';
import { createAgent } from '@lucid-agents/core';
import { http } from '@lucid-agents/http';
import { wallets } from '@lucid-agents/wallet';
import { walletsFromEnv } from '@lucid-agents/wallet';
import { payments } from '@lucid-agents/payments';
import { paymentsFromEnv } from '@lucid-agents/payments';
import { identity, identityFromEnv } from '@lucid-agents/identity';
import { createAgentApp } from '@lucid-agents/hono';
import { AI } from '@ax-llm/ax';

// 1. 初始化LLM
const ai = new AI({
  provider: 'openai',
  apiKey: process.env.OPENAI_API_KEY,
});

// 2. 使用所有扩展构建应用(身份扩展会自动处理ERC-8004注册)
const agent = await createAgent({
  name: 'ai-assistant',
  version: '1.0.0',
  description: '具有链上身份和流传输响应的AI助手',
  image: 'https://my-agent.example.com/og-image.png',
})
  .use(http())
  .use(wallets({ config: walletsFromEnv() }))
  .use(payments({ config: paymentsFromEnv() }))
  .use(identity({ config: identityFromEnv() }))
  .build();

const { app, addEntrypoint } = await createAgentApp(agent);

// 4. 添加带有流传输的付费入口点
addEntrypoint({
  key: 'chat',
  description: '与AI助手聊天',
  input: z.object({
    message: z.string(),
    history: z
      .array(
        z.object({
          role: z.enum(['user', 'assistant']),
          content: z.string(),
        })
      )
      .optional(),
  }),
  streaming: true,
  async stream(ctx, emit) {
    const messages = [
      ...(ctx.input.history || []),
      { role: 'user' as const, content: ctx.input.message },
    ];

    const stream = await ai.chat.stream({ messages });

    for await (const chunk of stream) {
      await emit({
        kind: 'delta',
        delta: chunk.delta,
        mime: 'text/plain',
      });
    }

    return {
      output: { completed: true },
      usage