申请抢先体验

请填写名字,以及邮箱或手机号。我们会与您联系,提供 Tajo 访问详情。

代理规范格式

Tajo 代理在 markdown 文件中定义。每个文件包含 YAML frontmatter(身份、工具、约束)和 markdown 正文(指令、策略、规则)。该格式借鉴了多代理编排系统中经过生产验证的代理模式。

文件结构

---
name: agent-name
description: What this agent does (max 160 chars)
version: 1.0.0
temperature: 0.2
max_tokens: 4096
tools:
- brevo_contacts
- brevo_email_campaign_management
- brevo_sms_campaigns
triggers:
- event: cart_abandoned
- schedule: "0 */4 * * *"
permissions:
- contacts:read
- email:send
- sms:send
---
# Agent Name
Instructions for the agent in natural language...

Frontmatter 字段

必填字段

字段类型说明
namestringkebab-case 格式的唯一标识符(例如 cart-recovery-agent
descriptionstring该代理做什么(最多 160 个字符)
versionstring语义化版本号(例如 1.0.0
toolsarray该代理可访问的 Brevo MCP 服务器模块

行为字段

字段类型默认值说明
temperaturefloat0.3LLM 温度。数值越低,输出越确定。数据操作用 0.1-0.2,营销活动设计用 0.3-0.5
max_tokensinteger4096单轮响应的最大长度
modelstringclaude-sonnet-4-6使用的 LLM 模型

触发器字段

字段类型默认值说明
triggersarray[]激活该代理的事件、定时计划或 Webhook
triggers[].eventstring-事件名称(例如 cart_abandonedcustomer_created
triggers[].schedulestring-Cron 表达式(例如 0 9 * * * 表示每天上午 9 点)
triggers[].webhookstring-Webhook 路径(例如 /agents/cart-recovery/trigger
triggers[].conditionsarray[]触发器的过滤条件
triggers[].debouncestring-防抖窗口(例如 5m1h

权限字段

字段类型默认值说明
permissionsarray[]审计轨迹所需的权限范围
related_agentsarray[]该代理可委派任务的代理 ID
escalationstring-代理不确定时转交给谁(humansupervisor-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/mcp

Tip

只配置代理真正需要的最小工具集。工具越少,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 month

Webhook 触发器

通过 HTTP 调用代理:

triggers:
- webhook: /agents/win-back/trigger
method: POST
authentication: api_key

Markdown 正文:指令

代理规范的正文是自然语言指令。写作时把它当作给一位资深营销人员的任务简报:

结构

# 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.

编写有效的指令

把策略写具体,不要只写目标:

## Bad
Re-engage churned customers.
## Good
When a customer hasn't purchased in 90+ days:
1. Check their last 3 orders for product category preferences
2. Create a personalized discount based on AOV (10% if AOV > $100, 15% if < $100)
3. Send email with subject line referencing their preferred category
4. Wait 72 hours, if no open, send SMS with discount code
5. 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

多代理链

复杂的工作流可以把多个代理串成一条链。每个代理负责一个阶段,并把上下文传给下一个:

chain.yaml
name: quarterly-retention-campaign
steps:
- 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-orchestrator
description: Design and execute multi-channel campaigns from natural language prompts
version: 2.0.0
temperature: 0.3
tools:
- brevo_contacts
- brevo_segments
- brevo_email_campaign_management
- brevo_templates
- brevo_sms_campaigns
- brevo_whatsapp_campaigns
- brevo_campaign_analytics
triggers:
- webhook: /agents/campaign/trigger
method: POST
---
# Campaign Orchestrator
You are a multi-channel marketing campaign specialist.
Given a campaign brief, you design, build, and launch
campaigns across email, SMS, and WhatsApp via Brevo.
## Process
1. Parse the campaign brief (audience, message, goal, timeline)
2. Create or identify the target segment in Brevo
3. Select the best channel(s) based on audience preference data
4. Build campaign content using existing templates or creating new ones
5. Configure send schedule and A/B tests
6. 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 campaign

Customer Intelligence Agent(客户智能代理)

---
name: customer-intelligence
description: Autonomous segmentation, RFM scoring, and churn prediction
version: 1.5.0
temperature: 0.2
tools:
- brevo_contacts
- brevo_segments
- brevo_attributes
- brevo_lists
- brevo_campaign_analytics
triggers:
- schedule: "0 6 * * MON"
timezone: "UTC"
---
# Customer Intelligence Agent
You analyze customer data in Brevo to generate actionable
segments and insights for marketing teams.
## Weekly Analysis
1. Pull contact activity data from campaign analytics
2. 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
## Output
Produce 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 trail
console.log(result.metrics); // Events tracked

通过 Claude Code 运行

Terminal window
# Point to your agent spec and let Claude execute it
claude "Run the agent defined in ./agents/cart-recovery-agent.md for today's abandoned carts"

使用 Cron 定时调度

Terminal window
# Run the customer intelligence agent every Monday at 6am
0 6 * * MON claude --print "Run ./agents/customer-intelligence.md weekly analysis" >> /var/log/tajo-agents.log 2>&1

后续步骤

申请抢先体验

请填写名字,以及邮箱或手机号。我们会与您联系,提供 Tajo 访问详情。

自动识别
AI 助手

你好!关于文档有任何问题都可以问我。