Fix campaign_review: make Tool_WebSearcher steps optional so pipeline continues when tool is offline

This commit is contained in:
2026-04-18 00:29:29 +00:00
parent c2aff1994c
commit bf1a262a13

View File

@@ -1,112 +1,114 @@
name: campaign_review name: campaign_review
description: "CLM performance review -- Leo checks real-world campaign response and dispatches learnings to CL if the book is flopping." description: "CLM performance review -- Leo checks real-world campaign response and dispatches learnings to CL if the book is flopping."
debug: true debug: true
model: power model: power
system: agent_prompt system: agent_prompt
agent_prompt:
agent_prompt: - "= identity.md"
- "= identity.md" sections:
- agent
sections: - project
- agent - deliverables
- project - rag
- deliverables - message
- rag - instructions
- message steps:
- instructions - type: tool
capability: Tool_WebSearcher
steps: optional: true
- type: tool query: "'{project.name}' romance novel reviews sales Amazon Goodreads TikTok BookTok"
capability: Tool_WebSearcher
query: "'{project.name}' romance novel reviews sales Amazon Goodreads TikTok BookTok" - type: tool
capability: Tool_WebSearcher
- type: tool optional: true
capability: Tool_WebSearcher query: "'{project.name}' romance book social media engagement Instagram Facebook author"
query: "'{project.name}' romance book social media engagement Instagram Facebook author"
- type: think
- type: think max_tokens: 4000
max_tokens: 4000 output_key: performance_analysis
output_key: performance_analysis hint: |
hint: | You are Leo, Marketing Director at Crimson Leaf Marketing.
You are Leo, Marketing Director at Crimson Leaf Marketing.
Review the web search results above for the "{project.name}" campaign.
Review the web search results above for the "{project.name}" campaign. Also review the campaign deliverables in the DELIVERABLES section.
Also review the campaign deliverables in the DELIVERABLES section.
If no web search results are available (tool offline or no data found), note that
Analyze campaign performance: and rate the campaign YELLOW with a recommendation to check again in 1 week.
1. REACH: Are people finding the book? Any search results, reviews, mentions?
2. ENGAGEMENT: Any social media traction (TikTok, Instagram, Facebook)? Analyze campaign performance:
3. REVIEWS: Any reader reviews on Amazon, Goodreads, or BookTok? 1. REACH: Are people finding the book? Any search results, reviews, mentions?
4. SALES SIGNALS: Any sales rank data, bestseller mentions, or download counts? 2. ENGAGEMENT: Any social media traction (TikTok, Instagram, Facebook)?
5. SENTIMENT: Is the reception positive, mixed, or negative? 3. REVIEWS: Any reader reviews on Amazon, Goodreads, or BookTok?
4. SALES SIGNALS: Any sales rank data, bestseller mentions, or download counts?
If the book is too new (less than 2 weeks since campaign launch), note that and 5. SENTIMENT: Is the reception positive, mixed, or negative?
recommend checking again in 1 week.
If the book is too new (less than 2 weeks since campaign launch), note that and
Rate overall performance: recommend checking again in 1 week.
- GREEN: Exceeding expectations -- organic traction, positive reviews, good engagement
- YELLOW: Mixed results -- some traction but underperforming potential Rate overall performance:
- RED: Minimal traction -- the book is not getting discovered - GREEN: Exceeding expectations -- organic traction, positive reviews, good engagement
- YELLOW: Mixed results -- some traction but underperforming potential, or too early to assess
End with exactly: - RED: Minimal traction -- the book is not getting discovered
PERFORMANCE_RATING: GREEN|YELLOW|RED
WEEKS_SINCE_LAUNCH: <number or "unknown"> End with exactly:
PERFORMANCE_RATING: GREEN|YELLOW|RED
- type: think WEEKS_SINCE_LAUNCH: <number or "unknown">
max_tokens: 100
output_key: performance_rating - type: think
hint: | max_tokens: 100
Read the PERFORMANCE_RATING line from the analysis above. output_key: performance_rating
Output ONLY the value: GREEN, YELLOW, or RED. Nothing else. hint: |
Read the PERFORMANCE_RATING line from the analysis above.
- type: think Output ONLY the value: GREEN, YELLOW, or RED. Nothing else.
max_tokens: 600
output_key: learnings_message - type: think
hint: | max_tokens: 600
Read the performance analysis above. output_key: learnings_message
hint: |
If performance_rating is GREEN: output exactly: none Read the performance analysis above.
If performance_rating is YELLOW or RED, write a MARKET LEARNINGS report for If performance_rating is GREEN or YELLOW: output exactly: none
Crimson Leaf Holdings strategic team. This report will inform the next book.
If performance_rating is RED, write a MARKET LEARNINGS report for
Include: Crimson Leaf Holdings strategic team. This report will inform the next book.
- What did NOT work in this campaign (specific observations)
- What the market data suggests about genre/audience fit Include:
- What competitors or similar books are doing that we are not - What did NOT work in this campaign (specific observations)
- Concrete recommendations for the next book (genre, themes, marketing channels, - What the market data suggests about genre/audience fit
pricing strategy, platform focus) - What competitors or similar books are doing that we are not
- Should we continue this book's campaign or pivot resources to the next book? - Concrete recommendations for the next book (genre, themes, marketing channels,
pricing strategy, platform focus)
Format as a professional post-mortem. Be specific and data-driven. - Should we continue this book's campaign or pivot resources to the next book?
Output ONLY the report text. No preamble.
Format as a professional post-mortem. Be specific and data-driven.
- type: tool Output ONLY the report text. No preamble.
action: enqueue_strategy
optional: true - type: tool
params: action: enqueue_strategy
company_slug: "crimson_leaf" optional: true
project_slug: "incubation" params:
task_type: "market_intelligence" company_slug: "crimson_leaf"
content: "{learnings_message}" project_slug: "incubation"
task_type: "market_intelligence"
- type: document content: "{learnings_message}"
filename: "campaign_performance_review"
- type: document
- type: close filename: "campaign_performance_review"
rag_update: true
- type: close
adjudication: rag_update: true
enabled: true
pass_threshold: 60 adjudication:
deliverable_type: analysis enabled: true
criteria: pass_threshold: 60
completeness: deliverable_type: analysis
weight: 40 criteria:
description: "All performance dimensions assessed (reach, engagement, reviews, sentiment)" completeness:
actionability: weight: 40
weight: 35 description: "All performance dimensions assessed (reach, engagement, reviews, sentiment)"
description: "Learnings are specific and actionable for future books" actionability:
accuracy: weight: 35
weight: 25 description: "Learnings are specific and actionable for future books"
description: "Assessment is grounded in the search evidence, not speculation" accuracy:
weight: 25
description: "Assessment is grounded in the search evidence, not speculation"