ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenCLI LessWrong 适配器完全指南:用命令行与 GraphQL 直连理性主义社区与 AI 对齐研究论坛

OpenCLI LessWrong 适配器完全指南:用命令行与 GraphQL 直连理性主义社区与 AI 对齐研究论坛 OpenCLI LessWrong 适配器完全指南用命令行与 GraphQL 直连理性主义社区与 AI 对齐研究论坛【免费下载链接】OpenCLIMake Any Website into CLI Use your logged-in browser by AI agent.项目地址: https://gitcode.com/gh_mirrors/ope/OpenCLILessWrong 是理性主义Rationality社区与 AI 对齐AI Alignment研究的重要论坛沉淀了大量高质量长文与讨论。OpenCLI 为其提供了开箱即用的 CLI 适配器无需浏览器、无需登录即可通过公开 GraphQL API 直接抓取精选内容、排行榜、帖子全文、评论、用户资料与标签流。读完本文你将掌握opencli lesswrong全部 14 个子命令的用法、参数语义与输出格式并理解其底层 GraphQL 调用链与容错机制可直接用于日常调研、AI 对齐文献追踪与自动化数据采集。适配器概览Public 模式与工作前提本适配器的官方文档位于 docs/adapters/browser/lesswrong.md其定位是 OpenCLI 生态中的只读内容浏览适配器模式ModePublic即公开访问模式无需任何账号凭证目标域名Domainwww.lesswrong.com前提条件Prerequisites不需要浏览器全部数据来自 LessWrong 公开 GraphQL API访问级别所有子命令的access均为read属于只读操作。从源码结构看适配器实现集中在 clis/lesswrong/ 目录下共 16 个源文件1 个公共工具模块_helpers.js、14 个子命令实现文件以及 1 个测试文件frontpage.test.js。每个子命令都通过jackwener/opencli/registry的cli()注册器声明站点、命令名、访问级别、参数、输出列与核心逻辑这种一文件一命令的组织方式使得适配器极易扩展与维护。全部命令速览原文档定义了下表所列的 14 个子命令覆盖了帖子流、单帖阅读、评论、用户、标签、序列Sequences与短帖Shortform等全部核心内容类型命令功能说明opencli lesswrong curated编辑精选Editors picksopencli lesswrong frontpage算法首页流Algorithmic frontpage feedopencli lesswrong new最新帖子opencli lesswrong top历史最高分帖子Top rated, all timeopencli lesswrong top-week本周最高分opencli lesswrong top-month本月最高分opencli lesswrong top-year本年度最高分opencli lesswrong read按 URL 或 ID 读取帖子全文opencli lesswrong comments获取帖子下的高分评论opencli lesswrong user查看用户资料opencli lesswrong user-posts列出某用户的帖子opencli lesswrong tag按标签获取帖子opencli lesswrong tags列出热门标签opencli lesswrong sequences列出帖子合集Post collectionsopencli lesswrong shortform快速想法/短帖流快速上手完整使用示例以下示例全部继承自原文档并补充了参数细节。所有列表类命令均支持--limit控制返回条数所有命令支持-f json输出结构化 JSON# 浏览编辑精选帖默认返回 10 条可显式指定数量 opencli lesswrong curated --limit 5 # 本周最高分帖子 opencli lesswrong top-week --limit 10 # 按帖子的 24 位短 ID 读取全文 opencli lesswrong read CzoiqGzpShprcv2Jd # 也可以直接粘贴完整帖子 URL适配器会自动提取 ID opencli lesswrong read https://www.lesswrong.com/posts/xxx/slug # 按标签获取帖子标签大小写不敏感空格自动转短横线 opencli lesswrong tag ai --limit 5 # 查看用户资料与 ta 的帖子 opencli lesswrong user zvi opencli lesswrong user-posts zvi --limit 5 # 查看某帖子的高分评论 opencli lesswrong comments CzoiqGzpShprcv2Jd --limit 10 # 以 JSON 格式输出便于管道处理或接入 Agent opencli lesswrong curated -f json底层原理GraphQL 调用链与公共工具模块所有子命令都依赖 clis/lesswrong/_helpers.js 提供的公共能力理解这个模块就能看懂整个适配器的运作方式。请求封装gqlRequestgqlRequest(query)是所有命令的唯一网络出入口它向https://www.lesswrong.com/graphql发起 POST 请求请求头固定为Content-Type: application/json与Accept: application/json使用AbortSignal.timeout(15000)设置 15 秒超时防止网络异常时命令长期挂起非 2xx 状态码会抛出CommandExecutionError并附带 HTTP 状态码响应若含errors字段则抛出第一个 GraphQL 错误消息成功时直接返回json.data供各命令继续解析。文本与参数处理工具gqlEscape(str)对反斜杠与双引号进行转义防止注入到 GraphQL 查询字符串中stripHtml(html)依次剔除script、style块、其余 HTML 标签并将空白折叠为单空格——帖子正文与用户简介的纯文本化全靠它daysAgo(n)返回 n 天前的 ISO 8601 时间戳是 top-week / top-month / top-year 实现时间窗口过滤的核心parsePostId(urlOrId)用正则/posts\/([a-zA-Z0-9])/从完整 URL 中提取帖子 ID若输入不是 URL则原样返回输入作为 ID因此URL 与短 ID 两种输入方式在底层是同一套逻辑resolveTagId(slug)先对标签做小写化、去空格、空格转短横线归一化再通过tagBySlug视图查询标签_id与名称找不到返回nullresolveUserId(slug)通过user查询按小写 slug 解析用户_id与displayName找不到时抛出EmptyResultError并提示LessWrong slug 均为小写如zvi、eliezer-yudkowsky。帖子流命令同一查询模板的不同视图curated、frontpage、new、top、top-week、top-month、top-year、shortform这 8 个命令高度同构它们都以posts(input: {terms: {view: ..., limit: N}})发起查询仅view参数不同分别对应curated、frontpage、new、top、shortform并统一返回rank / title / author / karma / comments / url六列。以 clis/lesswrong/curated.js 为例const query query PostsList { posts(input: {terms: {view: curated, limit: ${limit}}}) { results { _id title user { displayName } baseScore commentCount slug postedAt tags { name } } } };输出行的关键映射规则为karma对应 GraphQL 的baseScore基础评分comments对应commentCounturl由https://www.lesswrong.com/posts/${_id}/${slug}拼接而成author取自嵌套的user.displayName缺失时为空字符串而不是哨兵值这一点有专门测试保障见下文。时间窗口过滤top-week / top-month / top-year这三个命令在top视图基础上叠加了after参数由daysAgo()动态生成时间起点见 clis/lesswrong/top-week.jsposts(input: {terms: {view: top, after: ${daysAgo(7)}, limit: ${limit}}})top-weekafter为 7 天前top-monthafter为 30 天前top-month.jstop-yearafter为 365 天前top-year.js。由于时间戳在命令执行时实时生成你每次运行拿到的都是截至当前时刻的滚动排行非常适合周期性监控任务。单帖与评论read / commentsreadURL 或 ID 都能读全文clis/lesswrong/read.js 接受一个必填的位置参数url-or-id内部先经parsePostId归一化为纯 ID再以post(input: {selector: {documentId: ...}})查询帖子详情输出列扩展为title / author / karma / comments / tags / content / urlcontent为htmlBody经stripHtml纯文本化后的正文可直接喂给 LLM 或做本地检索tags将标签数组展开为逗号分隔的纯文本帖子不存在时抛出EmptyResultError消息中回显查询的 ID便于排查。comments并行查询 长文截断clis/lesswrong/comments.js 用Promise.all并行发起两条 GraphQL 请求——一条取帖子标题一条以view: postCommentsTop取高分评论避免串行等待。输出行为有两个值得注意的设计第一行固定为帖子上下文行格式为Comments on: {title} ({url})让脱离帖子独立查看评论输出时仍能知道上下文单条评论文本超过 500 字符时截断为前 500 字符并追加...防止单条长评论淹没整个表格。用户与标签user / user-posts / tag / tags用户资料与帖子列表opencli lesswrong user usernameuser.js返回field / value两列字段包括 Name、Username、Karma、Posts、Comments、Joined、Bio 与个人主页 URL。注意用户名会被强制转小写后查询因为 LessWrong 的用户 slug 统一为小写形式。opencli lesswrong user-posts usernameuser-posts.js先通过resolveUserId把用户名解析为_id再以view: userPosts查询该用户帖子输出rank / title / karma / comments / date / url六列其中date来自postedAt原始 ISO 字符串。标签解析与标签流opencli lesswrong tagstags.js以view: coreTags查询核心标签默认返回 20 条输出rank / name / posts对应postCount。opencli lesswrong tag tagtag.js是先解析后查询的典型流程先用resolveTagId将标签名归一化为 slug 并查到_id再以view: tagRelevance按相关性返回帖子若标签不存在则抛出EmptyResultError并提示可先用opencli lesswrong tags查看可用标签。因为内部做了小写化与空格转短横线tag AI alignment这类带空格、混合大小写的输入也能正确命中。序列与短帖sequences / shortformopencli lesswrong sequencessequences.js以view: communitySequences列出社区帖子合集输出rank / title / author三列适合发现系统性学习路线LessWrong 上的长系列文章通常以 Sequence 形式组织opencli lesswrong shortformshortform.js以view: shortform拉取快速想法/短帖流输出列与普通帖子流一致适合快速扫读社区即时讨论。测试验证输出健壮性的保障适配器带有一个针对性测试 clis/lesswrong/frontpage.test.js它通过vi.mock替换_helpers.js中的gqlRequest构造三类边界数据验证输出正常用户displayName正常映射已删除用户user: null时author输出空字符串而非undefined或哨兵值缺失姓名的用户user: {}时同样输出空字符串。该测试断言了 3 行结果、排序、karma/comments数值映射以及空作者兜底行为。这表明适配器对 LessWrong API 中常见的作者信息缺失场景做了显式容错值得在其他适配器中复用同样思路。典型应用场景与注意事项AI 对齐文献追踪curated与top-week组合配合-f json输出即可接入定时任务或 autoresearch 类自动化管线持续监控社区高质量讨论单帖深度阅读readcomments的组合能一次获取正文与高分讨论stripHtml后的纯文本可直接作为 LLM 上下文作者画像user与user-posts可快速评估某位研究者的活跃度、产出与影响力限制与边界本适配器仅覆盖公开内容无登录态、不可发帖所有命令超时上限 15 秒comments单条文本上限 500 字符输出列字段名如karma映射baseScore与 LessWrong 站点语义一致可直接对照站点页面校验。延伸阅读适配器官方文档docs/adapters/browser/lesswrong.md适配器源码目录clis/lesswrong/核心工具模块clis/lesswrong/_helpers.js帖子流实现示例clis/lesswrong/curated.js、clis/lesswrong/frontpage.js单帖与评论实现clis/lesswrong/read.js、clis/lesswrong/comments.js用户与标签实现clis/lesswrong/user.js、clis/lesswrong/tag.js测试用例clis/lesswrong/frontpage.test.js【免费下载链接】OpenCLIMake Any Website into CLI Use your logged-in browser by AI agent.项目地址: https://gitcode.com/gh_mirrors/ope/OpenCLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表