代理规范格式
Tajo 代理在 markdown 文件中定义。每个文件包含 YAML frontmatter(身份、工具、约束)和 markdown 正文(指令、策略、规则)。该格式借鉴了多代理编排系统中经过生产验证的代理模式。
文件结构
---name: agent-namedescription: What this agent does (max 160 chars)version: 1.0.0temperature: 0.2max_tokens: 4096tools: - brevo_contacts - brevo_email_campaign_management - brevo_sms_campaignstriggers: - event: cart_abandoned - schedule: "0 */4 * * *"permissions: - contacts:read - email:send - sms:send---
# Agent Name
Instructions for the agent in natural language...Frontmatter 字段
必填字段
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | kebab-case 格式的唯一标识符(例如 cart-recovery-agent) |
description | string | 该代理做什么(最多 160 个字符) |
version | string | 语义化版本号(例如 1.0.0) |
tools | array | 该代理可访问的 Brevo MCP 服务器模块 |
行为字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
temperature | float | 0.3 | LLM 温度。数值越低,输出越确定。数据操作用 0.1-0.2,营销活动设计用 0.3-0.5 |
max_tokens | integer | 4096 | 单轮响应的最大长度 |
model | string | claude-sonnet-4-6 | 使用的 LLM 模型 |
触发器字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
triggers | array | [] | 激活该代理的事件、定时计划或 Webhook |
triggers[].event | string | - | 事件名称(例如 cart_abandoned、customer_created) |
triggers[].schedule | string | - | Cron 表达式(例如 0 9 * * * 表示每天上午 9 点) |
triggers[].webhook | string | - | Webhook 路径(例如 /agents/cart-recovery/trigger) |
triggers[].conditions | array | [] | 触发器的过滤条件 |
triggers[].debounce | string | - | 防抖窗口(例如 5m、1h) |
权限字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
permissions | array | [] | 审计轨迹所需的权限范围 |
related_agents | array | [] | 该代理可委派任务的代理 ID |
escalation | string | - | 代理不确定时转交给谁(human、supervisor-agent) |
工具:映射到 Brevo MCP 服务器
tools 字段引用 Brevo MCP 服务器的模块名称。每个模块对应 mcp.brevo.com 上的一个具体端点:
tools: # Contacts & Segmentation - brevo_contacts # /v1/brevo_contacts/mcp - brevo_lists # /v1/brevo_lists/mcp - brevo_segments # /v1/brevo_segments/mcp - brevo_attributes # /v1/brevo_attributes/mcp
# Campaigns & Messaging - brevo_email_campaign_management # /v1/brevo_email_campaign_management/mcp - brevo_templates # /v1/brevo_templates/mcp - brevo_sms_campaigns # /v1/brevo_sms_campaigns/mcp - brevo_whatsapp_campaigns # /v1/brevo_whatsapp_campaigns/mcp
# Analytics - brevo_campaign_analytics # /v1/brevo_campaign_analytics/mcp
# Sales CRM - brevo_deals # /v1/brevo_deals/mcp - brevo_companies # /v1/brevo_companies/mcp - brevo_tasks # /v1/brevo_tasks/mcp - brevo_pipelines # /v1/brevo_pipelines/mcp - brevo_notes # /v1/brevo_notes/mcpTip
只配置代理真正需要的最小工具集。工具越少,AI 推理越准确,响应越快。全部可用模块见 Brevo MCP 服务器。
触发器
事件触发器
当你的系统中发生某件事时激活代理:
triggers: - event: cart_abandoned conditions: - cart_value: "> 50" - items_count: ">= 1" - time_since_activity: "> 30m" debounce: 5m定时触发器
按周期性计划运行代理:
triggers: - schedule: "0 9 * * MON" # Every Monday at 9am timezone: "America/New_York" - schedule: "0 */4 * * *" # Every 4 hours - schedule: "0 0 1 * *" # First day of each monthWebhook 触发器
通过 HTTP 调用代理:
triggers: - webhook: /agents/win-back/trigger method: POST authentication: api_keyMarkdown 正文:指令
代理规范的正文是自然语言指令。写作时把它当作给一位资深营销人员的任务简报:
结构
# Agent Name
Context paragraph, what this agent does and why.
## Strategy
Step-by-step approach the agent should follow.
## Decision Framework
Rules for making choices (e.g., which channel to use based on cart value).
## Rules
Hard constraints, things the agent must ALWAYS or NEVER do.
## Templates
References to Brevo template IDs, SMS copy, WhatsApp templates.
## Metrics
Events to track for measuring success.编写有效的指令
把策略写具体,不要只写目标:
## BadRe-engage churned customers.
## GoodWhen a customer hasn't purchased in 90+ days:1. Check their last 3 orders for product category preferences2. Create a personalized discount based on AOV (10% if AOV > $100, 15% if < $100)3. Send email with subject line referencing their preferred category4. Wait 72 hours, if no open, send SMS with discount code5. Wait 7 days, if no purchase, mark as deep-churn and stop sequence明确定义护栏:
## Rules- NEVER send more than 3 messages per sequence- NEVER contact customers who unsubscribed- ALWAYS check if the customer converted before sending the next step- ALWAYS respect quiet hours (no SMS 9pm-9am local time)- If unsure about a decision, escalate to human review多代理链
复杂的工作流可以把多个代理串成一条链。每个代理负责一个阶段,并把上下文传给下一个:
name: quarterly-retention-campaignsteps: - agent: customer-intelligence input: | Analyze customer segments for Q2 retention campaign. Goal: {task}
Identify: 1. At-risk customers (declining purchase frequency) 2. VIP customers (top 10% by LTV) 3. Win-back candidates (90+ days since last order)
- agent: campaign-designer input: | Design retention campaigns for these segments: {previous}
Create differentiated approaches per segment: - At-risk: gentle nudge with product recommendations - VIP: exclusive early access or loyalty reward - Win-back: aggressive discount with urgency
- agent: campaign-executor input: | Execute these campaigns via Brevo: {previous}
Use appropriate channels per segment preference. Set up A/B tests for subject lines. Schedule sends for optimal times.
- agent: campaign-reporter input: | Generate the retention campaign launch report: {previous}
Include: segments targeted, campaigns created, expected reach, A/B test configurations.链变量
| 变量 | 说明 |
|---|---|
{task} | 原始目标或请求 |
{previous} | 上一步的输出 |
{step_N} | 第 N 步的输出(下标从 0 开始) |
{artifacts_dir} | 文件输出目录 |
预置代理规范
Campaign Orchestrator(营销活动编排器)
---name: campaign-orchestratordescription: Design and execute multi-channel campaigns from natural language promptsversion: 2.0.0temperature: 0.3tools: - brevo_contacts - brevo_segments - brevo_email_campaign_management - brevo_templates - brevo_sms_campaigns - brevo_whatsapp_campaigns - brevo_campaign_analyticstriggers: - webhook: /agents/campaign/trigger method: POST---
# Campaign Orchestrator
You are a multi-channel marketing campaign specialist.Given a campaign brief, you design, build, and launchcampaigns across email, SMS, and WhatsApp via Brevo.
## Process1. Parse the campaign brief (audience, message, goal, timeline)2. Create or identify the target segment in Brevo3. Select the best channel(s) based on audience preference data4. Build campaign content using existing templates or creating new ones5. Configure send schedule and A/B tests6. Launch and report initial delivery metrics
## Channel Selection- Email: default for all campaigns- SMS: add for time-sensitive offers or cart recovery- WhatsApp: add for conversational campaigns or high-value segments
## Rules- ALWAYS preview campaigns before sending- NEVER send to unsubscribed contacts- ALWAYS set up tracking for campaign attribution- Maximum 2 A/B test variants per campaignCustomer Intelligence Agent(客户智能代理)
---name: customer-intelligencedescription: Autonomous segmentation, RFM scoring, and churn predictionversion: 1.5.0temperature: 0.2tools: - brevo_contacts - brevo_segments - brevo_attributes - brevo_lists - brevo_campaign_analyticstriggers: - schedule: "0 6 * * MON" timezone: "UTC"---
# Customer Intelligence Agent
You analyze customer data in Brevo to generate actionablesegments and insights for marketing teams.
## Weekly Analysis1. Pull contact activity data from campaign analytics2. Calculate RFM scores (Recency, Frequency, Monetary)3. Identify segment shifts (customers moving between tiers)4. Flag churn risks (declining engagement over 4+ weeks)5. Generate segment recommendations for upcoming campaigns
## Segment Definitions- Champions: R=5, F=5, M=5, recent, frequent, high-value- Loyal: R>=3, F>=4, M>=3, consistent buyers- At Risk: R<=2, F>=3, M>=3, were loyal, now fading- Hibernating: R=1, F>=2, M>=2, long gone, were once active- New: first purchase in last 30 days
## OutputProduce a markdown report with:- Segment sizes and week-over-week changes- Top 10 at-risk customers by LTV- Recommended actions per segment- Suggested campaign themes for the week部署
以编程方式运行代理
import { TajoAgent } from "@tajo/agent-sdk";
const agent = new TajoAgent({ specPath: "./agents/cart-recovery-agent.md", brevoToken: process.env.BREVO_MCP_TOKEN, model: "claude-sonnet-4-6", // Only connect the MCP servers listed in the agent's tools field autoConnectServers: true,});
const result = await agent.run( "Recover abandoned carts over $50 from the last 4 hours");
console.log(result.summary);console.log(result.toolCalls); // Full audit trailconsole.log(result.metrics); // Events tracked通过 Claude Code 运行
# Point to your agent spec and let Claude execute itclaude "Run the agent defined in ./agents/cart-recovery-agent.md for today's abandoned carts"使用 Cron 定时调度
# Run the customer intelligence agent every Monday at 6am0 6 * * MON claude --print "Run ./agents/customer-intelligence.md weekly analysis" >> /var/log/tajo-agents.log 2>&1后续步骤
- Brevo MCP 服务器,可用工具与服务器配置
- 构建你的第一个代理,实操教程
- Skills 参考,可与代理组合使用的 Tajo Skills
- MCP 架构概览,各部分如何协同工作