Communitygithub.com

agentx402-ai/agentkv

加密、錢包驗證、按次付費的鍵值儲存——你的 AI 代理的長期記憶,預設保密。

agentkv 是什麼?

AgentKV 是一個專為 AI 代理設計的原生鍵值儲存。其核心架構確保資料在用戶端使用 AES-256-GCM 加密後才傳送至伺服器,實現零知識證明,伺服器無法讀取你的資料。AgentKV 提供兩種帳戶模式:一是預設的「錢包即金鑰」模式,任何可簽章的 EVM 錢包位址即為命名空間,首次使用時會自動建立本地錢包;二是「帳戶金鑰」模式,適用於無法簽章的託管錢包(例如 AWS 的 awal),透過 bearer 權杖和獨立的本機加密金鑰進行身份驗證。此技能支援多種平台,如 Claude Code、Cursor 及任何相容於 MCP(模型上下文協定)的代理。主要功能包括持久跨階段記憶、安全儲存 API 金鑰或憑證、共享代理群組狀態管理,以及帶有 TTL(存活時間)的自動過期暫存資料。所有寫入和讀取操作皆以 USDC 計費(Base 主網或 Base Sepolia 測試網),費用透明,且支援預付費信用點數以節省成本。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add agentx402-ai/agentkv

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

AgentKV 技能

AgentKV 是一個代理原生鍵值儲存。你持有一個 AgentKV 帳戶,可以透過以下兩種方式之一持有(客戶端會自動偵測)——相同的資料、相同的信用點數、相同的零知識加密:

  • 錢包即金鑰(預設):一個可簽章的錢包就是帳戶。其位址為命名空間,其金鑰衍生出 AES 金鑰。AgentKV 在首次使用時自動佈建一個錢包——無需帳戶、無需 API 金鑰、無需註冊。
  • 帳戶金鑰:對於受管理且無法簽章的錢包(例如 awal),一個不透明的 ak_… bearer 權杖即為身份和命名空間,而本機加密金鑰則負責加密——與付款錢包分離,因此任何簽章錢包都可以為該帳戶充值。

值在到達伺服器之前,會在客戶端進行加密(AES-256-GCM),因此伺服器具有零知識特性。儲存費用使用 Base(主網)或 Base Sepolia(測試網)上的真實 USDC,透過 x402 協定按操作計費。

前置條件: @agentkv/cli 必須已發佈至 npm,並可透過 npx @agentkv/cli 解析。截至本文撰寫時,該套件尚未發佈——此插件是待該發佈步驟完成後的成品。


何時使用 AgentKV

在以下情況使用 AgentKV:

  • 持久的跨階段記憶——事實、偏好、摘要,或需要在當前階段結束後持續存在的任務狀態。
  • 秘密儲存與使用——API 金鑰、權杖或憑證。伺服器只能看到密文(零知識)。⚠️ 普通的 agentkv_set/agentkv_get 會將值路由經過此代理的模型上下文;對於真正的秘密,請使用秘密安全工具(agentkv_set_from_env/_from_file 進行儲存,agentkv_get_to_file/agentkv_run_with_secret 進行使用),這樣明文就不會進入模型回合。請參閱下方的秘密一節。
  • 共享代理群組狀態——多個代理實例共享同一個錢包時,可以透過共同命名空間進行協調(例如工作佇列、鎖、共享計數器)。
  • TTL 界定的暫存狀態——具有自動過期機制的暫存值(例如 nonce、草稿),無需手動清理。

在以下情況不要使用 AgentKV:

  • 大型二進位 blob(最大值大小為 256 KB)。
  • 在預算敏感的環境中進行免費、零成本的操作——每次 set 和 get 都會花費 USDC;請先檢查花費上限。
  • 在使用者導向的應用程式中替代正規資料庫(它是為代理工作負載設計的,而非高吞吐量的 Web 應用程式)。

可用的 MCP 工具

agentkv MCP 伺服器揭露了十二個工具——八個核心工具,加上四個秘密安全工具,其明文永遠不會進入模型上下文(請參閱下方的秘密一節):

工具描述費用
agentkv_set在金鑰下寫入一個加密值。可選的 TTL(天數)。約 $0.005 USDC
agentkv_get依金鑰讀取並解密一個值。預設情況下,滑動 TTL 會重設過期時間。約 $0.003 USDC
agentkv_delete立即刪除一個金鑰。免費
agentkv_deposit將 USDC 信用點數存入錢包的命名空間,以預先支付操作費用。在帳戶金鑰模式下會被拒絕(受管理帳戶沒有錢包——請透過 <endpoint>/account/deposit 為其充值)。購買 USDC
agentkv_balance檢查錢包命名空間的當前 USDC 信用點數餘額。免費
agentkv_wallet_address傳回錢包位址(命名空間識別碼)。僅供參考。免費
agentkv_fund傳回一個卡片到 USDC 的入金網址,該網址會將 USDC 發送到 Base 上的錢包。僅建立網址——不進行付款。在帳戶金鑰模式下會被拒絕(沒有錢包可以購買 USDC)。免費
agentkv_list_keys列出此錢包儲存的金鑰——真實的金鑰名稱,在本地端解密;伺服器只看到不透明的摘要。支援分頁。免費
agentkv_set_from_env儲存從本地環境變數讀取的秘密(傳入該變數的名稱)。值永遠不會進入模型上下文。約 $0.005 USDC
agentkv_set_from_file儲存從本地檔案讀取的秘密(傳入該檔案的路徑)。內容永遠不會進入模型上下文。約 $0.005 USDC
agentkv_get_to_file將值解密到本地檔案;傳回 { found, path, bytes }——永遠不會傳回值本身。約 $0.003 USDC
agentkv_run_with_secret執行一個命令,並將秘密僅注入子處理序的環境變數中;傳回命令的輸出,永遠不會傳回秘密本身。約 $0.003 USDC

定價與存款: 按用量付費約為每次 agentkv_set $0.005 USDC,每次 agentkv_get $0.003 USDC。預付費信用點數的費用大約是 1/10(每次 set 約 $0.0005,每次 get 約 $0.0003)。agentkv_deposit 需要最低 $1.00,並以折扣的信用點數費率為命名空間充值。


秘密——讓值遠離模型上下文

agentkv_set 和 agentkv_get 會將值路由經過此代理自身的模型上下文(寫入時是工具參數,讀取時是工具結果)。客戶端加密使值對伺服器而言是零知識——但它並不會對代理隱藏這些值。因此,普通的 set/get 適用於非秘密記憶體(計畫、摘要、偏好),但對於真正的憑證,請使用秘密安全工具,這樣明文就不會進入模型回合:

  • 儲存: agentkv_set_from_env(傳入環境變數的名稱)或 agentkv_set_from_file(傳入路徑)。伺服器在本地端讀取值,進行加密,然後儲存。
  • 使用: agentkv_run_with_secret(執行一個命令,秘密僅存在於子處理序的環境變數中,並傳回命令的輸出)或 agentkv_get_to_file(將解密後的值寫入本地檔案,並傳回路徑——使用完畢後刪除它)。

殘留:秘密會短暫地出現在本地檔案或子處理序環境中——本地且短暫,永遠不會發送到模型提供者或寫入對話歷史。agentkv_run_with_secret(磁碟上不留檔案)是最嚴格的方式。


一次性設定

從 Claude Code 的市集安裝此插件——確切的 /plugin marketplace add 和 /plugin install 命令位於插件的 README.md(plugin/README.md)中。安裝後:

1. 憑證(安裝時輸入,非透過 shell 環境變數)

當插件安裝時,Claude Code 會提示輸入以下資訊,並將它們傳遞給 MCP 伺服器(私鑰會經過遮罩並儲存在你的作業系統金鑰鏈中——永遠不會寫入磁碟):

配置必填描述
錢包私鑰否可選——留空則 AgentKV 會在首次使用時鑄造並管理一個本地錢包(然後為其充值並備份)。若要使用你自己的:一個 EVM 私鑰(十六進制),這是付款並擁有命名空間的錢包。
AgentKV 端點否託管的 AgentKV API;預設為 https://api.agentx402.ai。
網路否eip155:8453(Base 主網,預設)或 eip155:84532(Base Sepolia 測試網)。
加密金鑰否覆寫衍生的 AES 金鑰(進階;預設為從私鑰透過 HKDF 衍生)。
每次操作最大花費(USD)否拒絕任何單次花費超過此金額的操作;留空 = 無每次操作上限。
階段最大花費(USD)否一旦累積階段花費超過此金額,則拒絕操作;留空 = 無上限。

稍後重新執行 /plugin 以變更這些設定。使用 /mcp 驗證伺服器是否已載入(你應該會看到 agentkv 伺服器及其十二個工具)。

若要使用卡片而非現有的 USDC 餘額來充值,agentkv_fund 工具會傳回一個 Coinbase 入金網址——透過在伺服器上設定 AGENTKV_ONRAMP_APP_ID(一個公開的 CDP 專案 ID)來配置,並可選地設定 AGENTKV_ONRAMP_PROVIDER 來更換提供者。

2. 為命名空間充值

使用 agentkv_wallet_address 讀取你的錢包位址,將 USDC 傳送到 Base 上的該位址(或呼叫 agentkv_fund 取得一個將 USDC 發送到該位址的卡片到 USDC 入金網址),然後呼叫 agentkv_deposit 並指定一個金額(最低 $1)來為命名空間充值。之後的讀取和寫入操作將自動從信用點數中支付。

帳戶金鑰模式(受管理錢包 / awal)

一個無法簽章的受管理錢包使用帳戶金鑰模式,而非錢包模式。在插件外部,CLI 會鑄造並為一個帳戶充值:

agentkv account new        # 鑄造 ak_… 和一個本地加密金鑰(以 0600 權限儲存)——請備份它們,否則無法復原
# 從任何可簽章的錢包為其充值(一筆真實的 ≥$1 存款會在首次存款時建立該帳戶):
awal x402 pay https://api.agentx402.ai/account/deposit --headers '{"Authorization":"Bearer ak_..."}'

然後設定 AGENTKV_ACCOUNT_KEY=ak_… 和 AGENTKV_ENCRYPTION_KEY=0x…(本地 AES 金鑰——在帳戶模式下為必填,因為沒有錢包可以從中衍生金鑰)。該帳戶即為命名空間;預設情況下,讀取/寫入操作僅攜帶 bearer 權杖並從預付費信用點數中扣款——無需每次操作簽章。無論哪種方式,它都對伺服器保持零知識。任何可簽章的錢包都可以為同一個帳戶充值。

如果同時設定了 AGENTKV_TOPOFF=awal,當信用點數不足時會自我修復——無需採取任何行動,CLI/MCP 階段會透過 awal 支付自己的補值並繼續執行。若無此設定,則在遇到信用點數不足的錯誤時,執行 awal x402 pay <endpoint>/account/deposit --headers '{"Authorization":"Bearer <ak>"}' 並重試。或者,設定 AGENTKV_INLINE=awal 以實現每次操作內聯付款:每個請求都伴隨一個付款簽章和 bearer 權杖,並立即在鏈上結算,因此完全不需要預付費信用點數。


花費上限認知

每次 agentkv_set、agentkv_get 和 agentkv_deposit 呼叫都會花費真實的 USDC(agentkv_delete、agentkv_balance、agentkv_wallet_address、agentkv_fund 和 agentkv_list_keys 是免費的)。在開始迴圈或大量操作之前:

  1. 呼叫 agentkv_balance 以確認有足夠的信用點數。
  2. 在插件配置中設定每次操作最大花費(USD) 和/或階段最大花費(USD) 上限(執行 /plugin 進行編輯)。
  3. 如果工具呼叫傳回 402 Payment Required 錯誤且沒有剩餘的花費預算,請暫停並向使用者報告,而非盲目重試。

當信用點數耗盡時,伺服器會傳回一個 PAYMENT-REQUIRED 挑戰;CLI 會在花費上限內自動處理 x402 付款。


共享代理群組狀態模式

當多個代理共用同一個 AGENTKV_PRIVATE_KEY(相同的錢包 = 相同的命名空間)時,它們可以透過已知的金鑰進行協調:

fleet:lock:<task-id>     # 分散式鎖(使用短 TTL 設定)
fleet:queue              # 序列化的工作列表
fleet:result:<task-id>   # 已完成子任務的輸出

在鎖上使用短 TTL,以防止代理崩潰時造成鎖定過期。


金鑰命名慣例

  • 使用 : 作為分隔符:session:<id>:summary、secret:github-token、prefs:language。使用秘密安全工具(agentkv_set_from_env/_from_file、agentkv_get_to_file/run_with_secret)儲存/讀取 secret:* 金鑰——永遠不要使用普通的 set/get——這樣憑證就不會進入模型上下文。
  • 使用穩定的識別碼作為使用者特定資料的前綴:user:<handle>:...。
  • 在寫入共享代理群組狀態之前,使用 agentkv_wallet_address 確認你正在操作的命名空間。

相關技能