Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
c4f6f26
enabled
echarles Mar 9, 2026
38495e6
enabled
echarles Mar 9, 2026
20bdc18
Extract teams from agent specs into first-class team specs
echarles Mar 10, 2026
bf64424
teams
echarles Mar 11, 2026
d92ab45
specs
echarles Mar 11, 2026
d7aadd9
mocks
echarles Mar 12, 2026
aeaf560
icon
echarles Mar 13, 2026
63ebae6
flatten
echarles Mar 16, 2026
917913a
lint
echarles Mar 17, 2026
c3c2a9a
spatial
echarles Mar 18, 2026
3ecf530
tools
echarles Mar 23, 2026
be899ee
tools
echarles Mar 23, 2026
7019945
simple
echarles Mar 24, 2026
934385e
version
echarles Mar 24, 2026
94a4c62
docs
echarles Mar 25, 2026
3a7b6e4
docs
echarles Mar 25, 2026
dbd7864
fix: docs
echarles Mar 25, 2026
1dbc620
docs
echarles Mar 25, 2026
e5b5067
frontend tools
echarles Mar 26, 2026
62b9936
skills
echarles Mar 26, 2026
20bfdd9
skills
echarles Mar 28, 2026
f689805
docs
echarles Mar 28, 2026
9207e38
triggers
echarles Mar 28, 2026
2bcb46d
one trigger
echarles Mar 28, 2026
8edabfd
triggers
echarles Mar 30, 2026
52721e2
demo
echarles Mar 30, 2026
36cc2b8
mode: haiku
echarles Apr 14, 2026
db146d2
model: sonnet for triggered agents
echarles Apr 15, 2026
0633995
docs: params and hooks
echarles Apr 20, 2026
312b079
evals
echarles May 24, 2026
4a2410f
evals
echarles May 25, 2026
9e6f4a7
models
echarles May 25, 2026
60486ef
models
echarles May 25, 2026
dd80abd
examples
echarles May 26, 2026
bc7c429
example: mcp
echarles May 26, 2026
550b509
examples
echarles May 26, 2026
3c8a1c9
name
echarles May 27, 2026
e6abc41
specs
echarles May 28, 2026
fb8cdef
examples
echarles May 29, 2026
7ffe7ee
example: inference
echarles Jun 1, 2026
191454b
example evals no codemode
echarles Jun 17, 2026
185e9b7
docs
echarles Jun 17, 2026
d068af0
tool approvals
echarles Jun 19, 2026
e5ecb7a
bump: version
echarles Jun 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
609 changes: 202 additions & 407 deletions README.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion agentspecs/__version__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

"""Agentspecs."""

__version__ = "0.0.2"
__version__ = "0.0.4"
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# and optimises budget allocation across advertising channels.

id: analyze-campaign-performance
version: 0.0.1
name: Analyze Campaign Performance
description: >
A multi-agent team that unifies marketing data from Google Ads, Meta,
Expand All @@ -21,11 +22,9 @@ tags:
- analytics
- advertising
- social-media
- team

enabled: true

model: "openai-gpt-4-1"
enabled: false
model: "bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0"

sandbox_variant: jupyter

Expand All @@ -34,93 +33,26 @@ memory: ephemeral

# MCP servers used by this agent team
mcp_servers:
- filesystem
- slack
- filesystem:0.0.1
- slack:0.0.1

# Skills available to this agent team
skills:
- pdf
- crawl
- pdf:0.0.1
- crawl:0.0.1
- events:0.0.1

# Runtime environment
frontend_tools:
- jupyter-notebook:0.0.1
- lexical-document:0.0.1
environment_name: ai-agents-env

# UI customization
icon: megaphone
emoji: 📢
color: "#8250df" # Purple — media & creativity

# Team configuration
team:
orchestration_protocol: datalayer
execution_mode: sequential
supervisor:
name: Campaign Analytics Orchestrator Agent
model: "openai-gpt-4-1"
routing_instructions: >
Start with Platform Connector to pull data from all ad platforms,
then Metrics Normaliser for unified KPIs, then Anomaly Detector for
real-time performance monitoring, then Budget Optimiser for reallocation
recommendations. Escalate CPA spikes above 50% immediately.
validation:
timeout: "300s"
retry_on_failure: true
max_retries: 2
agents:
- id: cp-1
name: Platform Connector Agent
role: "Primary · Initiator"
goal: Pull campaign data from Google Ads, Meta, TikTok, LinkedIn, GA4, and email platforms
model: "openai-gpt-4-1"
mcp_server: Ad Platforms MCP
tools:
- Google Ads Connector
- Meta Ads Connector
- TikTok Ads Connector
- LinkedIn Ads Connector
- GA4 Connector
trigger: "Schedule: Every 4 hours"
approval: auto
- id: cp-2
name: Metrics Normaliser Agent
role: Secondary
goal: Normalise CPA, ROAS, CTR, and attribution across all platforms into unified view
model: "openai-gpt-4-1"
mcp_server: Analytics MCP
tools:
- Metric Unifier
- Currency Converter
- Attribution Mapper
- Naming Convention Resolver
trigger: "On completion of Platform Connector Agent"
approval: auto
- id: cp-3
name: Anomaly Detector Agent
role: Secondary
goal: Monitor all KPIs for CTR drops, CPA spikes, and budget pacing issues
model: "anthropic-claude-sonnet-4"
mcp_server: Monitoring MCP
tools:
- Anomaly Scanner
- Budget Pacer
- Alert Generator
- Campaign Pauser
trigger: "On completion of Metrics Normaliser Agent"
approval: manual
- id: cp-4
name: Budget Optimiser Agent
role: Final
goal: Generate budget reallocation recommendations to maximise ROAS across channels
model: "openai-gpt-4-1"
mcp_server: Optimisation MCP
tools:
- ROAS Calculator
- Budget Allocator
- Scenario Modeller
- Report Generator
trigger: "On completion of Anomaly Detector Agent"
approval: manual

# Goal / Prompt (Step 4 in the UI — the user-facing objective)
goal: >-
Unify marketing data from Google Ads, Meta, TikTok, LinkedIn, GA4, and email
Expand All @@ -129,7 +61,7 @@ goal: >-
generate budget reallocation recommendations to maximise ROAS.

# Protocols & UI Extensions
protocol: ag-ui
protocol: vercel-ai
ui_extension: a2ui

# Evals
Expand Down Expand Up @@ -167,6 +99,7 @@ trigger:
type: schedule
cron: "0 */4 * * *"
description: Every 4 hours for cross-platform campaign data sync and analysis
prompt: "Run the scheduled workflow and produce the configured deliverable."

# Output configuration
output:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# Source: UI mock flow id=4 (Agents.tsx)

id: analyze-support-tickets
version: 0.0.1
name: Analyze Support Tickets
description: >
A multi-agent team that triages incoming support tickets, categorizes by
Expand All @@ -18,11 +19,9 @@ tags:
- data
- support
- tickets
- team

enabled: true

model: "openai-gpt-4-1"
enabled: false
model: "bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0"

sandbox_variant: jupyter

Expand All @@ -31,82 +30,34 @@ memory: ephemeral

# MCP servers used by this agent team
mcp_servers:
- filesystem
- slack
- filesystem:0.0.1
- slack:0.0.1

# Skills available to this agent team
skills:
- pdf
- crawl
- pdf:0.0.1
- crawl:0.0.1
- events:0.0.1

# Runtime environment
frontend_tools:
- jupyter-notebook:0.0.1
- lexical-document:0.0.1
environment_name: ai-agents-env

# UI customization
icon: issue-opened
emoji: 🎫
color: "#bf8700" # Amber — paused status

# Team configuration
team:
orchestration_protocol: datalayer
execution_mode: sequential
supervisor:
name: Support Orchestrator Agent
model: "openai-gpt-4-1"
routing_instructions: >
Route new tickets to the Triage Agent first, then to the Categorizer,
then to the Pattern Analyzer. Escalate P1/critical tickets immediately
to human support leads.
validation:
timeout: "180s"
retry_on_failure: true
max_retries: 2
agents:
- id: st-1
name: Triage Agent
role: "Primary · Initiator"
goal: Ingest new support tickets and assess urgency level (P1-P4)
model: "openai-gpt-4-1"
mcp_server: Helpdesk MCP
tools:
- Ticket Reader
- Priority Classifier
trigger: "Event: new ticket received"
approval: auto
- id: st-2
name: Categorizer Agent
role: Secondary
goal: Categorize tickets by topic, product area, and sentiment
model: "openai-gpt-4-1"
mcp_server: NLP Pipeline MCP
tools:
- Topic Classifier
- Sentiment Analyzer
- Product Tagger
trigger: "On completion of Triage Agent"
approval: auto
- id: st-3
name: Pattern Analyzer Agent
role: Final
goal: Identify recurring issues and generate resolution recommendations
model: "anthropic-claude-sonnet-4"
mcp_server: Analytics MCP
tools:
- Pattern Detector
- Knowledge Base Search
- Resolution Generator
trigger: "On completion of Categorizer Agent"
approval: manual

# Goal / Prompt (Step 4 in the UI — the user-facing objective)
goal: >-
Triage incoming support tickets by urgency, categorize by topic and
sentiment, identify recurring patterns, and generate resolution
recommendations with escalation paths for critical issues.

# Protocols & UI Extensions
protocol: ag-ui
protocol: vercel-ai
ui_extension: a2ui

# Evals
Expand Down Expand Up @@ -139,6 +90,7 @@ trigger:
type: schedule
cron: "0 */2 * * *"
description: Every 2 hours
prompt: "Run the scheduled workflow and produce the configured deliverable."

# Output configuration
output:
Expand Down
Loading