소스 정보
- 저장소
- aAAaqwq/AGI-Super-Team
- 최근 소스 활동
- 2026년 4월 21일 16:13
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 86
- 포크
- 22
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/aAAaqwq/AGI-Super-Team --skill web-content-capture명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
币安广场合约投机雷达 v5:以最近24小时专业交易帖为主要证据,回源核验帖子, 联合币安公共合约行情、4周期K线、布林带、ATR、量能和RR,生成可审计的本地影子报告。 触发词:币安广场、扫描币安、binance square、合约机会、交易信号雷达、4小时雷达
BTC 5分钟K线实时方向预测。v5.9对抗式审查重构: 13因子收敛到3个有证据信号(half_body延续+volume放量+meanrev回归, 11个47-49%硬币因子清零) + 三层独立信息过滤(多周期4h/1h/15m趋势 + 跨资产ETH/SOL广度 + 真订单流OFI) + 移除bull×0.92惩罚/Platt置信度门控。半K线策略第2分钟执行。黑天鹅防护: ATR spike+FNG<25。Binance端点双向故障切换。
BB 双向套利策略:加密合约 10x 杠杆布林带均值回归。布林带收窄=横盘→在下轨买、上轨卖;三重过滤器(1h趋势/RSI/BB甜区)确认碗平放,轨对轨止盈(RR 2:1~4:1)。含实时WebSocket模拟盘(paper)、历史回测(simulate/backtest_daily)、币安永续实盘CLI(trade_exec)。触发:'bb套利'、'布林带'、'bollinger'、'横盘策略'、'NEAR'、'回测'、'模拟盘'、'paper trading'。
SOC 직업 분류 기준
SKILL.md 표시 중
| name | web-content-capture |
| description | 为内容生产提供**网页截图和素材采集**能力。所有内容生成类 skill 在素材阶段应调用本 skill。 |
MediaClaw 通用素材采集工具
为内容生产提供网页截图和素材采集能力。所有内容生成类 skill 在素材阶段应调用本 skill。
1. OpenClaw browser (profile="openclaw")
→ 保持登录态,适合 X/Reddit/需登录平台
→ 截图保存到 ~/.openclaw/media/browser/
2. OpenClaw browser (profile="user")
→ 使用 Daniel 的 Chrome session(需 debug port 9222)
3. Playwright headless (exec + python3)
→ 无登录态,适合 GitHub/文档站/博客等公开页面
→ 最快最稳定
4. web_fetch
→ 仅获取文本,无法截图
→ 代理环境可能导致 SSRF 拦截
browser(action="status", profile="openclaw")
running: false → browser(action="start", profile="openclaw")gateway(action="restart") 等待5秒重试browser(action="open", profile="openclaw", targetUrl="https://...")
保留返回的 targetId 用于后续操作。每个平台用独立 tab。
browser(action="act", profile="openclaw", targetId="xxx",
request={"kind": "wait", "timeMs": 8000})
| 平台 | 建议 |
|---|---|
| GitHub | 3-5秒 |
| Reddit(公开) | 5-8秒 |
| X/Twitter | 8-12秒 |
| Google搜索 | 3-5秒 |
| Medium/Blog | 5-8秒 |
browser(action="screenshot", profile="openclaw", targetId="xxx", type="png")
OpenClaw browser 截图存在 ~/.openclaw/media/browser/,必须复制到项目输出目录:
# 找到最新截图(按时间倒序,取 >20KB 的有效文件)
ls -lt ~/.openclaw/media/browser/*.{png,jpg} | head -10
# 复制到目标文章素材目录
cp ~/.openclaw/media/browser/<file> <OUTPUT_DIR>/<descriptive-name>.png
# 快速检查:文件大小 > 20KB
ls -lh <screenshot>
# 深度检查:是否空白
python3 -c "
from PIL import Image; import numpy as np
img = np.array(Image.open('<path>'))
print('BLANK' if img.mean() > 250 else 'OK')
"
当 OpenClaw browser 不可用或无需登录时:
import asyncio
from playwright.async_api import async_playwright
async def capture(url, output_path):
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page(
user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36",
viewport={"width": 1400, "height": 900}
)
await page.goto(url, timeout=25000)
await page.wait_for_load_state("domcontentloaded", timeout=15000)
await asyncio.sleep(5)
await page.screenshot(path=output_path)
await browser.close()
asyncio.run(capture("https://github.com/user/repo", "github-repo.png"))
| 平台 | URL | 登录 |
|---|---|---|
| X | https://x.com/search?q=关键词&f=live | ✅ |
https://reddit.com/r/{sub}/search/?q=关键词&sort=top&t=month | 部分 | |
| GitHub | https://github.com/{user}/{repo} | ❌ |
https://google.com/search?q=关键词 | ❌ | |
| Medium | https://medium.com/search?q=关键词 | ❌ |
| 知乎 | https://zhihu.com/search?type=content&q=关键词 | 部分 |
由调用方指定,不写死。标准结构:
<OUTPUT_DIR>/
├── github-*.png
├── reddit-*.png
├── x-*.png
├── google-*.png
├── cover-*.png
└── article.md
OUTPUT_DIR 由内容生成 skill 在调用时传入,通常为:
~/clawd/projects/MediaClaw/output/articles/{YYYY-MM-DD}/{topic-slug}/
严禁截取全页面(可能暴露 profile、通知、DM、关注列表等)。
正确做法:只截目标推文/评论
Page.captureScreenshot + clip 参数裁剪单条内容# CDP 裁剪单条推文(示例)
import json, base64, websockets
async with websockets.connect(ws_url) as ws:
# 1. 定位目标推文的 bounding box
await ws.send(json.dumps({
"id": 1,
"method": "Runtime.evaluate",
"params": {
"expression": """
(() => {
const articles = document.querySelectorAll('article');
let best = null, bestScore = 0;
for (const a of articles) {
const t = a.textContent;
// 找 likes 最高的相关推文
const m = t.match(/([\d,.]+)\s*[Ll]ikes?/);
const score = m ? parseInt(m[1].replace(/,/g,'')) : 0;
if (score > bestScore && t.includes('KEYWORD')) {
bestScore = score;
best = a.getBoundingClientRect();
}
}
return best ? {x:best.x, y:best.y, w:best.width, h:best.height} : null;
})()
""",
"returnByValue": True
}
}))
bbox = json.loads(await ws.recv())['result']['result']['value']
# 2. 裁剪截图(scale=2 对应 deviceScaleFactor)
clip = {"x": bbox['x']*2, "y": bbox['y']*2,
"width": bbox['w']*2, "height": bbox['h']*2, "scale": 1}
await ws.send(json.dumps({
"id": 2,
: ,
: {: , : clip}
}))
data = json.loads( ws.recv())[][]
(, ) f:
f.write(base64.b64decode(data))
| 平台 | 裁剪策略 | 裁掉什么 |
|---|---|---|
| X/Twitter | 单条推文 bounding box | 导航栏、侧栏、推荐关注 |
| 搜索结果区域 | 顶栏、侧栏、广告 | |
| GitHub | 仓库主体区域(去掉侧边栏) | 右侧推荐、赞助 |
| 搜索结果主体 | 顶栏、广告、侧栏 |
| 问题 | 解决 |
|---|---|
| browser 超时 | gateway restart + browser start |
| 截图空白 | 增加等待时间 / 换 Playwright / 检查登录态 |
| SSRF 拦截 | 用 OpenClaw browser 替代 web_fetch |
| X 需登录 | 用 OpenClaw browser (openclaw profile),首次需扫码 |
| 截图暴露隐私 | 用 CDP clip 裁剪单条内容,不截全页 |