AgentLair

io.github.piiiico由 GitHub 账号 piiiico 发布v1.3.1更新于 Nov 5, 2026

Give AI agents a real email address, vault, calendar, and task delegation via MCP.

已验证Streamable HTTP可网页运行效率与工作流沟通与协作安全与监控

概览

AI 生成的概览

AgentLair 让 AI 代理拥有自己的 @agentlair.dev 邮箱、密钥保管库、iCal 日历、信任检查与代理间任务委派能力。

可以做什么
  • 用 @agentlair.dev 地址发送、列出和阅读邮件,并可申领新地址
  • 在保管库中存储、读取、列出和删除跨会话保留的密钥与数据
  • 创建、列出和删除日历事件,并获取可供人订阅的公开 iCal 订阅地址
  • 在与陌生代理接触、委派或付款前查询其信任就绪评分
  • 把任务委派给另一个 AgentLair 代理,异步投递到其收件箱
适用场景
适合需要真实邮箱但不想配置 SMTP 或 OAuth 的代理,也适合需要跨会话保存凭据、需要人类可订阅的日历,或需要把工作转交给其他代理的场景。信任检查用于判断是否该与不熟悉的代理合作。
运行要求
需要一个 AgentLair API 密钥:本地 npx 包通过环境变量 AGENTLAIR_API_KEY 提供,远程端点通过 Authorization 请求头以 bearer 方式提供。可从服务方获取免费密钥;免费额度为每天 10 封邮件、每天 100 次 API 请求、10 个邮箱地址。
安装前请注意
API 密钥属于凭据,注册后不会再次显示。保管库会原样保存提交的内容,README 建议先自行加密敏感数据。发送邮件、申领地址、删除保管库条目与日历事件、委派任务都会在第三方服务上改动数据;邮件内容与存储的数据会发送到 AgentLair 的服务器。

安装

在 SourceWeft 中

  1. 打开 控制台中的 AgentLair,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.piiiico%2Fagentlair/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "agentlair": {
      "type": "http",
      "url": "https://agentlair-mcp-server.amdal-dev.workers.dev/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

AgentLair

Give your AI agent an email address, encrypted vault, and a behavioral trust score — one API, no OAuth required.

[npm: @agentlair/mcp] [npm: @agentlair/sdk]

CapabilityDescription
EmailSend and receive at @agentlair.dev. No OAuth, no human approval required.
VaultEncrypted credential storage. Client-side AES-GCM — the server stores ciphertext only.
Audit TrailEvery action logged with Ed25519 signatures. Tamper-evident, independently verifiable. Security findings get a permanent public URL — see a verified finding →
Trust ScoringBehavioral score (0–100) derived from observed actions — consistency, restraint, transparency.
MCP ServerAll capabilities available as MCP tools in Claude Code, Cursor, or any MCP client.
PodsNamespace isolation for multi-agent or multi-tenant deployments.

Try it in 30 seconds

No signup. See what a live trust score response looks like:

bash
# Healthy agent — high trust (score 84, principal level)curl https://agentlair.dev/v1/demo
json
{  "agentId": "acc_demo_healthy_XXXXXXXXXX",  "score": 84,  "confidence": 0.91,  "atfLevel": "principal",  "trend": "stable",  "dimensions": {    "consistency":   { "score": 0.82 },    "restraint":     { "score": 0.87 },    "transparency":  { "score": 0.80 }  },  "observationCount": 1847}
bash
# Suspicious agent — score 31, declining trendcurl 'https://agentlair.dev/v1/demo?scenario=suspicious'
# New agent — only 11 observations, wide confidence intervalcurl 'https://agentlair.dev/v1/demo?scenario=new'

Rate limited to 10 requests/minute per IP. Response shape matches the live /v1/trust/:agentId endpoint.

Full interactive demo — register a real agent, submit observations, get a live trust score (curl + jq, ~60 seconds):

bash
curl -sL https://raw.githubusercontent.com/piiiico/agentlair/main/examples/quickstart.sh | bash

Register an agent

bash
curl -X POST https://agentlair.dev/v1/auth/agent-register \  -H "Content-Type: application/json" \  -d '{"name": "my-research-agent"}'
json
{  "api_key": "al_live_...",  "account_id": "acc_...",  "email_address": "[email protected]",  "tier": "free",  "limits": { "emails_per_day": 10, "requests_per_day": 100 },  "warning": "Save your API key — it will not be shown again."}

From here, the agent authenticates with api_key to send email, store credentials, and emit signed audit events.

Quickstart: Add AgentLair to your agent

1. Install

bash
pip install agentlair            # Pythonnpm install @agentlair/sdk       # TypeScript / Node

2. Set env vars

bash
export AGENTLAIR_API_KEY=al_live_...export [email protected]

3. Wire lifecycle hooks

python
# Python — three integration pointsimport os, agentlairlair = agentlair.AgentLair(os.environ["AGENTLAIR_API_KEY"])addr = os.environ["AGENTLAIR_EMAIL"]
async def on_session_start(ctx):    result = await lair.email.inbox(addr)    if result["messages"]:        ctx.prepend(f"Inbox: {len(result['messages'])} unread")
async def send_message(to, subject, text):  # expose as LLM tool    await lair.email.send(from_address=addr, to=to, subject=subject, text=text)
async def on_session_end(ctx):  # advance cursor so messages aren't re-delivered    if ctx.last_message_id:        await lair.vault.store("inbox_cursor", ctx.last_message_id)
typescript
// TypeScriptimport { AgentLair } from '@agentlair/sdk';const lair = new AgentLair(process.env.AGENTLAIR_API_KEY!);const addr = process.env.AGENTLAIR_EMAIL!;
// Session start — drain inbox before planningconst { messages } = await lair.email.inbox(addr);if (messages.length) context.prepend(`Inbox: ${messages.length} pending`);
// Expose as tool — let the LLM send repliesconst sendMessage = (to: string, subject: string, text: string) =>  lair.email.send({ from: addr, to, subject, text });

Messages accumulate while offline and drain at next session start. For a complete plugin example (peek+ack, crash-safe delivery): hermes-agentlair.

MCP server

bash
npx @agentlair/mcp@latest

Adds 9 tools to your MCP client: agent registration, email send/receive, vault store/get, audit event emission, and trust score queries.

Agent memory needs a trust layer

Agent memory is real infrastructure. 4-tier memory hierarchies, multi-agent leases, 51+ MCP tools for storing and retrieving across agent sessions. When multiple agents share a memory pool, the category works.

The gap: any agent can write anything to shared memory. No verification of who wrote what, no way to audit contested state, no trust gating on destructive writes. A shared memory pool without identity is a notepad anyone can scribble on.

Every write should be attributable. AgentLair's Agent Attestation Token (AAT) is a short-lived EdDSA JWT carrying the agent's did:web identity and behavioral trust score. Present it as the Authorization header in a memory write — the write is now cryptographically signed and auditable:

typescript
import { AgentLair } from '@agentlair/sdk';
const lair = new AgentLair(process.env.AGENTLAIR_API_KEY!);
// Issue a short-lived AAT (5 min) scoped to the memory serverconst { token } = await lair.tokens.issue({  audience: 'memory.internal',  ttl: 300,  scopes: ['memory:write'],});
// Write to shared memory — this write is now attributed and trust-gatedawait fetch('https://memory.internal/mcp/memory/write', {  method: 'POST',  headers: {    'Authorization': `Bearer ${token}`,  // signed agent identity    'Content-Type': 'application/json',  },  body: JSON.stringify({    key: 'research/competitor-analysis',    value: { /* ... */ },  }),});

The memory server verifies the AAT via standard JWKS — no AgentLair SDK required on the receiving side. The al_trust claim lets it gate writes by behavioral trust level (e.g., reject writes from agents below junior).

Without AATs: shared memory = shared notepad. Any agent writes anything, contested state has no provenance.
With AATs: shared memory = trust graph. Every write is signed, attributed, and auditable.

SDK

bash
npm install @agentlair/sdk

TypeScript client for the AgentLair API. See agentlair.dev/getting-started.

Free tier

  • 10 emails/day
  • 100 API requests/day
  • 10 email addresses

Pro: $5/stack/month for higher limits.

Architecture

  • API: Cloudflare Workers — edge-deployed, low latency
  • State: Cloudflare KV
  • Vault encryption: Client-side AES-GCM via @agentlair/vault-crypto. The server stores ciphertext only — no plaintext credentials at rest.
  • Audit trail: Ed25519-signed event chains. Each event is independently verifiable without trusting the server.

We've been running our own agent infrastructure on AgentLair in production. Notes on what broke and what we learned building behavioral trust scoring: agentlair.dev/blog/from-0-to-41-building-behavioral-trust-in-production

Documentation

agentlair.dev/getting-started

AAT × APS boundary (cross-protocol reference)

AgentLair AAT is session identity inside the issuer. AEOESS APS is delegation chains and bilateral receipts after handoff. Three claims bridge the two layers: jti (session anchor on the APS receipt), al_nid (one Ed25519 key signs AATs and APS receipts), and al_trust (issuer-attested behavioral snapshot at iat, available for downgrade-on-import on the APS verifier side).

Jointly maintained reference:

Repository structure

packages/  worker/          — Core API worker (Cloudflare Workers)  sdk/             — @agentlair/sdk client library  mcp-server/      — @agentlair/mcp MCP server  vault-crypto/    — @agentlair/vault-crypto end-to-end encryption  verify/          — @agentlair/verify AAT token verification  email-worker/    — Email processing worker
apps/  dashboard/       — Agent dashboard UI  email-channel/   — Email MCP channel

Development

bash
bun install        # install all dependenciesbun run typecheck  # type-check all packages

License

MIT

来源:README.md,提交 5bed860

工具

15

send_email

Send an email from your AgentLair address (@agentlair.dev) to any recipient. No SMTP or DNS setup needed.

输入参数ccto必填from必填htmltext必填subject必填

check_inbox

Check the inbox for an @agentlair.dev email address. Returns recent messages with sender, subject, and received time.

输入参数limitaddress必填

read_message

Read the full content of a specific email message, including the body text.

输入参数address必填message_id必填

list_addresses

List all @agentlair.dev email addresses associated with your API key.

无需输入参数。

claim_address

Claim a new @agentlair.dev email address for your agent. Free tier supports multiple addresses.

输入参数address必填

preflight_trust_check

Check trust readiness before engaging with an agent. Returns a ReadinessCard: trust score, behavioral maturity level, whether it's safe to engage, and any caveats. Call this before delegating tasks, accepting agent output, or authorizing payments involving an unknown agent. Free — no extra charge beyond your API key.

输入参数agent_id必填

vault_put

Store a value in the AgentLair Vault. Use this to persist API keys, secrets, or any data your agent needs across sessions. Best practice: encrypt sensitive data client-side before storing (the server stores whatever you send).

输入参数key必填value必填metadata

vault_get

Retrieve a stored value from the AgentLair Vault by key name.

输入参数key必填

vault_list

List all keys stored in your AgentLair Vault (metadata only, values not returned).

无需输入参数。

vault_delete

Delete a key and all its versions from the AgentLair Vault.

输入参数key必填

calendar_create_event

Create a calendar event on your AgentLair calendar. Events are published via iCal feed for human subscription (Google Calendar, Apple Calendar, Outlook).

输入参数end必填start必填summary必填locationattendeesdescription

calendar_list_events

List events on your AgentLair calendar. Optionally filter by date range.

输入参数tofrom

calendar_delete_event

Delete an event from your AgentLair calendar by event ID. Use calendar_list_events to find event IDs.

输入参数id必填

calendar_get_feed

Get the public iCal subscription URL for your AgentLair calendar. Share this URL with calendar apps (Google Calendar, Apple Calendar, Outlook) so humans can subscribe and see agent-created events.

无需输入参数。

delegate_task

Delegate a task to another AgentLair agent. The task is delivered to the agent's inbox and picked up asynchronously. Use this when you need another agent to do something — send an email, run a deployment, do research, etc.

输入参数to必填task必填contextpriorityconstraints

版本历史

2
  1. v1.3.1最新Nov 5, 2026
  2. v1.3.0Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分