关于 emblem-ai-agent-wallet
Emblem Agent Wallet 是连接 AI Agent 与 EmblemAI 的命令行技能,支持加密货币查询和钱包操作。它按配置文件隔离身份验证与本地状态,并提供用于脚本化单次请求的 Agent 模式。
主要功能
- 01查询余额和代币持仓
- 02执行加密货币交易与转账
- 03为不同 Agent 使用独立钱包配置
- 04通过浏览器或密码验证身份
- 05运行单次 Agent 请求
- 06在交互模式中流式输出响应
适用场景
- 01查询支持链上的钱包余额
- 02通过命令行请求转账或兑换资产
- 03为不同 Agent 配置隔离的钱包
- 04在 Agent 工作流中查询加密资产组合
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ emblemcompany/ emblemai-agentwallet --skill emblem-ai-agent-wallet安装后在 Claude Code 中输入/emblem-ai-agent-wallet确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdLICENSE.gitignore详细介绍
Emblem Agent 钱包
连接到 EmblemAI —— EmblemVault 的自主加密货币 AI,提供覆盖 7 条区块链的 250 多种交易工具。支持浏览器身份验证、流式响应、按配置文件隔离的本地状态、插件系统,以及零配置 Agent 模式。
需要 CLI:npm install -g @emblemvault/agentwallet
快速入门 —— 如何使用此技能
步骤 1:安装 CLI
npm install -g @emblemvault/agentwallet
这会提供一个命令:emblemai
步骤 2:使用它
加载此技能后,你可以向 EmblemAI 询问任何加密货币相关问题:
- “我的钱包地址是什么?”
- “显示我在所有链上的余额”
- “Solana 上有什么热门趋势?”
- “将价值 20 美元的 SOL 兑换成 USDC”
- “向 0x... 发送 0.1 ETH”
如需零配置地为 Agent 配置钱包,配置文件可以通过一条命令创建并持久保存自己的钱包:
emblemai --agent --profile hustle -m "What are my wallet addresses?"
要调用此技能,可以说:
- “使用我的 Emblem 钱包查询余额”
- “询问 EmblemAI 我有哪些代币”
- “连接到 EmblemVault”
- “查看我的加密货币投资组合”
- “创建或使用我的 Agent 钱包配置文件,并显示我的地址”
所有请求都会在底层通过 emblemai 路由。如果存在多个配置文件,每次 Agent 模式调用都必须包含 --profile <name>。
前置条件
- Node.js >= 20.18.0
- 终端,支持 256 色(iTerm2、Kitty、Windows Terminal 或任何兼容 xterm 的终端)
- 可选:glow,用于丰富的 Markdown 渲染(macOS 上运行
brew install glow安装)
安装
从 npm 安装(推荐)
npm install -g @emblemvault/agentwallet
从源代码安装
git clone https://github.com/EmblemCompany/EmblemAi-cli.git
cd EmblemAi-cli
npm install
npm link # makes `emblemai` available globally
首次运行
- 安装:
npm install -g @emblemvault/agentwallet - 创建或选择一个配置文件:
emblemai profile create hustle - 运行
emblemai --profile hustle或emblemai --agent --profile hustle -m "What are my wallet addresses?" - 查看
/plugins,了解已加载的插件 - 输入
/help查看所有命令 - 首次创建钱包后,立即备份配置文件身份验证信息
身份验证
EmblemAI v3 支持两种身份验证方式,并按配置文件隔离本地状态:交互式使用时采用浏览器身份验证,Agent/脚本使用时采用密码身份验证。
配置文件规则
配置文件是多 Agent 隔离的标准机制。
emblemai profile listemblemai profile create <name>emblemai profile use <name>emblemai profile inspect [name]emblemai profile delete <name>emblemai --profile <name> ...
**失败时默认拒绝规则:**如果 ~/.emblemai 中存在多个配置文件,每次 --agent 调用都必须包含 --profile <name>。Agent 模式绝不会猜测要使用哪个钱包身份。
使用不同的 HOME 目录进行隔离是可选方案,而非首选模式。请优先使用配置文件。
浏览器身份验证(交互模式)
如果运行 emblemai --profile <name> 时未指定 -p,CLI 会:
- 检查所选配置文件中是否有已保存的会话
- 如果存在有效(未过期)的会话,则立即恢复,无需登录
- 如果没有会话,则在
127.0.0.1:18247启动本地服务并打开浏览器 - 在浏览器中通过 EmblemVault 身份验证弹窗完成身份验证
- 捕获会话 JWT,将其保存到磁盘上的该配置文件中,然后继续运行 CLI
- 如果无法打开浏览器,则打印 URL,供你手动复制粘贴
- 如果身份验证超时(5 分钟),则针对同一配置文件回退到密码提示
密码身份验证(Agent 模式)
**登录和注册是同一操作。**首次使用某个密码会创建一个保险库;之后使用相同密码会返回同一个保险库。不同密码会生成不同的钱包,而配置文件则会隔离这些钱包对应的本地会话和存储凭据。
在 Agent 模式下,如果所选配置文件没有提供密码,系统会自动生成一个安全的随机密码,并通过 dotenvx 加密后存储在 ~/.emblemai/profiles/<name>/ 下。Agent 模式开箱即用,无需手动设置。
身份验证时会发生什么
- 解析选定的配置文件
- 浏览器身份验证:从浏览器接收会话 JWT,并将其载入 SDK
密码身份验证:将密码发送至
EmblemAuthSDK.authenticatePassword(),并可将其存储在选定的配置文件中以供重复使用 - 派生确定性保险库——相同的凭据始终会生成相同的保险库
- 会话提供多个链上的钱包地址:Solana、Ethereum、Base、BSC、Polygon、Hedera、Bitcoin
- 使用配置文件的会话初始化 EmblemAI 客户端
凭据查找
为配置文件发出请求前,请按以下优先级查找密码:
| 方法 | 使用方式 | 优先级 |
|---|---|---|
| CLI 参数 | emblemai --profile <name> -p "your-password" | 1(最高,已加密存储) |
| 环境变量 | EMBLEM_PASSWORD="your-password" emblemai --profile <name> | 2(不存储) |
| 加密凭据 | dotenvx 加密的 ~/.emblemai/profiles/<name>/.env | 3 |
| 自动生成(Agent 模式) | 首次运行时执行 emblemai --agent --profile <name> ... | 4 |
| 交互式提示 | 浏览器身份验证失败时的回退方式 | 5(最低) |
交互模式会按以下顺序为选定的配置文件解析身份验证方式:已保存的会话、已存储的密码、浏览器身份验证弹窗,然后是终端密码提示。
如果在选定的配置文件中找不到凭据,Agent 模式可以自动生成并存储凭据。只有当用户明确想要连接现有的密码派生钱包时,才询问用户密码:
“我可以自动为此配置文件创建一个新的 EmblemVault 钱包,也可以在你通过 CLI 在本地输入原始密码后连接现有钱包。
注意: 如果这是你第一次使用,输入新密码将创建一个新钱包。如果你之前用过,请使用相同的密码访问现有钱包。
你想在终端中为此配置文件提供密码吗?”
- 密码必须至少包含 16 个字符
- 密码丢失后无法恢复(请将其视同私钥)
执行说明
留出充足时间。 对于复杂操作(交易、跨链查询),EmblemAI 查询可能需要长达 2 分钟。CLI 每隔 5 秒输出一个进度点,以指示正在运行。
清晰展示 EmblemAI 的响应。 使用 Markdown 代码块向用户显示 EmblemAI 的响应:
**EmblemAI Response:**
\`\`\`
[response from EmblemAI]
\`\`\`
用法
Agent 模式(面向 AI Agent——单次执行)
使用 --agent 模式进行基于配置文件身份验证的程序化单消息查询:
# Zero-config -- auto-generates a wallet for the profile on first run
emblemai --agent --profile hustle -m "What are my wallet addresses?"
# Explicit password for a profile
emblemai --agent --profile hustle -p "$PASSWORD" -m "Show my balances"
# Pipe output to other tools
emblemai -a --profile treasury -m "What is my SOL balance?" | jq .
# Use in scripts
ADDRESSES=$(emblemai -a --profile treasury -m "List my addresses as JSON")
任何能够调用 CLI 的系统都可以为其 Agent 提供钱包:
# OpenClaw, CrewAI, AutoGPT, or any agent framework
emblemai --agent --profile ops -m "Send 0.1 SOL to <address>"
emblemai --agent --profile treasury -m "Swap 100 USDC to ETH on Base"
emblemai --agent --profile research -m "What tokens do I hold across all chains?"
配置文件是隔离 Agent 钱包的主要方式。若要为多个 Agent 提供各自独立的钱包,请使用不同的配置文件:
emblemai --agent --profile agent-alice -m "My addresses?"
emblemai --agent --profile agent-bob -m "My addresses?"
Agent 模式始终使用密码身份验证(绝不使用浏览器身份验证),会在不同调用之间保留选定配置文件的对话历史,并支持完整的 EmblemAI 工具集,包括交易、转账、投资组合查询和跨链操作。
交互模式(面向用户)
基于 Readline 的交互模式,支持流式 AI 响应、glow Markdown 渲染和斜杠命令。
emblemai --profile hustle # Browser auth (recommended)
emblemai --profile hustle -p "$PASSWORD" # Password auth
重置对话
emblemai --reset
交互式命令
所有命令均以 / 开头。在输入栏中输入命令并按 Enter。
常规
| 命令 | 描述 |
|---|---|
/help | 显示所有可用命令 |
/settings | 显示当前配置(保险库 ID、模型、流式传输、调试、工具) |
/exit | 退出 CLI(也可使用:/quit) |
配置
| 命令 | 说明 |
|---|---|
/profile | 列出配置,并标记当前配置和默认配置 |
/profile create <name> | 创建命名配置 |
/profile use <name> | 将本会话和新会话切换到指定配置 |
/profile inspect [name] | 查看配置元数据、文件和运行时钱包信息 |
/profile delete <name> | 删除非当前配置 |
如果存在多个配置,每次以 Agent 模式调用 CLI 时都必须包含 --profile <name>。
聊天和历史记录
| 命令 | 说明 |
|---|---|
/reset | 清除对话历史并重新开始 |
/clear | /reset 的别名 |
/history on|off | 切换是否保留消息历史 |
/history | 显示历史记录状态和最近的消息 |
流式输出和调试
| 命令 | 说明 |
|---|---|
/stream on|off | 切换流式输出模式(生成时逐个显示 token) |
/stream | 显示当前流式输出状态 |
/debug on|off | 切换调试模式(显示工具参数和意图上下文) |
/debug | 显示当前调试状态 |
模型选择
| 命令 | 说明 |
|---|---|
/model <id> | 按 ID 设置当前模型 |
/model clear | 重置为 CLI 的默认模型 |
/model | 显示当前选定的模型 |
/models | 显示当前模型和精选的默认选项 |
/models use <number|id> | 选择一个精选的默认模型 |
/models search <query> | 模糊搜索 OpenRouter 模型,并通过 /model <number|id> 选择一个 |
工具管理
| 命令 | 说明 |
|---|---|
/tools | 列出所有工具及其选择状态 |
/tools add <id> | 将工具添加到当前工具集中 |
/tools remove <id> | 从当前工具集中移除工具 |
/tools clear | 清除工具选择(启用自动工具模式) |
未选择任何工具时,AI 会处于自动工具模式,根据对话上下文动态选择合适的工具。
身份验证
| 命令 | 说明 |
|---|---|
/auth | 打开身份验证菜单 |
/wallet | 显示钱包地址(EVM、Solana、BTC、Hedera) |
/portfolio | 显示投资组合(作为聊天查询进行路由) |
/auth 菜单提供以下选项:
| 选项 | 说明 |
|---|---|
| 1. 获取 API Key | 获取你的保险库 API 密钥 |
| 2. 获取保险库信息 | 显示保险库 ID、地址和创建日期 |
| 3. 会话信息 | 显示当前会话详情(标识符、到期时间、身份验证类型) |
| 4. 刷新会话 | 刷新身份验证会话令牌 |
| 5. EVM 地址 | 显示你的 Ethereum/EVM 地址 |
| 6. Solana 地址 | 显示你的 Solana 地址 |
| 7. BTC 地址 | 显示你的 Bitcoin 地址(P2PKH、P2WPKH、P2TR) |
| 8. 备份 Agent 身份验证信息 | 将当前配置的身份验证材料导出到备份文件 |
| 9. 登出 | 清除当前配置的会话并退出(加密凭据仍保留在磁盘上) |
支付(按需付费)
| 命令 | 说明 |
|---|---|
/payment | 显示按需付费状态(启用状态、模式、欠款、token) |
/payment enable|disable | 切换按需付费 |
/payment token <TOKEN> | 设置支付 token(SOL、ETH、HUSTLE 等) |
/payment mode <MODE> | 设置支付模式:pay_per_request 或 debt_accumulation |
Markdown 渲染
| 命令 | 说明 |
|---|---|
/glow on|off | 切换通过 glow 进行的 Markdown 渲染 |
/glow | 显示 glow 状态和版本 |
需要安装 glow。
日志记录
| 命令 | 说明 |
|---|---|
/log on|off | 切换将流式输出记录到文件 |
/log | 显示日志记录状态和文件路径 |
日志文件默认为 ~/.emblemai-stream.log。使用 --log-file <path> 覆盖。
键盘快捷键
| 按键 | 操作 |
|---|---|
Enter | 发送消息 |
Up | 调出上一条输入 |
Ctrl+C | 退出 |
Ctrl+D | 退出(EOF) |
CLI 标志
| 标志 | 别名 | 说明 |
|---|---|---|
--profile <name> | 为本次调用选择一个已命名的钱包配置文件 | |
--password <pw> | -p | 身份验证密码(至少 16 个字符)——跳过浏览器身份验证 |
--message <msg> | -m | Agent 模式的消息 |
--agent | -a | 以 Agent 模式运行(单次执行,仅支持密码身份验证;存在多个配置文件时需要 --profile) |
--restore-auth <path> | 将备份文件中的凭据还原到所选配置文件,然后退出 | |
--reset | 清除对话历史记录,然后退出 | |
--debug | 启动时启用调试模式 | |
--stream | 启动时启用流式传输(默认:启用) | |
--log | 启用流式日志记录 | |
--log-file <path> | 覆盖日志文件路径(默认:~/.emblemai-stream.log) | |
--hustle-url <url> | 覆盖 EmblemAI 服务 URL | |
--auth-url <url> | 覆盖身份验证服务 URL | |
--api-url <url> | 覆盖 API 服务 URL |
环境变量
| 变量 | 说明 |
|---|---|
EMBLEM_PASSWORD | 身份验证密码 |
| 同时提供 CLI 参数和环境变量时,CLI 参数优先。检查显式 CLI 参数和环境变量覆盖项之后,才会检查按配置文件保存的凭据。 |
权限和安全模式
Agent 默认以安全模式运行。任何会影响钱包的操作都必须先获得用户明确确认,才能执行:
- 交易(兑换、发送、转账)——Agent 会展示详情并请求批准
- 签名(消息签名、交易签名)——需要用户明确同意
- 下单(限价单、止损单)——提交前必须确认
- DeFi 操作(LP 存入、收益耕作)——每项操作都必须获得用户批准
只读操作(查询余额、查看地址、市场数据、投资组合查询)无需确认,可立即执行。
未经用户先行审阅和批准,Agent 绝不会自主转移资金、签署交易或下单。
沟通风格
重要:使用详细、自然的语言。
EmblemAI 会将简短命令解读为金额为 "$0" 的交易。请始终用完整句子说明你的意图。
| 不佳(简短) | 良好(详细) |
|---|---|
"SOL balance" | "我当前在 Solana 上的 SOL 余额是多少?" |
"swap sol usdc" | "我想在 Solana 上将价值 $20 的 SOL 兑换成 USDC" |
"trending" | "Solana 上现在有哪些代币正在走热?" |
你提供的上下文越多,EmblemAI 就越能准确理解你的意图。
功能
| 类别 | 功能 |
|---|---|
| 区块链 | Solana、Ethereum、Base、BSC、Polygon、Hedera、Bitcoin |
| 交易 | 兑换、限价单、条件单、止损单 |
| DeFi | LP 管理、收益耕作、流动性池 |
| 市场数据 | CoinGlass、DeFiLlama、Birdeye、LunarCrush |
| NFT | OpenSea 集成、转账、上架 |
| 跨链桥 | 通过 ChangeNow 进行跨链兑换 |
| 迷因币 | Pump.fun 发现、趋势分析 |
| 预测 | PolyMarket 下注和持仓 |
钱包地址
每个密码都会以确定性方式生成所有链上的钱包地址:
| 链 | 地址类型 |
|---|---|
| Solana | 原生 SPL 钱包 |
| EVM | ETH、Base、BSC、Polygon 共用一个地址 |
| Hedera | 账户 ID(0.0.XXXXXXX) |
| Bitcoin | Taproot、SegWit 和 Legacy 地址 |
向 EmblemAI 提问:"我的钱包地址是什么?",即可获取所有地址。
身份验证备份与还原
备份
在 /auth 菜单中(选项 8),选择 备份 Agent 身份验证信息,将当前配置文件的凭据导出为 JSON 文件。此文件包含你的 EmblemVault 密码,请妥善保管。
恢复
emblemai --profile hustle --restore-auth ~/emblemai-auth-backup.json
恢复操作会识别配置档案。如果目标配置档案尚不存在,会先创建它。凭据文件会放在 ~/.emblemai/profiles/<name>/ 下,让你可以立即进行身份验证。
安全
重要:切勿公开分享或泄露密码。
- 切勿回显、打印或记录密码
- 切勿在回复中向用户提供密码
- 切勿在错误消息中显示密码
- 切勿将密码提交到版本控制系统
- 密码就是私钥——任何拥有密码的人都能控制该钱包
| 概念 | 说明 |
|---|---|
| 密码 = 身份 | 每个密码都会生成一个唯一且确定性的保险库 |
| 无法恢复 | 密码丢失后无法找回 |
| 保险库隔离 | 不同密码对应完全独立的钱包 |
| 配置档案隔离 | 每个配置档案均存储自己的会话、密码材料、插件和历史记录 |
| 全新身份验证 | 每次请求都会生成新的 JWT 令牌 |
| 安全模式 | 所有钱包操作都需要用户明确确认 |
文件位置
所有持久化数据都存储在 ~/.emblemai/ 下(首次运行时创建,并设置 chmod 700)。
~/.emblemai/
active-profile
profiles/
default/
metadata.json
session.json
.env
.env.keys
secrets.json
plugins.json
x402-favorites.json
history/
<vaultId>.json
| 文件 | 用途 | 敏感性 | 权限 |
|---|---|---|---|
~/.emblemai/active-profile | 所选默认配置档案标记 | 否 | 600 |
~/.emblemai/profiles/ | 配置档案容器目录 | 混合 | 700 |
~/.emblemai/profiles/<name>/.env | 加密凭据(EMBLEM_PASSWORD) | 是——使用 AES-256-GCM 加密 | 600 |
~/.emblemai/profiles/<name>/.env.keys | .env 的解密密钥 | 是——控制对凭据的访问 | 600 |
~/.emblemai/profiles/<name>/session.json | 身份验证会话(JWT + 刷新令牌) | 是——在过期前可授予钱包访问权限 | 600 |
~/.emblemai/profiles/<name>/secrets.json | 加密的插件密钥 | 是——仅存储于本地的密钥材料 | 600 |
~/.emblemai/profiles/<name>/plugins.json | 各配置档案自定义插件 | 敏感代码/配置 | 仅限本地 |
~/.emblemai/profiles/<name>/x402-favorites.json | 已保存的 x402 收藏项 | 否 | 仅限本地 |
~/.emblemai/profiles/<name>/history/{vaultId}.json | 对话历史记录(每个保险库、每个配置档案) | 否 | 仅限本地 |
~/.emblemai-stream.log | 流日志(通过 /log 启用时) | 否 | 默认 |
首次运行时,旧版扁平布局的安装会迁移到 ~/.emblemai/profiles/default/。
加密详情
凭据静态存储时会使用 dotenvx 加密,该工具使用 AES-256-GCM 对称加密。加密密钥存储在 ~/.emblemai/profiles/<name>/.env.keys 中,加密数据存储在 ~/.emblemai/profiles/<name>/.env 中。两个文件均以 chmod 600 创建(仅所有者可读写)。解密密钥不会离开本地计算机。
会话令牌(session.json)包含一个短期 JWT(自动刷新)和一个有效期为 7 天的刷新令牌。会话不会在磁盘上加密,但会通过 chmod 600 限制访问权限。通过 /auth > Logout 登出会删除当前配置档案的会话文件。
旧版凭据(~/.emblem-vault)会在首次运行时自动迁移到 ~/.emblemai/profiles/default/,并备份原文件。
故障排除
| 问题 | 解决方案 |
|---|---|
emblemai: command not found | 运行:npm install -g @emblemvault/agentwallet |
Agent 模式要求提供 --profile | 如果 ~/.emblemai 中有多个配置文件,请传入 --profile <name> |
| “Password must be at least 16 characters” | 使用更长的密码 |
| “Authentication failed” | 检查与身份验证服务的网络连接 |
| 身份验证时浏览器未打开 | 复制输出的网址并手动打开 |
| 会话已过期 | 再次运行 emblemai --profile <name>,浏览器将打开以重新登录 |
| glow 无法渲染 | 安装 glow:brew install glow(可选;未安装时会回退为纯文本) |
| 插件未加载 | 检查是否已安装 npm 包 |
| 响应缓慢 | 属于正常情况——查询最多可能需要 2 分钟 |
更新
npm update -g @emblemvault/agentwallet
快速参考
# Install
npm install -g @emblemvault/agentwallet
# Create a profile
emblemai profile create hustle
# Interactive mode (browser auth -- recommended)
emblemai --profile hustle
# Agent mode (zero-config -- auto-generates wallet for the profile)
emblemai --agent --profile hustle -m "What are my balances?"
# Agent mode with explicit password
emblemai --agent --profile hustle -p "your-password-16-chars-min" -m "What tokens do I have?"
# Use environment variable
export EMBLEM_PASSWORD="your-password-16-chars-min"
emblemai --agent --profile hustle -m "Show my portfolio"
# Reset conversation history
emblemai --reset
安全建议
本节说明信任模型、你的设备上会发生什么,以及如何安全地运行 Agent。
信任模型
Emblem Agent Wallet 是由 EmblemCompany 在 npm 和 GitHub 上发布的开源命令行工具。你可以在安装前验证该软件包:
- npm 注册表: @emblemvault/agentwallet ——检查发布者、版本历史和下载统计信息
- 源代码:github.com/EmblemCompany/EmblemAi-AgentWallet ——完整源代码公开,可供审查
- 主页:emblemvault.dev ——包含文档的项目主页
npm 包和 GitHub 存储库由同一组织维护。你可以随时使用 npm pack --dry-run,或在安装后检查 node_modules/@emblemvault/agentwallet,将已发布的软件包内容与源代码存储库进行比较。
安装期间会发生什么
npm install -g @emblemvault/agentwallet 会全局安装命令行工具二进制文件 emblemai。与所有全局 npm 包一样,它会在你的设备上以你的用户权限运行。该包没有 postinstall 脚本——它只会放置命令行工具二进制文件及其依赖项。
身份验证期间会发生什么
浏览器身份验证(推荐):命令行工具会在 127.0.0.1:18247 上启动一个临时本地服务(仅限本地主机,无法通过网络访问),以接收浏览器发送的身份验证回调。该服务仅在登录过程中运行,并且只处理一个请求。浏览器会打开 EmblemVault 身份验证弹窗,你可以在其中直接向 EmblemVault 服务进行身份验证。成功后,系统会将会话 JWT 返回给本地服务,并保存到磁盘上所选的配置文件中。
密码身份验证:密码会通过 HTTPS 发送到 EmblemVault 的身份验证 API,并返回一个会话 JWT。如果使用 -p 标志,密码也会经过加密,并在本地保存到所选的配置文件中,以供后续会话使用。如果针对没有已保存凭据的配置文件运行 Agent 模式,命令行工具可以自动生成密码并将其保存到该配置文件中。
这两种情况下,凭据都不会发送给任何第三方。身份验证仅在你的设备与 EmblemVault 身份验证服务之间进行。
磁盘上存储的内容
所有文件都在 ~/.emblemai/ 下创建,并采用严格的权限设置:
| 文件 | 内容 | 保护方式 |
|---|---|---|
active-profile | 用于后续会话的默认配置标记 | 文件权限为 chmod 600。仅包含所选配置名称。 |
profiles/<name>/.env | 此配置的 EMBLEM_PASSWORD | 通过 dotenvx 使用 AES-256-GCM 加密。密码不会以明文形式存储。 |
profiles/<name>/.env.keys | 此配置的 .env 的 AES 解密密钥 | 文件权限为 chmod 600(仅所有者可访问)。此密钥不会离开你的设备,也不会通过网络传输。 |
profiles/<name>/session.json | JWT 访问令牌 + 刷新令牌 | 文件权限为 chmod 600。JWT 在 15 分钟后过期,并会自动刷新。刷新令牌有效期为 7 天。退出登录时会删除此文件。 |
profiles/<name>/secrets.json | 此配置的加密插件密钥 | 文件权限为 chmod 600。仅存储本地加密的密钥材料。 |
profiles/<name>/plugins.json | 每个配置独立的自定义插件配置 | 仅本地配置。请将其视为敏感代码/配置。 |
profiles/<name>/history/*.json | 此配置的对话历史记录 | 文件权限为 chmod 600。包含你与 AI 的聊天消息。历史记录中不会存储凭据。 |
~/.emblemai/ 和 ~/.emblemai/profiles/ 目录以 chmod 700(仅所有者可访问)创建。
会话的工作方式
身份验证会话使用短期 JWT(15 分钟后过期),并通过有效期为 7 天的刷新令牌自动刷新。这意味着:
- 如果会话文件遭到泄露,攻击者最多只能访问 7 天(刷新令牌的有效期),而非无限期访问
- JWT 会频繁轮换,从而缩短任何单个令牌的暴露时间
- 退出登录(
/auth> Logout)会立即使当前配置的会话失效并删除文件 - 每次刷新都会签发新的刷新令牌,并使之前的令牌失效(轮换)
安全模式与交易确认
Agent 默认以安全模式运行。这意味着:
- 所有会修改钱包的操作都必须先获得你的明确确认,包括兑换、发送、转账、下单、签名和 DeFi 操作
- 只读操作会立即执行,无需确认,包括余额查询、地址查询、市场数据和投资组合查看
- Agent 会提供交易的完整详情(金额、地址、费用),并在提交前等待你的批准
- 没有“自动执行”模式——每笔交易都需要有人工参与
密码安全
你的 EMBLEM_PASSWORD 是钱包的主密钥。请像对待私钥或助记词一样妥善保管:
- 使用强度高且唯一的密码(至少 16 个字符)。建议使用由 4 个或更多随机单词组成的密码短语
- 不要重复使用其他服务的密码。你的 EMBLEM_PASSWORD 应为 EmblemVault 专属
- 安全地存储密码,使用密码管理器。CLI 会在磁盘上加密密码,但你仍应备份密码,以免无法再访问设备
- 如果在自动化任务中将
EMBLEM_PASSWORD用作环境变量,请确保主机环境安全——限制对设备的访问,使用进程隔离,并避免记录环境变量 - 交互使用时优先选择浏览器身份验证——这样可以避免密码进入 shell 历史记录或环境变量,并将身份验证限制在所选配置中
- 不同的密码会创建不同的钱包——这是有意设计的。你可以借此按用途分开存放资金(例如,一个钱包用于日常使用,另一个用于长期持有)
验证软件包
安装前或安装后,你都可以准确检查软件包包含的内容:
# View package contents without installing
npm pack @emblemvault/agentwallet --dry-run
# After installing, inspect the source
ls $(npm root -g)/@emblemvault/agentwallet/
# Compare against GitHub source
git clone https://github.com/EmblemCompany/EmblemAi-AgentWallet.git
diff -r node_modules/@emblemvault/agentwallet EmblemAi-AgentWallet/publish
报告安全问题
如果您发现安全漏洞,请负责任地进行报告:
- GitHub:在 github.com/EmblemCompany/EmblemAi-AgentWallet/issues 提交问题
- Discord:在安全频道 discord.gg/Q93wbfsgBj 中报告