@akshay5995: introducing poppyseed, implementation of the Personal Agent Protocol draft (0.1) for Next.js. describe your tools, add …
Summary
Poppyseed 发布,这是一个面向 Next.js 的 Personal Agent Protocol (Poppy 0.1) 实现包,只需安装一个包并添加一条路由,支持该协议的 AI 个人代理即可发现并使用你的网站工具。
View Cached Full Text
Cached at: 10/16/26, 12:42 PM
introducing poppyseed, implementation of the Personal Agent Protocol draft (0.1) for Next.js.
describe your tools, add one route, and agents that support the protocol can start using your site.
npm install poppyseed
https://t.co/M3ZOTJTpse https://t.co/o42kk27sJ7
Poppyseed · Personal Agent Protocol for Next.js
Source: https://www.withpoppyseed.dev/
Let personal agents use your site.
Poppyseed implements thePersonal Agent Protocol(Poppy for short) for Next.js. Install one package and add one route. AI agents can then find your site, sign people in and ask them before they buy.
npm install poppyseed zod
Paste it into Claude Code, Cursor or Codex, or
read it first``` Add the Personal Agent Protocol (Poppy for short; spec: https://personalagentprotocol.org/docs/spec) to this Next.js App Router app with the poppyseed package, so people’s personal AI agents can use it.
-
Run: npm install poppyseed zod Then: echo “POPPYSEED_SECRET=$(openssl rand -base64 48)” >> .env.local
-
Create poppyseed.config.ts at the project root. Pick 2-4 useful read-only tools built on this app’s existing data and functions:
import { definePoppyseed, memoryStore, tool, ToolError } from “poppyseed”; import { z } from “zod”;
const dev = process.env.NODE_ENV === “development”;
export const poppyseed = definePoppyseed({
// domain must match the host agents use: localhost in development.
organization: { name: “
- Create app/api/poppyseed/[…path]/route.ts (no other exports):
import { toNextHandlers } from “poppyseed/next”; import { poppyseed } from “@/poppyseed.config”;
export const { GET, POST, DELETE } = toNextHandlers(poppyseed);
-
In next.config.ts, keep every existing option and wrap the export: import { withPoppyseed } from “poppyseed/next/config”, then export default withPoppyseed(nextConfig).
-
Verify: start the dev server, then run npx poppyseed agent http://localhost:
‘ ’ for each tool. It exits 0 only if discovery and the tool call succeed; fix anything until it does. Then run npm run build.
Tell me to set POPPYSEED_SECRET in my hosting provider’s environment before deploying. For tools that need the person’s account, purchases people approve, a support agent, or serverless hosting (postgresStore), see https://withpoppyseed.dev/docs/guides and https://withpoppyseed.dev/docs/deployment.
Prefer doing it by hand? Follow the[quickstart](https://www.withpoppyseed.dev/docs/quickstart)\.
poppyseed\.config\.tsroute\.tsnext\.config\.ts
import { definePoppyseed, memoryStore, tool } from “poppyseed”;import { z } from “zod”;const dev = process.env.NODE_ENV === “development”;export const poppyseed = definePoppyseed({ organization: { name: “Seed Café”, domain: dev ? “localhost” : “seed.cafe” }, secret: process.env.POPPYSEED_SECRET!, store: memoryStore(), …(dev && { baseUrl: “http://localhost:3000”, dev: { allowInsecureClients: true } }), tools: { menu: tool({ description: “Drinks on the menu today”, scope: null, // anyone, signed in or not input: z.object({ size: z.enum([“small”, “large”]) }), run: ({ size }) => ({ drinks: menu(size) }), }), },});
app/api/poppyseed/\[\.\.\.path\]/route\.ts
import { toNextHandlers } from “poppyseed/next”;import { poppyseed } from “@/poppyseed.config”;export const { GET, POST, DELETE } = toNextHandlers(poppyseed);
import { withPoppyseed } from “poppyseed/next/config”;// Only /.well-known/poppy.json, /oauth/, /mcp and /poppy/// go to Poppyseed. Every other URL stays yours.export default withPoppyseed(nextConfig);
`npx poppyseed agent http://localhost:3000 menu`
1. Found**Seed Café**at /\.well\-known/poppy\.json
2. Started a session, signed with its own key
3. Listed**1 tool**over MCP and OpenAPI
4. Called**menu**
{ “drinks”: [{ “name”: “Flat white”, “price”: 4.2 }] }
## Turn on more as you need it
poppyseed\.config\.ts
export const poppyseed = definePoppyseed({ organization: { name: “Poppy Travel”, domain: “poppy.travel” }, secret: process.env.POPPYSEED_SECRET!, store: memoryStore(), store: postgresStore(pool), accounts: { current: yourLogin, signInUrl: (to) => /login?return_to=${to} }, signIn: { device: { scopes: [“poppy:read”, “poppy:write”] } }, conversations: { agent: claudeAgent({ instructions: “Help travelers.” }) }, tools: { search_flights: tool({ description: “Search one-way flights”, scope: null, input: z.object({ from: z.string(), to: z.string(), date: z.iso.date() }), run: (input) => ({ offers: searchFlights(input) }), }), my_trips: tool({ description: “Your upcoming trips”, scope: “poppy:read”, input: z.object({}), run: (_, ctx) => ({ trips: tripsOf(ctx.account.id) }), }), book_flight: tool({ description: “Book a flight offer”, scope: “poppy:write”, input: z.object({ offer_id: z.string() }), operation: { propose: ({ offer_id }) => quote(offer_id), // { summary, terms } perform: ({ id, terms }, ctx) => book(ctx.account.id, terms, id), }, }), },});
## See it in 37 seconds
## Checked against the spec
**98**conformance checks pass and none fail over HTTP through a real Next\.js server, covering**147**rules of the[Personal Agent Protocol](https://personalagentprotocol.org/docs/spec)\. Each check is proven by breaking its rule on purpose and watching it fail\.
Run the same checks against your own site:
`npx poppyseed check https://your\.site`
Similar Articles
@changgaowei: Good summary. The customer decides what the agent may do, the company decides what it is allowed to do, and one file at…
Sierra, led by Bret Taylor, published the first draft of the Personal Agent Protocol (PAP, nicknamed Poppy) — an open standard for how personal AI agents shop and transact on behalf of users — and added 35 new partners including OpenAI, Visa, Mastercard, and PayPal, building on earlier support from Meta, Shopify, Stripe, and Walmart. The article breaks down PAP's core design, including .well-known/poppy.json service discovery, user-granted permissions, and agent self-identification, comparing it to MCP, A2A, and ANP.
@xuanwo: Introducing my new project to everyone: Agenvo Let your personal agent (dots, grok bot, muse) access any herdr, codex a…
Xuanwo 发布新项目 Agenvo,让个人 AI 助手(ChatGPT dots、Grok bot、Muse 等)通过 MCP 远程访问并协调 Herdr 和 Codex app-server 上运行的编码代理,支持 Cloudflare 一键部署和事件推送。
Introducing Personal Agent Protocol (5 minute read)
Meta and Sierra, along with partners including Shopify, Stripe, and Walmart, announced the Personal Agent Protocol — an open standard defining how personal AI agents authenticate and interact with businesses via websites, APIs, or company agents, with a v0.1 spec planned soon.
@oran_ge: https://x.com/oran_ge/status/2108013105162985561
A write-up from Episode 5 of the Next Token podcast, covering the current state of the Personal Agent space: OpenAI's Dots, Meta's Muse, the travel assistant Instinct, and how hardware like the ESP32 is starting to become the "body" of an agent — plus an analysis of why this ecosystem would be hard to replicate in China.
@jayzhoupro: Oh hell yes—let the agent handle the return while you sign in yourself. That's one flow in the first draft of Personal …
Sierra's Personal Agent Protocol publishes its first draft (0.1), detailing direct sign-in flows and a /.well-known/poppy.json discovery spec for builders, alongside 35 new design partners including Meta, Shopify, Stripe, and Walmart.