UNPKG

skills-ws

Version:

87 agent skills for AI coding assistants — marketing, growth, web3, dev, design & operations. Built for OpenClaw, Claude Code, Cursor, and Codex.

88 lines (71 loc) • 3.03 kB
## Contents - Production Concerns - Cost Tracking - Streaming Responses - Fallback Models ## Production Concerns ### Cost Tracking ```python import tiktoken from contextlib import contextmanager class CostTracker: # USD per 1M tokens (input/output). List prices as of Jul 2026 (these move often); # treat as a starting point and re-check the official pricing pages, ideally generating # this dict from a dated constants file in CI: # OpenAI: https://openai.com/api/pricing # Anthropic: https://platform.claude.com/docs/en/about-claude/pricing PRICES = { "gpt-5.6-sol": {"input": 5.00, "output": 30.00}, # flagship "gpt-5.6-terra": {"input": 2.50, "output": 15.00}, # balanced "gpt-5.6-luna": {"input": 1.00, "output": 6.00}, # cost-optimized "gpt-5.5": {"input": 5.00, "output": 30.00}, "gpt-5.4": {"input": 2.50, "output": 15.00}, # production workhorse "gpt-5.1": {"input": 1.25, "output": 10.00}, "claude-opus-4-8": {"input": 5.00, "output": 25.00}, "claude-sonnet-4-6": {"input": 3.00, "output": 15.00}, "claude-haiku-4-5": {"input": 1.00, "output": 5.00}, } def __init__(self): self.total_input_tokens = 0 self.total_output_tokens = 0 self.total_cost = 0.0 self.calls = [] def track(self, model: str, input_tokens: int, output_tokens: int): prices = self.PRICES.get(model, {"input": 0, "output": 0}) cost = (input_tokens * prices["input"] + output_tokens * prices["output"]) / 1_000_000 self.total_input_tokens += input_tokens self.total_output_tokens += output_tokens self.total_cost += cost self.calls.append({"model": model, "input": input_tokens, "output": output_tokens, "cost": cost}) def report(self) -> str: return ( f"Total: {len(self.calls)} calls, " f"{self.total_input_tokens} input + {self.total_output_tokens} output tokens, " f"${self.total_cost:.4f}" ) ``` ### Streaming Responses ```python # LangGraph streaming (assumes `app` and HumanMessage from the Basic Agent setup above) from langchain_core.messages import HumanMessage async for event in app.astream_events( {"messages": [HumanMessage(content="Hello")]}, version="v2", ): if event["event"] == "on_chat_model_stream": chunk = event["data"]["chunk"] print(chunk.content, end="", flush=True) elif event["event"] == "on_tool_start": print(f"\n[Using tool: {event['name']}]") ``` ### Fallback Models ```python from langchain_openai import ChatOpenAI from langchain_anthropic import ChatAnthropic primary = ChatOpenAI(model="gpt-5.5", timeout=30) fallback = ChatAnthropic(model="claude-sonnet-4-6", timeout=30) model = primary.with_fallbacks([fallback]) # Automatically tries fallback if primary fails (cross-provider is the point — # survives a single vendor's outage or rate-limit spike) ``` ---