使用 Hermes Agent 自动化制作 TikTok 幻灯片内容指南 ✍ Alex Nguyen🕐 2026-05-14📦 20.3 KB 🟢 已读 𝕏 文章列表 本文介绍如何利用 Hermes Agent 自动化 TikTok 幻灯片(Slideshow)内容的生成与发布流程。文章分析了幻灯片流量红利与手动制作痛点,详细讲解了 Hermes 的安装配置、基于 Skill 和 Cron 的管道模型设计,以及 Hook 研究、图片路由、Pinterest 爬取和合成等核心技能的实现方法。 TikTok自动化Agent内容创作爬虫短剧流量红利CronOpenAIClaude # How to Automate TikTok Slideshow Content Creation with Hermes Agent (Step-by-Step Guide) **作者**: Alex Nguyen **日期**: 2026-05-13T16:51:24.000Z **来源**: [https://x.com/alexcooldev/status/2054605442945569184](https://x.com/alexcooldev/status/2054605442945569184) ---  Currently, TikTok is heavily boosting views and engagement for slideshows, you can check out these channels.     ## Why this stack Slideshows are the highest leverage format on TikTok right now: - Algorithm still pushes them aggressively (cheap content, infinite supply problem on TT's side) - No filming, no editing, no face required - Hook-driven → you can A/B test 50 hooks/day - Draft uploads bypass most bot detection that hits the direct-publish API The bottleneck was never ideas. It was the assembly line. Hook → niche → image direction → 8 slide compositions → caption → schedule. Doing this manually = 20 mins per post. For 30 accounts = a full-time job you hate. Hermes Agent is the right tool because it's not a framework you npm install and wire up it's an autonomous CLI agent that lives wherever you put it (my $5 Hetzner box), with built-in skills, cron, MCP, and subagent delegation. The whole pipeline is just skills that the agent loads + cron jobs that fire them on schedule. No queue infrastructure, no worker pool to manage. ## Step 1: Install Hermes Agent One-liner install on the VPS: ``` curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash source ~/.bashrc ``` Pick a provider: ``` hermes model ``` I run with Anthropic via OAuth (Max plan) for the agent-y stages (hook research, image direction, caption) and a cheap OpenRouter fallback for high-volume polls. You can also wire Nous Portal, OpenAI Codex, DeepSeek, Z.AI, Kimi hermes model walks through it all. Verify it works: ``` hermes --tui > Summarize what's in this directory. ``` If that responds, you're past the hardest part. The full quickstart is at https://hermes-agent.nousresearch.com/docs/getting-started/quickstart. Then install the gateway as a systemd service so cron jobs actually run when you're not logged in: ``` hermes gateway install ``` This is the daemon that ticks the scheduler every 60 seconds and runs due jobs in fresh agent sessions. ## Step 2: Mental model pipeline = skills + cron, not workers Most automation tutorials reach for queues and workers. Hermes flips this. The unit of work is a skill (markdown file in ~/.hermes/skills/) and the trigger is a cron job that loads one or more skills and runs them. Here's the mapping for the TikTok pipeline:  Each skill is a markdown file the agent loads on demand. Cron jobs chain them via context_from. The Hermes scheduler runs each job in a fresh isolated session, so no state corruption between accounts. ## Step 3: Create the skills Skills live in ~/.hermes/skills/<category>/<skill-name>/SKILL.md. The agent can create them itself via skill_manage, or you can author them by hand. I do a mix I draft the structure, then let Hermes refine after watching it run. Hook Researcher skill bash ``` mkdir -p ~/.hermes/skills/tiktok/hook-researcher ``` ~/.hermes/skills/tiktok/hook-researcher/SKILL.md: ``` --- name: tiktok-hook-researcher description: Generate TikTok slideshow hooks for a given niche, eval, return top 3 version: 1.0.0 metadata: hermes: tags: [tiktok, content, hooks] category: tiktok --- # TikTok Hook Researcher ## When to Use When asked to generate hooks for a TikTok slideshow in a specific niche. ## Procedure 1. Read the last 20 winning hooks for the niche from `~/.hermes/data/tiktok/hook_performance.jsonl`. 2. Generate 10 hook candidates. Constraints: - Under 60 characters - Curiosity gap, not clickbait - Mix of 3 archetypes: contrarian, listicle, transformation 3. Score each candidate 1-10 on "would a 19yo stop scrolling for this", calibrated against the winning hooks. 4. Output JSON to stdout: `{ hooks: [{ text, archetype, score }, ...] }` sorted by score descending. Return the top 3. ## Pitfalls - LLMs default to clickbait. Bias hard against "You won't believe..." patterns. - Don't reuse exact phrasing from the last 20 winners — algorithm penalizes recycled hooks. ## Verification Output is valid JSON. Top hook has score ≥ 7. All hooks ≤ 60 chars. ``` Image Source Router skill This decides Pinterest vs AI gen per slot. ~/.hermes/skills/tiktok/source-router/SKILL.md: ``` --- name: tiktok-source-router description: Decide image source (pinterest or ai_gen) per slide for a TikTok carousel version: 1.0.0 metadata: hermes: tags: [tiktok, images, routing] category: tiktok --- # TikTok Image Source Router ## When to Use After a hook is picked, before image gathering. Decides per slide whether to source from Pinterest or generate with AI. ## Procedure 1. Read the niche + hook from context. 2. Apply routing rules: - Fitness, fashion, food, travel, aesthetic → Pinterest (real photos win) - Anime/RPG, fictional characters, abstract concepts → AI gen - Mixed niches: cover slide AI gen, body slides Pinterest 3. Output JSON array of 8 routing decisions: `[{ slot, source, query_or_brief }, ...]` ## Pitfalls - Don't AI-gen fitness transformations. Uncanny valley. Use Pinterest. - Don't Pinterest-search for "anime warrior rank up". Doesn't exist. Use AI gen. ``` Pinterest Scraper skill This one needs a helper script because the agent shouldn't be doing HTTP rotation logic in-context. ``` mkdir -p ~/.hermes/skills/tiktok/pinterest-scraper/scripts ``` ~/.hermes/skills/tiktok/pinterest-scraper/SKILL.md: ``` --- name: tiktok-pinterest-scraper description: Source TikTok-ready images from Pinterest with proxy rotation and phash dedup version: 1.0.0 required_environment_variables: - name: PROXY_POOL_URL prompt: Residential proxy pool endpoint help: Bright Data, Smartproxy, or any rotating residential proxy metadata: hermes: tags: [tiktok, pinterest, scraping] category: tiktok --- # TikTok Pinterest Scraper ## When to Use Source router routes a slot to `pinterest`. Need fresh, unique, properly-sized images for that account. ## Procedure 1. Call `scripts/scrape.py` with the search query and account_id: `python scripts/scrape.py --query "{q}" --account {id} --count {n}` 2. The script handles: - Proxy rotation per request - Cookie pool rotation - Perceptual hash dedup against the last 30 days for that account - Aspect ratio filter (min 1080×1350) - S3 upload to MinIO 3. Parse the script's stdout (JSON list of S3 URLs). 4. If count returned < requested, retry with rephrased query (max 2 retries). ## Pitfalls - Pinterest rate-limits per IP. Always go through proxy. - Hamming distance < 5 = duplicate. Don't relax this threshold. - Anything < 1080×1350 will look soft on TikTok. Filter at search, not after download. ``` ~/.hermes/skills/tiktok/pinterest-scraper/scripts/scrape.py is a normal Python script. The agent invokes it via execute_code or terminal and parses stdout. The PROXY_POOL_URL declared above gets passed through automatically into execute_code sandboxes that's a Hermes feature that saved me a lot of env plumbing. Slide Compositor no-agent mode This stage is fully deterministic. No LLM needed. Hermes has no_agent mode for exactly this: bash ``` mkdir -p ~/.hermes/scripts ``` ~/.hermes/scripts/compose-slides.py: ``` #!/usr/bin/env python3 """Composite 8 raw images + hook into TikTok-ready 1080x1920 slides. Reads job spec from stdin (JSON), writes composited file paths to stdout. """ import json, sys from PIL import Image, ImageDraw, ImageFont # ...full Sharp/PIL compositing logic here... if __name__ == "__main__": spec = json.load(sys.stdin) output_paths = compose_all(spec) print(json.dumps({"slides": output_paths})) ``` Then schedule it as a no_agent cron job wakeAgent never fires, no LLM cost on this step. Publisher skill ~/.hermes/skills/tiktok/publisher/SKILL.md: ``` --- name: tiktok-publisher description: Upload composited slides to TikTok as draft via Postiz Cloud version: 1.0.0 required_environment_variables: - name: POSTIZ_API_KEY prompt: Postiz Cloud API key help: Get from postiz.com → Settings → API Keys metadata: hermes: tags: [tiktok, publishing] category: tiktok --- # TikTok Publisher ## When to Use After slides + caption are ready. Uploads as draft to TikTok via Postiz. ## Procedure 1. Read slides paths + caption + account_id from context. 2. Always check account age. If `< 30 days` or `total_posts < 20` → force draft mode. Honestly even for old accounts I default to draft. There is zero upside to direct-publish. 3. Call `postiz-cli`: postiz-cli schedule --account {account_id} --platform tiktok --mode draft --media {slide_paths} --caption {caption} --time {scheduled_iso} 4. Capture postId from stdout. Write to `~/.hermes/data/tiktok/posts.jsonl`. ## Pitfalls - NEVER direct-publish on a new account. Silent shadow ban inside a week. - Postiz CLI needs POSTIZ_API_KEY in env. Hermes passes it through automatically. - Randomize scheduled time within ±90min jitter to kill robotic interval signal. ``` ## Step 4: The shadow ban killer always draft mode This is the part most tutorials skip and it's the biggest reason new accounts die. If an account is less than 30 days old, ALWAYS post as draft. No exceptions. New accounts on TikTok are on probation. The algorithm profiles: - Publishing through the Content Posting API → bot risk score +1 - Publish IP not matching the account's usual device IP → +1 - Suspiciously regular intervals → +1 - Stripped or inconsistent metadata vs on-device capture → +1 Stack 2-3 of those on a fresh account and you get shadow banned silently. No notification. Videos stuck at 50-200 views forever. You'll think your content sucks. It doesn't the account is dead. The Publisher skill above hardcodes draft mode for any account under 30 days / under 20 posts. Postiz uploads it as a draft, then my iPhone farm picks up the draft (via WebDriverAgent automation) and hits Publish from a real device with a real IP. TikTok sees a human-initiated publish from a known device clean. Warmup protocol: - Days 1-7: account does nothing but scroll, like, follow - Days 8-14: post 1 draft/day, published from device 2-4 hours after draft creation - Days 15-30: ramp to 2-3 drafts/day, randomize publish times within ±90 min - Day 30+: full pipeline cadence, still draft mode Hermes cron + Postiz Cloud + iPhone farm device publish = indistinguishable from organic behavior to TikTok's classifiers. ## Step 5: Chain everything together with cron + context_from This is the magic of Hermes' cron system. Each pipeline stage is a separate cron job. Job N reads the most recent output of Job N-1 via context_from. The chain runs end-to-end without me orchestrating anything. I create the chain from a single chat session with Hermes: text hermes --tui > I need to set up the TikTok pipeline for account acc_42, niche=fitness. > Schedule the pipeline to run every day at 09:00 UTC. > Chain: hook research → source routing → pinterest scrape → compose → caption → publish. > Each stage should use the matching skill and receive context from the previous stage. Hermes uses the cronjob tool internally and creates the chain. Here's what the equivalent direct calls look like (Hermes does this for you): ``` # Stage 1: Hook research, daily at 09:00 cronjob( action="create", name="tt-hook-acc42", schedule="0 9 * * *", skills=["tiktok-hook-researcher"], prompt="Generate hooks for niche=fitness for account acc_42. Output top 3 as JSON.", workdir="/home/alex/tiktok-pipeline", ) # Stage 2: Source routing, 5 minutes later cronjob( action="create", name="tt-route-acc42", schedule="5 9 * * *", skills=["tiktok-source-router"], context_from="tt-hook-acc42", prompt="Route image sources for the top hook. Output 8 routing decisions.", ) # Stage 3: Pinterest scrape (for pinterest-routed slots) cronjob( action="create", name="tt-pinterest-acc42", schedule="10 9 * * *", skills=["tiktok-pinterest-scraper"], context_from="tt-route-acc42", prompt="For each pinterest-routed slot, scrape unique deduped images. Output S3 URLs.", ) # Stage 4: Compositor — no_agent mode, pure script cronjob( action="create", name="tt-compose-acc42", schedule="20 9 * * *", no_agent=True, script="compose-slides.py", context_from=["tt-pinterest-acc42", "tt-hook-acc42"], name="tt-compose-acc42", ) # Stage 5: Caption cronjob( action="create", name="tt-caption-acc42", schedule="25 9 * * *", skills=["tiktok-caption-writer"], context_from=["tt-hook-acc42", "tt-compose-acc42"], prompt="Write caption + 4 hashtags for the slideshow.", ) # Stage 6: Publish cronjob( action="create", name="tt-publish-acc42", schedule="30 9 * * *", skills=["tiktok-publisher"], context_from=["tt-compose-acc42", "tt-caption-acc42"], prompt="Upload slides + caption as draft to TikTok account acc_42 via Postiz.", deliver="telegram", # ping me when done ) ``` A few key things: context_from chains the outputs. Hermes reads each upstream job's most recent saved output from ~/.hermes/cron/output/{job_id}/ and prepends it to the next job's prompt as context. No databases, no queues, no glue code. workdir runs the job inside the project directory. This means AGENTS.md, .cursorrules, and any local context files get auto-loaded. Useful when you keep account configs and prompt overrides in a project repo. no_agent=True on the compositor. Pure deterministic Sharp/PIL work. No reason to pay for an LLM turn. The script's stdout becomes the job's output and chains to the next stage normally. deliver="telegram" pings me when the publish completes. I use "all" for the final stage on the high-value account so I get the success ping on every connected channel. ## Step 6: Per-stage toolset control (cost saver) By default cron jobs inherit the toolsets you configured for the cron platform via hermes tools. But for cost control on high-frequency stages, lock toolsets per job: ``` cronjob( action="create", name="tt-hook-acc42", schedule="0 9 * * *", skills=["tiktok-hook-researcher"], enabled_toolsets=["file"], # hook gen only needs file read for past performance prompt="...", ) ``` Hook research doesn't need browser, terminal, or delegation toolsets — those bloat the tool-schema prompt on every LLM call. Locking the hook job to ["file"] cut my hook-gen tokens by ~40%. Across 30 accounts × 1 post/day × 30 days = real money. The Pinterest scrape job needs ["terminal", "file"] to call the script. The compositor in no_agent mode doesn't load any toolsets (no agent runs). The publisher needs ["terminal", "file"] for postiz-cli. ## Step 7: Skip the agent when nothing changed Hermes has a pre-check script pattern that's perfect for the daily hook job. If the niche performance data hasn't changed since yesterday, there's no reason to generate fresh hooks yesterday's top 3 are still the top 3. ~/.hermes/scripts/hook-precheck.py: ``` #!/usr/bin/env python3 import json, hashlib, pathlib, sys perf_file = pathlib.Path.home() / ".hermes/data/tiktok/hook_performance.jsonl" state_file = pathlib.Path.home() / ".hermes/state/hook-perf-hash.txt" state_file.parent.mkdir(parents=True, exist_ok=True) current_hash = hashlib.sha256(perf_file.read_bytes()).hexdigest() last_hash = state_file.read_text().strip() if state_file.exists() else "" if current_hash == last_hash: # Nothing new since last run. Skip the agent. print(json.dumps({"wakeAgent": False})) sys.exit(0) state_file.write_text(current_hash) print(json.dumps({"wakeAgent": True, "context": {"perf_updated": True}})) ``` Attach via the script parameter when creating the cron job. The agent only wakes when performance data actually changed. On a typical day where I haven't manually logged anything new, this skips the LLM entirely. Free. ## Step 8: Postiz setup cloud (or you can self hosted) + the official Hermes skill I tried self-hosting Postiz in Docker for 2 months. Spent more time fixing the container than building features OAuth token refreshes failing, media disk filling up, schedule worker dying silently. Postiz Cloud at $29/mo bought back ~5 hrs/week of debugging. The 60-second setup: bash ``` # 1. Sign up at postiz.com, get an API key from Settings → Developers → Public API # 2. Install the official Postiz × Hermes skill npx skills add gitroomhq/postiz-agent # 3. Add the API key to Hermes env echo "POSTIZ_API_KEY=pos_your_key_here" >> ~/.hermes/.env # 4. Connect your TikTok accounts via the Postiz web UI (OAuth flow) # Each connected account = one "integration" with a unique integration_id # 5. Verify discovery from Hermes hermes tools list | grep postiz # should show postiz commands available postiz integrations:list # lists all connected channels ``` The Postiz skill exposes itself to Hermes through this SKILL.md (lives in ~/.hermes/skills/postiz-agent/SKILL.md after install): ``` --- name: postiz description: Social media automation CLI for scheduling posts across 30+ platforms including TikTok metadata: hermes-agent: requirements: env: - POSTIZ_API_KEY binaries: - postiz --- # Available Commands - postiz integrations:list - postiz integrations:settings <id> - postiz posts:create - postiz upload <file> - postiz analytics:platform <id> ``` Hermes reads this on session start, registers the postiz binary as a tool, and now any cron job that loads this skill can call it. API basics worth knowing  The two-layer mode system trips people up. Postiz has its own type: "draft" for posts that sit in Postiz's UI without going anywhere. That's NOT what we want. We want type: "schedule" with content_posting_method: "UPLOAD" Postiz schedules the post, pushes it to TikTok at the scheduled time, but as a TikTok-side draft that lands in the account's inbox for the iPhone farm to publish from a real device. Wrong combination = wrong outcome. Test this on one account first. Self-host only if you have compliance reasons or you're posting at volume that justifies it. Cloud has a real cost (30 req/hr cap per key), but self-host eats your hours.What I learned the hard way Don't trust your first hooks. I ran the pipeline for 2 weeks blasting hook-archetype #1. Flat. Switched to A/B testing 3 archetypes per niche with a daily eval loop reading back from TikTok's view counts → killed the dead archetypes, doubled down on winners. CTR jumped within a week. Pinterest beats AI for authentic niches. I spent 3 months optimizing image gen prompts for fitness transformation slides. Then tested 50/50 against Pinterest-scraped equivalents. Pinterest slides got 2.3x the saves. Real photos hit different. The fix: route per-niche. Draft mode is non-negotiable for new accounts. I lost 4 accounts before I accepted this. Direct publish on a fresh account = silent shadow ban within the first week. You won't know until you've wasted 2 months of content on a dead account. Resource: - Hermes Agent: https://hermes-agent.nousresearch.com/ - Postiz: https://postiz.com/ Good luck guys 💪 ## 相关链接 - [Alex Nguyen](https://x.com/alexcooldev) - [@alexcooldev](https://x.com/alexcooldev) - [159K](https://x.com/alexcooldev/status/2054605442945569184/analytics) - [Z.AI](https://z.ai/) - [https://hermes-agent.nousresearch.com/docs/getting-started/quickstart](https://hermes-agent.nousresearch.com/docs/getting-started/quickstart) - [https://hermes-agent.nousresearch.com/](https://hermes-agent.nousresearch.com/) - [https://postiz.com/](https://postiz.com/) - [Upgrade to Premium](https://x.com/i/premium_sign_up) - [12:51 AM · May 14, 2026](https://x.com/alexcooldev/status/2054605442945569184) - [159.1K Views](https://x.com/alexcooldev/status/2054605442945569184/analytics) - [View quotes](https://x.com/alexcooldev/status/2054605442945569184/quotes) --- *导出时间: 2026/5/14 20:34:35* --- ## 中文翻译 # 如何使用 Hermes Agent 自动化 TikTok 幻灯片内容创作(分步指南) **作者**: Alex Nguyen **日期**: 2026-05-13T16:51:24.000Z **来源**: [https://x.com/alexcooldev/status/2054605442945569184](https://x.com/alexcooldev/status/2054605442945569184) ---  目前,TikTok 正在大力提升幻灯片(slideshows)的浏览量和互动率,你可以看看这些频道。     ## 为什么选择这套技术栈 幻灯片是目前 TikTok 上杠杆率最高的格式: - 算法仍在大力推荐(内容成本低,TT 面临无限供应的问题) - 无需拍摄,无需剪辑,无需露脸 - 驱动钩子 → 你可以每天 A/B 测试 50 个钩子 - 草稿上传可以绕过大部分针对直接发布 API 的机器人检测 瓶颈从来都不是创意。而是流水线。钩子 → 细分领域 → 图片方向 → 8 张幻灯片构图 → 标题 → 排期。手动做这些 = 每条帖子 20 分钟。如果是 30 个账号 = 一份你会讨厌的全职工作。 Hermes Agent 是正确的工具,因为它不是一个你需要 `npm install` 并连接起来的框架,它是一个自主的 CLI 代理,生活在任何你放置它的地方(我的 5 美元 Hetzner 服务器),拥有内置的技能、cron、MCP 和子代理委派功能。整个流水线只是代理加载的技能 + 按计划触发它们的 cron 作业。无需队列基础设施,无需管理工作池。 ## 第一步:安装 Hermes Agent 在 VPS 上单行安装: ``` curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash source ~/.bashrc ``` 选择一个提供商: ``` hermes model ``` 我通过 OAuth(Max 计划)运行 Anthropic,用于代理阶段(钩子研究、图片方向、标题),并使用便宜的 OpenRouter 作为高频轮询的备选。你也可以接入 Nous Portal、OpenAI Codex、DeepSeek、Z.AI、Kimi,`hermes model` 会引导你完成所有步骤。 验证其是否工作: ``` hermes --tui > Summarize what's in this directory. ``` 如果那个有响应,你就度过了最难的阶段。完整的快速入门指南位于 https://hermes-agent.nousresearch.com/docs/getting-started/quickstart。 然后将网关安装为 systemd 服务,这样当你未登录时,cron 作业实际上也能运行: ``` hermes gateway install ``` 这是一个守护进程,每 60 秒滴答一次调度器,并在新的代理会话中运行到期的作业。 ## 第二步:心智模型——流水线 = 技能 + cron,而不是 workers 大多数自动化教程会求助于队列和 workers。Hermes 反其道而行之。工作的单元是一个技能(`~/.hermes/skills/` 中的 markdown 文件),触发器是加载一个或多个技能并运行它们的 cron 作业。 以下是 TikTok 流水线的映射:  每个技能都是代理按需加载的 markdown 文件。Cron 作业通过 `context_from` 将它们链接起来。Hermes 调度器在每个新的隔离会话中运行每个作业,因此账号之间不会出现状态损坏。 ## 第三步:创建技能 技能位于 `~/.hermes/skills/<category>/<skill-name>/SKILL.md`。代理可以通过 `skill_manage` 自己创建它们,或者你可以手动编写。我混合使用——我起草结构,然后让 Hermes 在观察其运行后进行优化。 **Hook Researcher 技能** bash ``` mkdir -p ~/.hermes/skills/tiktok/hook-researcher ``` `~/.hermes/skills/tiktok/hook-researcher/SKILL.md`: ``` --- name: tiktok-hook-researcher description: 为特定细分领域生成 TikTok 幻灯片钩子,评估并返回前 3 个 version: 1.0.0 metadata: hermes: tags: [tiktok, content, hooks] category: tiktok --- # TikTok Hook Researcher ## 何时使用 当被要求为特定细分领域的 TikTok 幻灯片生成钩子时。 ## 流程 1. 从 `~/.hermes/data/tiktok/hook_performance.jsonl` 读取该细分领域最近 20 个获胜钩子。 2. 生成 10 个钩子候选。约束条件: - 60 个字符以内 - 好奇心缺口,而非标题党 - 混合 3 种原型:反向观点、盘点类、转变类 3. 基于“19 岁青年是否会为此停止滑动”对每个候选进行 1-10 分评分, 并根据获胜钩子进行校准。 4. 输出 JSON 到 stdout:`{ hooks: [{ text, archetype, score }, ...] }` 按分数降序排列。返回前 3 个。 ## 陷阱 - LLM 默认生成标题党。强烈偏向反对“你不会相信……”模式。 - 不要重复使用最近 20 个获胜者的确切措辞——算法会惩罚回收的钩子。 ## 验证 输出是有效的 JSON。顶级钩子评分 ≥ 7。所有钩子 ≤ 60 个字符。 ``` **Image Source Router 技能** 这决定了每个位置是使用 Pinterest 还是 AI 生成。 `~/.hermes/skills/tiktok/source-router/SKILL.md`: ``` --- name: tiktok-source-router description: 为 TikTok 轮播的每张幻灯片决定图片来源(pinterest 或 ai_gen) version: 1.0.0 metadata: hermes: tags: [tiktok, images, routing] category: tiktok --- # TikTok Image Source Router ## 何时使用 在选定钩子之后,收集图片之前。决定每张幻灯片是从 Pinterest 获取还是使用 AI 生成。 ## 流程 1. 从上下文中读取细分领域 + 钩子。 2. 应用路由规则: - 健身、时尚、食物、旅行、美学 → Pinterest(真实照片胜出) - 动漫/RPG、虚构角色、抽象概念 → AI 生成 - 混合细分领域:封面幻灯片 AI 生成,正文幻灯片 Pinterest 3. 输出包含 8 个路由决策的 JSON 数组: `[{ slot, source, query_or_brief }, ...]` ## 陷阱 - 不要 AI 生成健身转变照。恐怖谷效应。使用 Pinterest。 - 不要 Pinterest 搜索“anime warrior rank up”。不存在。使用 AI 生成。 ``` **Pinterest Scraper 技能** 这个需要一个辅助脚本,因为代理不应该在上下文中处理 HTTP 轮换逻辑。 ``` mkdir -p ~/.hermes/skills/tiktok/pinterest-scraper/scripts ``` `~/.hermes/skills/tiktok/pinterest-scraper/SKILL.md`: ``` --- name: tiktok-pinterest-scraper description: 使用代理轮换和 phash 去重从 Pinterest 获取适用于 TikTok 的图片 version: 1.0.0 required_environment_variables: - name: PROXY_POOL_URL prompt: 住宅代理池端点 help: Bright Data、Smartproxy 或任何轮换住宅代理 metadata: hermes: tags: [tiktok, pinterest, scraping] category: tiktok --- # TikTok Pinterest Scraper ## 何时使用 源路由器将位置路由到 `pinterest`。需要为该账号获取新鲜、独特、尺寸正确的图片。 ## 流程 1. 使用搜索查询和 account_id 调用 `scripts/scrape.py`: `python scripts/scrape.py --query "{q}" --account {id} --count {n}` 2. 脚本处理: - 每次请求的代理轮换 - Cookie 池轮换 - 针对该账号过去 30 天的感知哈希去重 - 宽高比过滤器(最小 1080×1350) - S3 上传到 MinIO 3. 解析脚本的 stdout(S3 URL 的 JSON 列表)。 4. 如果返回数量 < 请求数量,使用重新措辞的查询重试(最多重试 2 次)。 ## 陷阱 - Pinterest 对每个 IP 限流。务必通过代理访问。 - 汉明距离 < 5 = 重复。不要放宽这个阈值。 - 任何小于 1080×1350 的内容在 TikTok 上看起来会很模糊。在搜索时过滤,而不是在下载后。 ``` `~/.hermes/skills/tiktok/pinterest-scraper/scripts/scrape.py` 是一个普通的 Python 脚本。代理通过 `execute_code` 或终端调用它并解析 stdout。上面声明的 `PROXY_POOL_URL` 会自动传递到 `execute_code` 沙箱中——这是一个 Hermes 功能,为我节省了大量环境配置工作。 **Slide Compositor no-agent 模式** 这个阶段是完全确定性的。不需要 LLM。Hermes 正为此提供了 `no_agent` 模式: bash ``` mkdir -p ~/.hermes/scripts ``` `~/.hermes/scripts/compose-slides.py`: ``` #!/usr/bin/env python3 """将 8 张原始图片 + 钩子合成为适用于 TikTok 的 1080x1920 幻灯片。 从 stdin 读取作业规范(JSON),将合成后的文件路径写入 stdout。 """ import json, sys from PIL import Image, ImageDraw, ImageFont # ...完整的 Sharp/PIL 合成逻辑... if __name__ == "__main__": spec = json.load(sys.stdin) output_paths = compose_all(spec) print(json.dumps({"slides": output_paths})) ``` 然后将其安排为 `no_agent` cron 作业——`wakeAgent` 永不触发,此步骤无 LLM 成本。 **Publisher 技能** `~/.hermes/skills/tiktok/publisher/SKILL.md`: ``` --- name: tiktok-publisher description: 通过 Postiz Cloud 将合成后的幻灯片作为草稿上传到 TikTok version: 1.0.0 required_environment_variables: - name: POSTIZ_API_KEY prompt: Postiz Cloud API 密钥 help: 从 postiz.com → Settings → API Keys 获取 metadata: hermes: tags: [tiktok, publishing] category: tiktok --- # TikTok Publisher ## 何时使用 在幻灯片 + 标题准备好之后。通过 Postiz 将其作为草稿上传到 TikTok。 ## 流程 1. 从上下文中读取幻灯片路径 + 标题 + account_id。 2. 始终检查账号年龄。如果 `< 30 天` 或 `total_posts < 20` → 强制草稿模式。 说实话,即使是老账号我也默认为草稿。直接发布没有任何好处。 3. 调用 `postiz-cli`: postiz-cli schedule --account {account_id} --platform tiktok --mode draft --media {slide_paths} --caption {caption} --time {scheduled_iso} 4. 从 stdout 捕获 postId。写入 `~/.hermes/data/tiktok/posts.jsonl`。 ## 陷阱 - 切勿在新账号上直接发布。一周内会被无声地影子禁令。 - Postiz CLI 需要环境中有 `POSTIZ_API_KEY`。Hermes 会自动传递它。 - 在 ±90 分钟的抖动范围内随机化计划时间,以消除机器人的间隔信号。 ``` ## 第四步:影子禁令杀手——始终使用草稿模式 这是大多数教程跳过的部分,也是新账号死亡的最大原因。 如果一个账号少于 30 天,务必**始终**作为草稿发布。没有例外。 TikTok 上的新账号处于观察期。算法会评估: - 通过内容发布 API 发布 → 机器人风险分数 +1 - 发布 IP 与账号的常用设备 IP 不匹配 → +1 - 可疑的规律间隔 → +1 - 与设备端捕获相比元数据被剥离或不一致 → +1 在一个新账号上堆叠 2-3 个这样的因素,你就会被无声地影子禁令。没有通知。视频永远卡在 50-200 的浏览量。你会以为你的内容很烂。其实不然——账号已经死了。 上面的 Publisher 技能为任何 30 天以下 / 20 帖以下的账号硬编码了草稿模式。Postiz 将其作为草稿上传,然后我的 iPhone 设备群(通过 WebDriverAgent 自动化)拿起草稿,并使用真实 IP 的真实设备点击发布。TikTok 看到的是来自已知设备的人工发起发布——干干净净。 **预热协议:** - 第 1-7 天:账号除了滑动、点赞、关注外什么都不做 - 第 8-14 天:每天发布 1 个草稿,在草稿创建后 2-4 小时从设备发布 - 第 15-30 天:增加到每天 2-3 个草稿,在 ±90 分钟内随机化发布时间 - 第 30 天+:全流水线节奏,仍使用草稿模式 Hermes cron + Postiz Cloud + iPhone 设备群发布 = 对 TikTok 分类器来说与有机行为无法区分。 ## 第五步:使用 cron + context_from 将所有内容链接在一起 这就是 Hermes cron 系统的神奇之处。流水线的每个阶段都是一个单独的 cron 作业。作业 N 通过 `context_from` 读取作业 N-1 的最近输出。链条端到端运行,无需我编排任何东西。 我在与 Hermes 的单一聊天会话中创建链条: text hermes --tui > 我需要为账号 acc_42 设置 TikTok 流水线,细分领域=fitness。 > 将流水线安排在每天 09:00 UTC 运行。 > 链条:hook 研究 → 源路由 → pinterest 抓取 → 合成 → 标题 → 发布。 > 每个阶段应使用匹配的技能并接收前一阶段的上下文。 Hermes 在内部使用 `cronjob` 工具并创建链条。以下是等效的直接调用(Hermes 会为你做这件事): ``` # 阶段 1:Hook 研究,每天 09:00 cronjob( action="create", name="tt-hook-acc42", schedule="0 9 * * *", skills=["tiktok-hook-researcher"], prompt="为细分领域=fitness 生成账号 acc_42 的钩子。将前 3 个输出为 JSON。", workdir="/home/alex/tiktok-pipeline", ) # 阶段 2:源路由,5 分钟后 cronjob( action="create", name="tt-route-acc42", schedule="5 9 * * *", skills=["tiktok-source-router"], context_from="tt-hook-acc42", prompt="为顶级钩子路由图片来源。输出 8 个路由决策。", ) # 阶段 3:Pinterest 抓取(针对 pinterest 路由的位置) cronjob( action="create", name="tt-pinterest-acc42", schedule="10 9 * * *", skills=["tiktok-pinterest-scraper"], context_from="tt-route-acc42", prompt="对于每个 pinterest 路由的位置,抓取独特的去重图片。输出 S3 URL。", ) # 阶段 4:合成器 —— no_agent 模式,纯脚本 cronjob( action="create", name="tt-compose-acc42", schedule="20 9 * * *", no_agent=True, script="compose-slides.py", context_from=["tt-pinterest-acc42", "tt-hook-acc42"], name="tt-compose-acc42", ) # 阶段 5:标题 cronjob( action="create", name="tt-caption-acc42", schedule="25 9 * * *", skills=["tiktok-caption-writer"], context_from=["tt-hook-acc42", "tt-compose-acc42"], prompt="为幻灯片写标题 + 4 个标签。", ) # 阶段 6:发布 cronjob( action="create", name="tt-publish-acc42", schedule="30 9 * * *", skills=["tiktok-publisher"], context_from=["tt-compose-acc42", "tt-caption-acc42"], prompt="通过 Postiz 将幻灯片 + 标题作为草稿上传到 TikTok 账号 acc_42。", deliver="telegram", # 完成后 ping 我 ) ``` 几个关键点: `context_from` 链接输出。Hermes 读取每个上游作业最近的保存输出(来自 `~/.hermes/cron/output/{job_id}/`),并将其作为上下文前置到下一个作业的提示中。没有数据库,没有队列,没有胶水代码。 `workdir` 在项目目录内运行作业。这意味着 `AGENTS.md`、`.cursorrules` 和任何本地上下文文件都会自动加载。当你在项目仓库中保留账号配置和提示覆盖时很有用。 合成器上的 `no_agent=True`。纯确定性的 Sharp/PIL 工作。没有理由为 LLM 轮询付费。脚本的 stdout 成为作业的输出并正常链接到下一阶段。 `deliver="telegram"` 在发布完成时 ping 我。我在高价值账号的最终阶段使用“all”,这样我就能在每个连接的频道上收到成功 ping。 ## 第六步:分阶段工具集控制(节省成本) 默认情况下,cron 作业继承你通过 `hermes tools` 为 cron 平台配置的工具集。但是为了对高频阶段的成本控制,请锁定每个作业的工具集: ``` cronjob( action="create", name="tt-hook-acc42", schedule="0 9 * * *", skills=["tiktok-hook-researcher"], enabled_toolsets=["file"], # hook 生成只需要文件读取以获取过去的性能 prompt="...", ) ``` Hook 研究不需要浏览器、终端或委派工具集——这些会在每次 LLM 调用时膨胀工具模式提示。将 hook 作业锁定为 `["file"]` 将我的 hook 生成 token 减少了约 40%。在 30 个账号 × 1 帖/天 × 30 天 = 真金白银。 Pinterest 抓取作业需要 `["terminal", "file"]` 来调用脚本。`no_agent` 模式下的合成器不加载任何工具集(没有代理运行)。发布者需要 `["terminal", "file"]` 用于 `postiz-cli`。 ## 第七步:没有任何变化时跳过代理 Hermes 有一个预检查脚本模式,非常适合每日 hook 作业。如果细分领域性能数据自昨天以来没有变化,就没有理由生成新的钩子——昨天的前 3 个仍然是前 3 个。 `~/.hermes/scripts/hook-precheck.py`: ``` #!/usr/bin/env python3 import json, hashlib, pathlib, sys perf_file = pathlib.Path.home() / ".hermes/data/tiktok/hook_performance.jsonl" state_file = pathlib.Path.home() / ".hermes/state/hook-perf-hash.txt" state_file.parent.mkdir(parents=True, exist_ok=True) current_hash = hashlib.sha256(perf_file.read_bytes()).h
如 如何使用 Claude Opus 4.7 自动化制作 TikTok 幻灯片内容(分步指南) 本文介绍了一套零成本的自动化工作流,利用 Claude Opus 4.7 分析 TikTok 爆款内容并提取 Hook,结合 Pinterest 获取素材,通过 Node.js Canvas 脚本批量生成幻灯片,最后使用 Postiz Agent 进行自动化分发,旨在解决手动内容制作耗时且低效的问题。 技术 › LLM ✍ Alex Nguyen🕐 2026-04-21 ClaudeTikTok自动化AI工作流内容创作Node.jsAgent教程
开 开源CC+Obsidian打造LLM Wiki内容创作3.0系统 文章介绍了一套基于LLM Wiki方法论的内容生产3.0系统,解决了2.0版本中知识库信息垃圾化的问题。通过“三步编译法”(浓缩、质疑、对标)将原始文档编译为持久化Wiki结构,实现知识资产的自动积累与进化,大幅降低维护成本并提升了内容创作与知识管理的效率。 技术 › LLM ✍ 饼干哥哥AGI🕐 2026-07-07 ClaudeObsidian知识管理内容创作Agent提示词自动化开源RAG方法论
2 2026年AI工程师的核心技能:Loop(循环)工程 文章探讨了2026年AI工程范式的转变:从单纯的“提示词工程”转向设计自动化的“循环系统”。OpenAI与Anthropic的专家指出,工程师的角色已变为编写控制Agent的循环。文章深入解析了循环工程的定义、单体Agent与编队模式的区别,以及开放式与封闭式循环的差异。此外,文章重点讨论了循环模式带来的高昂Token成本问题,指出DeepSeek等低成本、大上下文的中国大模型是解决这一经济瓶颈的关键。 技术 › Agent ✍ Rahul🕐 2026-06-10 AI工程AgentDeepSeekLoopOpenAIClaude成本优化工作流自动化编程范式
利 利用 Claude Opus 4.7 自动化 TikTok UGC 内容创作实战指南 文章探讨了电商品牌如何放弃低效的传统网红营销,转而利用 Claude Opus 4.7 构建 AI 自动化内容工厂。作者详细介绍了“权威人物法”和“播客格式”等策略,旨在通过 AI 批量生产高信任度的 UGC 视频,配合精准的脚本和转化链路,实现 TikTok Shop 的规模化增长。 技术 › AI ✍ Noah Frydberg🕐 2026-05-02 TikTokClaudeUGC自动化电商营销内容创作AI Agent短视频转化率营销策略
如 如何使用 Claude x MakeUGC 自动化抖音内容创作(分步指南) 本文介绍了一套利用 Claude Opus 4.7 和 MakeUGC 等工具实现 TikTok/抖音内容自动化生成的完整工作流。从爆款选题分析、脚本生成、素材获取到幻灯片制作与定时发布,作者详细拆解了如何以接近零的成本构建高转化率的内容生产系统,并强调了“草拟发布”策略对账号安全的重要性。 技术 › 工具与效率 ✍ loveabit🕐 2026-05-02 ClaudeAIGC自动化抖音内容创作MakeUGC工作流TikTokOpus效率工具
如 如何用 Claude Opus 4.7 自动化制作 TikTok 幻灯片 本文介绍了一种利用 Claude Opus 4.7 和开源工具构建的系统,用于自动化 TikTok 幻灯片内容的创作。该系统通过逆向工程爆款内容,使用脚本批量生成幻灯片,实现了低成本、高效率的规模化内容产出,避免了传统广告的高昂费用。 技术 › Agent ✍ Noah Frydberg🕐 2026-04-28 TikTokClaude自动化内容创作电商Node.jsCanvas实战教程
爆 爆文选题雷达 Agent发布!你的私人内容策略军师 文章作者冰河发布了一款名为“爆文选题雷达”的 Agent。该工具旨在解决内容创作者选题难的问题,通过 4 个协同角色和 16 个智能指令,帮助用户扫描热点、分析爆文并生成个性化选题。核心功能包括五维风险评估、Token 极致经济、可视化控制台及多平台形态建议。Agent 配备 ~init、~go 等指令,能基于账号画像自动推荐 S+ 级选题并提供详细创作方案,让创作者将精力集中在写作而非选题上。 技术 › Agent ✍ 冰河🕐 2026-04-03 AgentClaude选题内容创作自动化爆文技能效率工具雷达交互设计
深 深入解读 Harness Engineering:AI 工程的第三次范式转移 Anthropic 和 OpenAI 几乎同时发布关于 Harness Engineering 的文章,引发 AI 社区热议。本文梳理了从 Prompt Engineering 到 Context Engineering 再到 Harness Engineering 的演变,解析了 Anthropic 的“生成器+评估器”循环架构与 OpenAI 的“百万行代码零手写”分层实践,并结合多位博主的观点,探讨了 Agent 时代工程师角色的转变与未来工程实践的方向。 技术 › Harness Engineering ✍ Jason Zhu🕐 2026-03-31 AI工程AgentAnthropicOpenAI范式转移ClaudeCodex架构设计自动化开发者工具
扫 扫了1000+个仓库,测了200+个技能,终于找到这90个真正能用的AI神器! 作者经过数周实测,从1000多个GitHub仓库和200多个Claude技能中筛选出90个真正实用的AI工具。文章详细介绍了22个Claude Skills(涵盖办公、设计、开发、SEO等领域)、3个改变工作流的MCP服务器(Tavily、Context7、Task Master),以及25个核心开源Agent项目(如OpenClaw、AutoGPT、Dify)。此外还列出了40个值得关注的新鲜仓库,涉及Agent编排、基础设施、记忆系统及开发工具。 技术 › 工具与效率 ✍ 纯棉短裤🕐 2026-03-22 ClaudeAgentMCPGitHubOpenAI技能推荐开源开发工具自动化AI评测
让 让 Claude 半夜自己干活,只有两条路 文章探讨了让 Claude 无人值守工作的两种安全路径:一是使用隔离的闲置机器给予完全权限;二是在现有机器上通过严格参数限制权限。作者通过分析两种方案的适用场景和风险控制,提出了“爆炸半径”公式,并给出了具体的实施建议和避坑指南。 技术 › Agent ✍ 老金🕐 2026-07-30 ClaudeAgent自动化安全DevOpsClaude Code无人值守权限管理
B BestBlogs 早报 · 07-29|MCP 无状态化与多智能体编排成本 本期早报探讨 MCP 协议的无状态核心变化与 Claude 的生产化接入,分析 Codex 与 ChatGPT Work 共用的执行框架差异,并审视多智能体并行中上下文搬运的隐性成本“编排器的税”。同时涵盖图工程、vLLM 商业化及 Uber 零增长架构等速览内容。 技术 › LLM ✍ ginobefun🕐 2026-07-29 MCPAgentOpenAI架构多智能体上下文Claude早报DevOps工程化
如 如何(以及为何)构建 Agent First 应用 文章介绍了如何使用 Agent-Native 框架构建 Agent First 应用。通过统一的前端动作与 Agent 工具,实现 UI 与 Agent 的双向同步。应用支持通过聊天交互、集成外部 Agent、A2A 通信及自动化任务,且完全开源。 技术 › Agent ✍ Steve (Builder.io)🕐 2026-07-29 AgentAgent-NativeClaude前端A2A开源自动化框架UI