Beta
Manage your Payload content straight from chat.
An AI agent inside your Payload instance - your team queries, edits, and translates content from Slack, Telegram and more.
Integrations
Plug in any channel.
Bring any model.
Chat SDK carries the conversation; TanStack AI supplies the brain. Swap either side without rewriting your agent.
Chat SDK
Lives where your team works
Plus GitHub, Linear, and custom adapters.
TanStack AI
Bring your own model
Plus 300+ models via OpenRouter.
Code Mode
Most agents call tools one by one. payload-agent writes TypeScript.
Code Mode by Tanstack AI gives the model a typed API and ability to write TypeScript. It runs in a sandbox against your real schema, so multi-step work finishes in one turn instead of a round-trip per call.
3 / 19
→ external_find · products · draft
← 18 docs · back to model
→ external_update · #1
← ok · back to model
→ external_update · #2
← ok · back to model
→ external_update · #3
← ok · back to model
↳ + 15 more calls …
19 Round-trips 19 model passes
vs
done
const drafts = await external_find({
collection: "products" ,
where: { _status: "draft" },
})
→ 18 docs
await Promise.all(drafts.docs.map((p) =>
external_update({
collection: "products" ,
id: p.id, data: { _status: "published" } })))
18 published · one turn
1 Execution one model pass
Better performance, one model pass instead of nineteen - faster replies, a fraction of the tokens, and the types keep every call safe.
payload.config.ts
import { anthropicText } from "@tanstack/ai-anthropic";
import { createTelegramAdapter } from "@chat-adapter/telegram";
import { payloadAgentPlugin } from "payload-agent";
export default buildConfig({
plugins: [
payloadAgentPlugin({
adapters: { telegram: createTelegramAdapter() },
agent: {
adapter: anthropicText("claude-sonnet-4-6"),
systemPrompt: "Be concise. No emojis.",
},
}),
],
});