AI-agent-first CLI 做 BOSS 直聘:把求职流程拆成可编排的工具链
简介这是一套面向求职者、招聘方与 AI 工具开发者的 BOSS 直聘命令行工具包以 AI-agent-first 为设计思路将职位搜索、福利筛选、招聘者工作流、MCP 工具与 AI 简历优化整合进 CLI 交互中适合希望用脚本化方式提升招聘与求职效率的中高级用户。压缩包共 238 个文件约 1.75MB以 170 个 Python 脚本为核心实现辅以 35 个 Markdown 说明文档、9 个 yml 与 3 个 yaml 配置、若干 html/js/json 前端与数据文件并包含 boss-agent-cli 可执行入口、演示动图与样式资源结构清晰便于二次开发。目前已有 197 人学习下载。读者可据此理解 AI 驱动招聘流程的完整实现路径包括个性化职位推荐、福利信息识别比对、简历自动整理与候选人状态跟踪等模块也能借鉴其 CLI 与 MCP 工具的组织方式快速搭建或扩展自己的招聘自动化脚本。1. AI-agent-first CLI 做 BOSS 直聘把求职流程拆成可编排的工具链BOSS 直聘上找工作的痛点做过的人都懂搜出来的职位一半是猎头挂的、一半是已读不回福利筛选只能靠肉眼一条条翻投完简历还要手动记录进度。更麻烦的是这些操作全是重复劳动每天刷新、筛选、打招呼、跟进时间全耗在机械动作上。AI-agent-first CLI 的思路就是把这些动作从浏览器里抽出来变成命令行可调用的工具再通过 MCP 协议暴露给 AI agent让 agent 帮你搜职位、筛福利、跑招聘者工作流、优化简历。这套方案适合两类人一是正在密集找工作、想用自动化提效的开发者二是想拿真实场景练手 MCP 工具开发的工程师。核心不是绕过平台而是把你自己账号下的合法操作编排成可复用的 CLI 命令和 MCP 工具减少重复点击。2. 为什么选 CLI MCP 而不是写个爬虫脚本2.1 爬虫脚本的三个死穴很多人第一反应是写个 Python 爬虫requests 加 BeautifulSoup 直接抓。我早期也这么干过结果翻车三次。第一次是登录态问题BOSS 直聘的会话依赖浏览器指纹和动态 token纯 requests 模拟登录很快触发风控账号被限制操作。第二次是数据错位页面是异步渲染的职位列表和详情页的 DOM 结构随版本变选择器写死之后隔几天就失效。第三次是没法交互爬虫只能读不能帮你打招呼、不能投递、不能跟招聘者对话而求职的核心动作恰恰是这些写操作。CLI 方案不一样。它不直接发 HTTP 请求而是通过 Playwright 驱动真实浏览器复用你已登录的会话操作路径和人工点击一致。这样既避开了登录风控又能执行写操作。CLI 的另一个好处是可组合每个命令只做一件事搜职位、筛福利、发消息、导出记录用管道和参数串起来agent 也容易调用。2.2 MCP 把 CLI 变成 agent 的手和眼MCPModel Context Protocol是让 AI agent 调用外部工具的协议。你把 CLI 封装成 MCP serveragent 就能在对话里直接触发职位搜索、福利筛选、简历优化这些动作。比如你说“帮我找北京朝阳区、20K 以上、有六险一金的 Golang 岗位”agent 解析意图后调用对应的 MCP toolCLI 在后台跑 Playwright 完成搜索和筛选把结构化结果返回给 agent 展示。这比让 agent 直接操作浏览器稳定得多因为工具的输入输出是确定的agent 不需要理解页面结构。选型上Playwright 比 Puppeteer 更适合这个场景原因是它对多浏览器和自动等待的支持更好页面元素没加载完时不会直接报错减少了大量 sleep 硬等待。Node.js 做 CLI 生态成熟commander 或 yargs 搭命令框架很快MCP SDK 也有现成的 TypeScript 实现。2.3 最小可跑通的目录结构先搭一个能跑的最小骨架不追求功能完整重点是验证 Playwright 能复用登录态、CLI 能解析参数、MCP server 能注册工具。mkdir boss-agent-cli cd boss-agent-cli npm init -y npm install playwright commander modelcontextprotocol/sdk npx playwright install chromium目录按职责分boss-agent-cli/ src/ cli.ts # 命令入口解析参数 browser.ts # Playwright 启动与登录态复用 tools/ search.ts # 职位搜索 filter.ts # 福利筛选 recruiter.ts # 招聘者工作流 resume.ts # 简历优化 mcp-server.ts # MCP 工具注册 user-data/ # 持久化浏览器会话 package.jsonuser-data目录是关键Playwright 用launchPersistentContext把登录后的 cookie 和 localStorage 存下来下次启动直接复用不用反复扫码登录。// src/browser.ts import { chromium, BrowserContext } from playwright; let context: BrowserContext | null null; export async function getContext(): PromiseBrowserContext { if (context) return context; // 持久化上下文登录一次后续复用 context await chromium.launchPersistentContext(./user-data, { headless: false, // 首次登录建议有头方便扫码 viewport: { width: 1280, height: 800 }, args: [--disable-blink-featuresAutomationControlled], }); return context; } export async function closeContext() { if (context) { await context.close(); context null; } }launchPersistentContext的userDataDir指向./user-data所有会话数据落盘。headless: false在首次登录时必须开因为要人工扫码登录完成后可以改成true跑后台任务。--disable-blink-featuresAutomationControlled是减少自动化特征暴露的常见做法但不要指望它万能核心还是复用真实登录态而不是模拟登录。3. 职位搜索与福利筛选把页面操作变成结构化参数3.1 搜索命令的参数设计CLI 的搜索命令要覆盖 BOSS 直聘网页端的主要筛选维度关键词、城市、薪资范围、经验要求、学历要求。参数设计成可选不传就用默认值。// src/tools/search.ts import { getContext } from ../browser; export interface SearchParams { keyword: string; city?: string; // 城市代码如 101010100 北京 salaryMin?: number; // 单位 K salaryMax?: number; experience?: string; // 如 3-5年 education?: string; // 如 本科 } export async function searchJobs(params: SearchParams) { const ctx await getContext(); const page await ctx.newPage(); const base https://www.zhipin.com/web/geek/job; const query new URLSearchParams({ query: params.keyword, city: params.city ?? 101010100, }); await page.goto(${base}?${query.toString()}, { waitUntil: domcontentloaded }); // 等待职位卡片渲染 await page.waitForSelector(.job-card-wrapper, { timeout: 15000 }); const jobs await page.$$eval(.job-card-wrapper, (cards) cards.map((card) ({ title: card.querySelector(.job-name)?.textContent?.trim() ?? , company: card.querySelector(.company-name)?.textContent?.trim() ?? , salary: card.querySelector(.salary)?.textContent?.trim() ?? , tags: Array.from(card.querySelectorAll(.tag-list li)).map((li) li.textContent?.trim() ), link: (card.querySelector(a) as HTMLAnchorElement)?.href ?? , })) ); await page.close(); return jobs; }waitForSelector等.job-card-wrapper出现再抓避免拿到空列表。$$eval在浏览器上下文里批量提取比逐个$eval快很多。返回的jobs是纯 JSON可以直接打印、存文件或传给 agent。薪资和经验的筛选网页端是通过 URL 参数或点击筛选器实现的。更稳的做法是抓完列表后在本地过滤因为页面筛选器偶尔会因版本更新失效本地过滤逻辑你自己可控。export function filterBySalary(jobs: any[], min: number, max: number) { return jobs.filter((job) { const match job.salary.match(/(\d)-(\d)K/); if (!match) return false; const low parseInt(match[1], 10); const high parseInt(match[2], 10); return low min high max; }); }3.2 福利筛选为什么不能只看标签福利筛选是这套工具里最容易踩坑的部分。BOSS 直聘的福利标签分两类一类是公司主页明确标注的比如“六险一金”“弹性工作”另一类是职位描述正文里提到的比如“免费三餐”“年度旅游”。只抓标签会漏掉大量信息因为很多 HR 把福利写在 JD 正文里。我的做法是两步走先抓标签做粗筛再进详情页抓 JD 正文做关键词匹配。// src/tools/filter.ts const WELFARE_KEYWORDS [ 六险一金, 五险一金, 弹性工作, 免费三餐, 年度旅游, 股票期权, 补充医疗, 带薪年假, ]; export async function extractWelfare(jobUrl: string) { const ctx await getContext(); const page await ctx.newPage(); await page.goto(jobUrl, { waitUntil: domcontentloaded }); await page.waitForSelector(.job-detail-section, { timeout: 15000 }); const detail await page.evaluate(() { const tags Array.from(document.querySelectorAll(.job-tags span)).map( (s) s.textContent?.trim() ?? ); const desc document.querySelector(.job-detail-section)?.textContent ?? ; return { tags, desc }; }); await page.close(); const hitInTags WELFARE_KEYWORDS.filter((k) detail.tags.includes(k)); const hitInDesc WELFARE_KEYWORDS.filter((k) detail.desc.includes(k)); return { url: jobUrl, tags: hitInTags, desc: hitInDesc, // 标签和正文都命中才算强匹配 strong: hitInTags.filter((k) hitInDesc.includes(k)), }; }strong字段是标签和正文都命中的福利可信度最高。只命中正文的可能是 HR 话术只命中标签的可能是公司统一配置但该岗位不享受。这个区分能帮你少踩“面试才发现福利不对”的坑。3.3 批量搜索的并发控制一次搜多个关键词时不要开太多 page 并发浏览器上下文扛不住而且容易触发风控。我一般限制并发 2 到 3 个每个任务之间加 1 到 2 秒随机间隔。export async function batchSearch(keywords: string[], concurrency 2) { const results: Recordstring, any[] {}; const queue [...keywords]; const workers Array.from({ length: concurrency }, async () { while (queue.length) { const kw queue.shift()!; results[kw] await searchJobs({ keyword: kw }); // 随机间隔降低被识别为自动化的概率 await new Promise((r) setTimeout(r, 1000 Math.random() * 1000)); } }); await Promise.all(workers); return results; }并发数concurrency建议不超过 3间隔用1000 Math.random() * 1000毫秒。这个参数没有绝对最优值账号权重高、操作频率低的时候可以放宽新账号或频繁操作时收紧。4. 招聘者工作流与 MCP 工具封装4.1 招聘者工作流要解决什么求职不是单向投递还包括跟招聘者互动打招呼、发简历、约面试、跟进进度。这些动作在网页端是分散的CLI 可以把它们串成一条工作流。比如“对筛选出的强匹配职位自动发打招呼语并附上简历链接记录发送时间和对方回复状态”。// src/tools/recruiter.ts export async function greetRecruiter(jobUrl: string, message: string) { const ctx await getContext(); const page await ctx.newPage(); await page.goto(jobUrl, { waitUntil: domcontentloaded }); // 点击“立即沟通”按钮 const chatBtn await page.$(.btn-startchat); if (!chatBtn) { await page.close(); return { ok: false, reason: no-chat-button }; } await chatBtn.click(); await page.waitForSelector(.chat-input, { timeout: 10000 }); await page.fill(.chat-input, message); await page.keyboard.press(Enter); await page.waitForTimeout(1500); await page.close(); return { ok: true, jobUrl, sentAt: Date.now() }; }message参数建议做成模板包含岗位关键词和你的核心匹配点不要群发同一句话容易被判定为骚扰。发送后waitForTimeout等一下再关页面确保消息真正发出。4.2 MCP server 注册工具MCP server 的作用是把上面的 CLI 函数暴露成 agent 可调用的 tool。用官方 SDK 注册每个 tool 有 name、description 和 inputSchema。// src/mcp-server.ts import { Server } from modelcontextprotocol/sdk/server/index.js; import { StdioServerTransport } from modelcontextprotocol/sdk/server/stdio.js; import { searchJobs } from ./tools/search; import { extractWelfare } from ./tools/filter; const server new Server( { name: boss-agent, version: 0.1.0 }, { capabilities: { tools: {} } } ); server.setRequestHandler(tools/list, async () ({ tools: [ { name: search_jobs, description: 按关键词和城市搜索 BOSS 直聘职位返回结构化列表, inputSchema: { type: object, properties: { keyword: { type: string, description: 搜索关键词如 Golang }, city: { type: string, description: 城市代码默认北京 }, }, required: [keyword], }, }, { name: check_welfare, description: 检查指定职位的福利标签和 JD 正文福利关键词, inputSchema: { type: object, properties: { jobUrl: { type: string, description: 职位详情页 URL }, }, required: [jobUrl], }, }, ], })); server.setRequestHandler(tools/call, async (req) { const { name, arguments: args } req.params; if (name search_jobs) { const jobs await searchJobs(args as any); return { content: [{ type: text, text: JSON.stringify(jobs, null, 2) }] }; } if (name check_welfare) { const result await extractWelfare((args as any).jobUrl); return { content: [{ type: text, text: JSON.stringify(result, null, 2) }] }; } throw new Error(unknown tool: ${name}); }); const transport new StdioServerTransport(); await server.connect(transport);tools/list返回工具清单agent 根据 description 决定调哪个。tools/call是实际执行入口参数从args取。返回内容统一用 JSON 字符串agent 好解析。stdio 传输适合本地 CLI 场景agent 进程直接拉起 server 子进程通信。4.3 简历优化工具的接入点AI 简历优化不是让 agent 凭空写而是基于目标职位的 JD 关键词做匹配度分析和措辞调整。CLI 提供一个optimize_resume工具输入是简历文本和目标 JD输出是匹配度分数和改写建议。// src/tools/resume.ts export function analyzeMatch(resume: string, jd: string) { const jdKeywords extractKeywords(jd); const resumeLower resume.toLowerCase(); const matched jdKeywords.filter((k) resumeLower.includes(k.toLowerCase())); const missing jdKeywords.filter((k) !resumeLower.includes(k.toLowerCase())); return { score: Math.round((matched.length / jdKeywords.length) * 100), matched, missing, suggestion: missing.length ? 建议在简历中补充这些关键词的自然表述${missing.join(、)} : 关键词覆盖良好重点检查项目量化数据, }; } function extractKeywords(text: string): string[] { // 简化版按常见技术栈和福利词切分实际可接分词库 const dict [Golang, Kubernetes, MySQL, Redis, 微服务, 高并发]; return dict.filter((k) text.includes(k)); }score是关键词覆盖率不是绝对标准但能快速定位简历和 JD 的差距。missing列表直接给 agent 做改写参考。注意不要为了提分硬塞关键词简历要经得起面试追问。5. 避坑与排查这套工具最容易翻车的五个地方5.1 登录态失效导致所有命令报错现象CLI 跑起来后页面跳转到登录页waitForSelector超时。原因user-data目录里的会话过期或者 Playwright 启动参数变了导致 cookie 读不到。解决先手动跑一次headless: false的登录流程扫码后确认user-data目录有更新检查launchPersistentContext的路径是否和上次一致路径变了等于新会话。5.2 页面选择器随版本更新失效现象昨天还能抓到职位列表今天返回空数组。原因BOSS 直聘前端改版.job-card-wrapper之类的类名变了。解决把选择器集中到一个配置文件里不要散落在各工具函数中加一个debug模式选择器抓不到时截图并 dump 页面 HTML方便快速定位新类名。5.3 操作频率过高触发风控现象打招呼发不出去或者搜索被重定向到验证页。原因短时间内大量自动化操作行为特征和人工差异大。解决并发控制在 2 到 3每个操作之间加 1 到 2 秒随机间隔不要 24 小时不间断跑模拟正常作息打招呼语不要完全模板化留一些变量。5.4 MCP 工具返回内容过大撑爆上下文现象agent 调用search_jobs后对话卡住或报 token 超限。原因一次返回几十个职位的完整 JSON字段太多。解决MCP tool 返回前做裁剪只保留 title、company、salary、link 四个字段或者加分页参数每次最多返回 10 条让 agent 按需翻页。5.5 简历优化建议过于泛化现象agent 给出的改写建议是“建议突出项目经验”这种废话。原因extractKeywords词典太窄或者 JD 本身信息量少。解决把 JD 全文和简历全文一起传给 agent让 agent 做语义级匹配而不是关键词匹配CLI 只负责提取和结构化判断交给模型。6. 进阶技巧用 MCP 工具链做每日职位巡检跑通基础功能后我习惯加一个每日巡检的编排定时触发搜索、筛选、去重、生成报告把新出现的强匹配职位推给自己。核心是去重和增量不然每天看到的都是同一批。// src/tools/patrol.ts import { readFileSync, writeFileSync, existsSync } from fs; const SEEN_FILE ./seen-jobs.json; export function loadSeen(): Setstring { if (!existsSync(SEEN_FILE)) return new Set(); return new Set(JSON.parse(readFileSync(SEEN_FILE, utf-8))); } export function saveSeen(seen: Setstring) { writeFileSync(SEEN_FILE, JSON.stringify([...seen], null, 2)); } export async function dailyPatrol(keywords: string[]) { const seen loadSeen(); const fresh: any[] []; for (const kw of keywords) { const jobs await searchJobs({ keyword: kw }); for (const job of jobs) { // 用 link 作为唯一键去重 if (!seen.has(job.link)) { seen.add(job.link); fresh.push(job); } } } saveSeen(seen); return fresh; }seen-jobs.json存已处理过的职位链接dailyPatrol只返回新增的。这个文件会越来越大定期清理半年前的记录即可。巡检结果可以再接一个 MCP tool 推送给 agent让 agent 帮你写摘要。参数上巡检频率建议每天 1 到 2 次关键词控制在 5 个以内太多会拉长执行时间也增加风控风险。去重键用link而不是title company因为同一岗位可能被多个 HR 重复发布链接才是唯一标识。最后说个我自己的习惯每次改完选择器或参数先拿一个关键词跑单次搜索确认返回条数和字段正常再跑批量。这套工具的价值不在于全自动而在于把重复劳动压缩到几分钟剩下的判断和沟通还是得自己来。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

基于S7-200 PLC的糖果包装线改造:从硬件选型到调试实战

基于S7-200 PLC的糖果包装线改造:从硬件选型到调试实战

1. 糖纸机为什么需要PLC:项目来源与控制需求拆解 先说这个项目的来龙去脉。去年接了一个糖果厂的包装线改造,线体编号刚好排到 44,所以内部就叫 No.44。糖间里原来的包装机是纯机械凸轮联动结构,一台机器对应一种糖型,…

2026/10/3 18:33:04 阅读更多 →
DeepAgents+MCP+A2A+Skills:多智能体集群编排与互通实战

DeepAgents+MCP+A2A+Skills:多智能体集群编排与互通实战

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近半年一直在跟 Agent 打交道,大概率会有一种强烈的割裂感:单个 Agent 跑 Demo 的时候惊艳得不行,一旦想让它干点真活——比如同时处理代…

2026/10/3 18:33:03 阅读更多 →
Paperclip范式:本地化AI智能体开发的轻量级架构实践

Paperclip范式:本地化AI智能体开发的轻量级架构实践

1. “Paperclip”不是回形针:它是一套面向AI智能体开发的轻量级框架设计范式 你搜“paperclip”,第一反应可能是办公桌抽屉里那枚银色小金属片——但最近在开发者圈子里,这个词正悄悄变成一个技术代号。它不指代某个具体开源项目仓库&#xf…

2026/10/3 18:33:03 阅读更多 →

最新新闻

大模型在写代码,DeepSeek 把“国产算力软件栈”从能跑到吃满

大模型在写代码,DeepSeek 把“国产算力软件栈”从能跑到吃满

2026 年 10 月,AI 圈最热闹的新闻不是“又发了一个新模型”,而是模型层已经卷到头,战争打到了算子、编译器和芯片驱动那一层。DeepSeek 把一整套原本跑在英伟达上的底层组件,搬到了华为昇腾:TileLang、DeepGEMM、DeepE…

2026/10/3 19:17:01 阅读更多 →
M 系列 Mac 跑靶场:架构不兼容时先确认三件事

M 系列 Mac 跑靶场:架构不兼容时先确认三件事

授权与合规声明 本文全部操作对象均为自建隔离靶场(本机容器或隔离虚拟机),涉及安全测试的环节必须以取得合法授权为前提。未经授权的渗透测试违反《中华人民共和国网络安全法》与《刑法》相关条款,须承担相应法律责任。本文只讲环…

2026/10/3 19:16:00 阅读更多 →
建筑造价转大模型:定额分地区版本,价格不能跨区外推

建筑造价转大模型:定额分地区版本,价格不能跨区外推

版权与内容来源声明 本文为原创整理。文中涉及官方文档、开源仓库、论文与公开报道的内容,均在附表 A 中标注来源;引用官方原文保持原样,不作改写。文中命令、版本号与界面截图以本文成文时的实测/核验结果为准,标注「待验证」的部…

2026/10/3 19:16:00 阅读更多 →
大模型擅长0到1,后续改进效率低

大模型擅长0到1,后续改进效率低

用大模型写代码,完善图像和渲染的时候发现 细节太多的时候,LLM就顾不过来了,表现得类似“降智”了; 尤其是有些是视觉上在人看来非常简单和显而易见的修改或更新,但LLM死活就是抓不住重点,反复绕圈子。

2026/10/3 19:16:00 阅读更多 →
2026企业AI办公工具选型完整指南

2026企业AI办公工具选型完整指南

一、企业选AI办公工具,为什么不能只看功能列表企业在引入AI办公工具的阶段,容易陷入几种典型的评估误区。部分团队会直接对照产品的功能清单打分,把功能数量作为核心判断标准;还有管理者以产品定价高低或者品牌知名度作为取舍依据…

2026/10/3 19:16:00 阅读更多 →
一个人也能顶20人团队:AI编程工作流拆解与实操指南

一个人也能顶20人团队:AI编程工作流拆解与实操指南

说句实在话,我第一次看到“一个人像 20 人团队”这种标题时,第一反应是:又是成功学。但等我真正去翻了 YC 那位 CEO 在公开场合的分享,又亲眼见证了好几个独立开发者靠 AI 编程把产品从 0 推到上线之后,我的看法变了—…

2026/10/3 19:15:00 阅读更多 →

日新闻

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南 【免费下载链接】ex-skill 前任 skill 项目地址: https://gitcode.com/gh_mirrors/exsk/ex-skill 前任.skill 是一个运行在 Claude Code 上的开源 Skill:导入微信、iMessage、短信、…

2026/10/3 0:00:27 阅读更多 →
45个经典Linux面试题:从命令到网络排障的完整考点解析

45个经典Linux面试题:从命令到网络排障的完整考点解析

刚开始带应届生的时候,我最头疼的就是他们拿着一摞Linux面试题背得滚瓜烂熟,一上机全露馅。后来自己从被面的人变成面别人的人,才慢慢摸清楚:Linux面试题考的根本不是答案本身,而是你面对一个不确定的系统问题时&#…

2026/10/3 0:01:28 阅读更多 →
SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

简介:本资源是一份面向SAP ABAP开发人员、生产计划专员及ERP实施顾问的实操型操作指南,聚焦SAP生产预留核心业务场景,系统解决物料预留创建、查询、校验与批量处理等高频问题。文档以结构化方式覆盖预留背景原理、OMC2编码规则、工厂级参数配…

2026/10/3 0:01:28 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 9:14:33 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 9:47:50 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/3 9:42:31 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →