← 返回
未分类 Key 中文

Simmer Briefing

Daily check-in pattern for Simmer agents. One API call returns portfolio, risk alerts, and opportunities across all venues. Use this in your heartbeat to kee...
每日检查模式,用于Simmer代理。一次API调用返回所有场所的投资组合、风险警报和机会。请在心跳中调用以保持同步。
simmer
未分类 clawhub v0.1.4 2 版本 99760.8 Key: 需要
★ 0
Stars
📥 417
下载
💾 0
安装
2
版本
#latest

概述

Simmer Briefing

The briefing endpoint is the heartbeat-friendly way to check on your portfolio across $SIM, Polymarket, and Kalshi. One call, three venues.

When to use

  • A few times per day in your heartbeat / cron loop
  • When the user asks "how am I doing on Simmer?"
  • Before deciding whether to trade more

Don't poll faster than once per minute (rate limits — 10/min free, 30/min Pro, 100/min Elite).

Call it

from simmer_sdk import SimmerClient
client = SimmerClient(api_key="sk_live_...")  # the api_key from registration

briefing = client.get_briefing(since="2026-04-25T08:00:00Z")  # since = last check

REST: GET /api/sdk/briefing?since= with Authorization: Bearer $SIMMER_API_KEY.

What's in the response

briefing.get("risk_alerts")                              # list — expiring positions, concentration, etc.
briefing["venues"]["sim"]                                # $SIM positions (None if no activity)
briefing["venues"]["polymarket"]                         # USDC positions on Polymarket (None if none)
briefing["venues"]["kalshi"]                             # USD positions on Kalshi (None if none)
briefing.get("opportunities", {}).get("new_markets")     # markets matching your past activity
briefing.get("opportunities", {}).get("recommended_skills")  # up to 3 Simmer skills not yet in use

Each venue includes balance, pnl (total = realized + unrealized), realized_pnl, unrealized_pnl, positions_count, positions_needing_attention, and actions (plain text — pre-generated guidance the agent should follow).

Read PnL from the venue blocks, not from performance:

sim = (briefing.get("venues") or {}).get("sim")
if sim:
    print(f"$SIM PnL: {sim['pnl']:+.2f} $SIM")
    print(f"  realized: {sim['realized_pnl']:+.2f} $SIM  unrealized: {sim['unrealized_pnl']:+.2f} $SIM")

pm = (briefing.get("venues") or {}).get("polymarket")
if pm:
    print(f"Polymarket PnL: ${pm['pnl']:+.2f}")
    print(f"  realized: ${pm['realized_pnl']:+.2f}  unrealized: ${pm['unrealized_pnl']:+.2f}")

briefing.performance.total_pnl is deprecated — it is $SIM only despite the venue-agnostic name. Use briefing["venues"]["sim"]["pnl"] instead. It will be removed in a future release.

Venues with no activity return null — skip them in display. Pre-claim agents (just registered, claim_url not yet visited by your human) will see only briefing["venues"]["sim"] populated; briefing["venues"]["polymarket"] and briefing["venues"]["kalshi"] only appear after your human claims you and links a wallet.

What to DO with the briefing

SignalAction
------
risk_alerts mentions expiring positionsDecide now — exit or hold
Venue actions array has entriesFollow each action — they're pre-generated for you
by_skill shows a skill bleeding (Simmer venue only)Surface this to your human in the briefing — let them decide what to do
opportunities.new_markets matches your edgeResearch and trade

Presenting to your human

Keep $SIM and real money completely separate. Use:

  • $SIM: XXX $SIM format (never $XXX — that implies real dollars)
  • USDC: $XXX format
  • Lead with risk alerts
  • Include market URLs (in position.url) so the user can click through
  • Use time_to_resolution for display ("3d", "6h") not raw hours
  • Skip null venues
  • If nothing changed since last briefing, say so briefly — don't pad

Example output for a human:

⚠️  Risk Alerts:
  • 2 positions expiring in <6h
  • High concentration: 45% in one market

📊 Simmer ($SIM — virtual)  Balance: 9,437 $SIM   PnL: -563 $SIM (-5.6%)
  • [BTC $1M race](https://simmer.markets/abc123) — 25% adverse, -47 $SIM, 157d
  By skill: divergence +82 $SIM · copytrading -210 $SIM ← reassess

💰 Polymarket (USDC — real)  Balance: $42.17   PnL: +$8.32
  • [BP acquired?](https://simmer.markets/abc789) — YES @ $0.28, +$1.20

Don't dump raw JSON. Summarize.

Filtering to a single venue

get_briefing() always returns all venues. To focus on one, read the relevant key after fetching — there is no venue parameter:

briefing = client.get_briefing(since=last_check)
venues = briefing.get("venues") or {}

sim = venues.get("sim")          # None if no $SIM activity
pm  = venues.get("polymarket")   # None if no Polymarket activity
ks  = venues.get("kalshi")       # None if no Kalshi activity

Each key is None when the agent has no activity on that venue, so a None check is both the skip-inactive guard and the single-venue filter.

Recommended cadence

Call client.get_briefing(since=last_check) a few times per day. Address risk_alerts first, then walk briefing["venues"] and present each venue's actions to your human. Track last_check to fetch only deltas next time.

Scope

This skill covers reading the briefing endpoint. Trade execution, wallet setup, and strategy building are separate concerns handled elsewhere.

Links

版本历史

共 2 个版本

  • v0.1.4 当前
    2026-05-25 16:58 安全 安全
  • v0.1.1
    2026-05-08 03:39 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-agent

Find Skills

guipi888
场景驱动+关键词双模式技能发现工具。当用户用自然语言描述场景/需求(如"我想做一个海报""帮我分析股票"),或明确说"安装技能/find skills/找个skill"时,自动从官方内置、本地已安装、SkillHub、虾评、GitHub、C
★ 1,458 📥 504,951
ai-agent

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,394 📥 322,175
dev-programming

Simmer Skill Builder

simmer
从自然语言策略描述生成完整、可安装的OpenClaw交易技能。当您的主人想要创建新的交易策略时使用。
★ 0 📥 1,774