Add ez-assistant and kerberos service folders
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
# Cost Analyzer
|
||||
# Analyzes runs for token usage and cost patterns
|
||||
#
|
||||
# Usage:
|
||||
# prose run @openprose/lib/cost-analyzer
|
||||
#
|
||||
# Inputs:
|
||||
# run_path: Path to run to analyze, or "recent" for latest runs
|
||||
# scope: single | compare | trend
|
||||
#
|
||||
# Outputs:
|
||||
# - Token usage breakdown by agent/phase
|
||||
# - Model tier efficiency analysis
|
||||
# - Cost hotspots
|
||||
# - Optimization recommendations
|
||||
|
||||
input run_path: "Path to run, or 'recent' for latest runs in .prose/runs/"
|
||||
input scope: "Scope: single (one run) | compare (multiple runs) | trend (over time)"
|
||||
|
||||
# ============================================================
|
||||
# Agents
|
||||
# ============================================================
|
||||
|
||||
agent collector:
|
||||
model: sonnet
|
||||
prompt: """
|
||||
You collect and structure cost/token data from .prose runs.
|
||||
|
||||
Extract from run artifacts:
|
||||
- Model used per session (haiku/sonnet/opus)
|
||||
- Approximate token counts (estimate from content length)
|
||||
- Session count per agent
|
||||
- Parallel vs sequential execution
|
||||
"""
|
||||
|
||||
agent analyzer:
|
||||
model: opus
|
||||
prompt: """
|
||||
You analyze cost patterns and identify optimization opportunities.
|
||||
|
||||
Consider:
|
||||
- Model tier appropriateness (is opus needed, or would sonnet suffice?)
|
||||
- Token efficiency (are contexts bloated?)
|
||||
- Parallelization (could sequential steps run in parallel?)
|
||||
- Caching opportunities (repeated computations?)
|
||||
"""
|
||||
|
||||
agent tracker:
|
||||
model: haiku
|
||||
persist: user
|
||||
prompt: """
|
||||
You track cost metrics across runs for trend analysis.
|
||||
Store compactly: run_id, program, total_cost_estimate, breakdown.
|
||||
"""
|
||||
|
||||
# ============================================================
|
||||
# Phase 1: Collect Run Data
|
||||
# ============================================================
|
||||
|
||||
let runs_to_analyze = session: collector
|
||||
prompt: """
|
||||
Find runs to analyze.
|
||||
|
||||
Input: {run_path}
|
||||
Scope: {scope}
|
||||
|
||||
If run_path is a specific path, use that run.
|
||||
If run_path is "recent", find the latest 5-10 runs in .prose/runs/
|
||||
|
||||
For scope=compare, find runs of the same program.
|
||||
For scope=trend, find runs over time.
|
||||
|
||||
Return: list of run paths to analyze
|
||||
"""
|
||||
|
||||
let run_data = runs_to_analyze | pmap:
|
||||
session: collector
|
||||
prompt: """
|
||||
Extract cost data from run: {item}
|
||||
|
||||
Read state.md and bindings to determine:
|
||||
1. Program name
|
||||
2. Each session spawned:
|
||||
- Agent name (or "anonymous")
|
||||
- Model tier
|
||||
- Estimated input tokens (context size)
|
||||
- Estimated output tokens (binding size)
|
||||
3. Parallel blocks (how many concurrent sessions)
|
||||
4. Total session count
|
||||
|
||||
Estimate costs using rough rates:
|
||||
- haiku: $0.25 / 1M input, $1.25 / 1M output
|
||||
- sonnet: $3 / 1M input, $15 / 1M output
|
||||
- opus: $15 / 1M input, $75 / 1M output
|
||||
|
||||
Return structured JSON.
|
||||
"""
|
||||
context: item
|
||||
|
||||
# ============================================================
|
||||
# Phase 2: Analyze
|
||||
# ============================================================
|
||||
|
||||
let analysis = session: analyzer
|
||||
prompt: """
|
||||
Analyze cost patterns across these runs.
|
||||
|
||||
Data: {run_data}
|
||||
Scope: {scope}
|
||||
|
||||
For single run:
|
||||
- Break down cost by agent and phase
|
||||
- Identify the most expensive operations
|
||||
- Flag potential inefficiencies
|
||||
|
||||
For compare:
|
||||
- Show cost differences between runs
|
||||
- Identify which changes affected cost
|
||||
- Note if cost increased/decreased
|
||||
|
||||
For trend:
|
||||
- Show cost over time
|
||||
- Identify if costs are stable, growing, or improving
|
||||
- Flag anomalies
|
||||
|
||||
Always include:
|
||||
- Model tier efficiency (are expensive models used appropriately?)
|
||||
- Context efficiency (are contexts lean or bloated?)
|
||||
- Specific optimization recommendations
|
||||
|
||||
Return structured JSON with:
|
||||
{
|
||||
"summary": { total_cost, session_count, by_model: {...} },
|
||||
"hotspots": [ { agent, cost, percent, issue } ],
|
||||
"recommendations": [ { priority, description, estimated_savings } ],
|
||||
"details": { ... }
|
||||
}
|
||||
"""
|
||||
context: run_data
|
||||
|
||||
# ============================================================
|
||||
# Phase 3: Track for Trends
|
||||
# ============================================================
|
||||
|
||||
resume: tracker
|
||||
prompt: """
|
||||
Record this cost analysis for future trend tracking.
|
||||
|
||||
{analysis.summary}
|
||||
|
||||
Add to your historical record.
|
||||
"""
|
||||
context: analysis
|
||||
|
||||
# ============================================================
|
||||
# Output
|
||||
# ============================================================
|
||||
|
||||
output report = session "Format report"
|
||||
prompt: """
|
||||
Format the cost analysis as a readable report.
|
||||
|
||||
Analysis: {analysis}
|
||||
|
||||
Include:
|
||||
1. Executive summary (total cost, key finding)
|
||||
2. Cost breakdown table
|
||||
3. Hotspots (where money goes)
|
||||
4. Recommendations (prioritized)
|
||||
5. If scope=trend, include trend chart (ascii or description)
|
||||
|
||||
Format as markdown.
|
||||
"""
|
||||
context: analysis
|
||||
Reference in New Issue
Block a user