Install
openclaw skills install hackernews-search一个通过Model Context Protocol提供HackerNews内容搜索、检索和分析的服务,适用于AI代理和开发者。
openclaw skills install hackernews-search一个通过Model Context Protocol提供HackerNews内容搜索、检索和分析的服务,适用于AI代理和开发者。
此 Skill 必须配置 API 密钥才能使用。
.env 中没有 XBY_APIKEY,必须使用 AskUserQuestion 工具向用户询问 API 密钥scripts.config.set_api_key(api_key) 保存,然后继续处理你(大模型)是路由层,负责理解用户意图、选择工具、提取参数。代码只负责调用API。
用户输入 → 你选择工具 → 提取该工具需要的参数 → 调用 scripts.tools 中的函数 → 返回结果给用户
scripts.config.settings.api_key 为空,使用 AskUserQuestion 询问用户,拿到后调用 scripts.config.set_api_key(key) 保存scripts.tools 中的函数,例如 scripts.tools.search_schools(score='520', province='北京', category='综合')raw 数据整理后展示给用户根据用户意图选择对应的工具函数:
| 用户意图 | 工具函数 |
|---|---|
| Search HackerNews for stories, comments, and other content by keyword. |
Supports:
Basic Examples:
Advanced Filtering Examples:
Numeric Filter Operators: < (less than), <= (less than or equal), = (equal), >= (greater than or equal), > (greater than) Numeric Filter Fields: points, num_comments, created_at_i (Unix timestamp)
Tag Syntax:
Returns paginated results with hits, total count, and page information. | scripts.tools.search_posts |
| Retrieve posts currently on the HackerNews front page.
Returns stories sorted by HackerNews ranking algorithm. The front page typically contains the most popular and trending stories.
Supports:
Examples:
Returns the same structure as search results with hits, pagination info, and metadata. | scripts.tools.get_front_page |
| Retrieve the most recent HackerNews posts sorted by date.
Returns posts in chronological order (newest first), including all types of content unless filtered.
Supports:
Examples:
Use this to monitor real-time HackerNews activity or find the newest content. | scripts.tools.get_latest_posts |
| Retrieve detailed information about a specific HackerNews item by ID.
Returns complete item details including the full nested comment tree. Use this to:
Features:
Examples:
Note: Large comment threads (>500 comments) may take 2-3 seconds to load due to nested fetching.
Returns error if item doesn't exist or has been deleted. | scripts.tools.get_item |
| Retrieve public profile information for a HackerNews user.
Returns user profile including karma, bio, and account creation date. Use this to:
Features:
Examples:
Username validation:
Returns error if user doesn't exist or username format is invalid. | scripts.tools.get_user |
如果参数不完整,使用 AskUserQuestion 向用户询问缺失的参数。
工具描述:Search HackerNews for stories, comments, and other content by keyword.
Supports:
Basic Examples:
Advanced Filtering Examples:
Numeric Filter Operators: < (less than), <= (less than or equal), = (equal), >= (greater than or equal), > (greater than) Numeric Filter Fields: points, num_comments, created_at_i (Unix timestamp)
Tag Syntax:
Returns paginated results with hits, total count, and page information.
| 参数名称 | 参数类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| query | string | true | Search query text (minimum 1 character) | |
| tags | array | false | Optional filter tags (e.g., ['story'], ['comment'], ['(story,poll)'] for OR logic, ['author_pg'] for author filter) | |
| numericFilters | array | false | Optional numeric filters (e.g., ['points>=100'], ['num_comments>=50'], ['created_at_i>1640000000']). Multiple filters use AND logic. | |
| page | number | false | 0.0 | Page number (0-indexed, default: 0) |
| hitsPerPage | number | false | 20.0 | Results per page (1-1000, default: 20) |
工具描述:Retrieve posts currently on the HackerNews front page.
Returns stories sorted by HackerNews ranking algorithm. The front page typically contains the most popular and trending stories.
Supports:
Examples:
Returns the same structure as search results with hits, pagination info, and metadata.
| 参数名称 | 参数类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| page | number | false | 0.0 | Page number (0-indexed, default: 0) |
| hitsPerPage | number | false | 30.0 | Results per page (1-1000, default: 30) |
工具描述:Retrieve the most recent HackerNews posts sorted by date.
Returns posts in chronological order (newest first), including all types of content unless filtered.
Supports:
Examples:
Use this to monitor real-time HackerNews activity or find the newest content.
| 参数名称 | 参数类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| tags | array | false | Optional filter tags (e.g., ['story'], ['comment']) | |
| page | number | false | 0.0 | Page number (0-indexed, default: 0) |
| hitsPerPage | number | false | 20.0 | Results per page (1-1000, default: 20) |
工具描述:Retrieve detailed information about a specific HackerNews item by ID.
Returns complete item details including the full nested comment tree. Use this to:
Features:
Examples:
Note: Large comment threads (>500 comments) may take 2-3 seconds to load due to nested fetching. Returns error if item doesn't exist or has been deleted.
| 参数名称 | 参数类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| itemId | string | true | HackerNews item ID (e.g., '38456789') |
工具描述:Retrieve public profile information for a HackerNews user.
Returns user profile including karma, bio, and account creation date. Use this to:
Features:
Examples:
Username validation:
Returns error if user doesn't exist or username format is invalid.
| 参数名称 | 参数类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| username | string | true | HackerNews username (alphanumeric + underscores, e.g., 'pg') |
工具函数返回 dict 对象:
result["raw"] - API 原始返回数据(JSON),直接将此数据整理后展示给用户result["success"] - 是否成功(True/False)result["message"] - 状态消息xiaobenyang_gaokao_skill/
├── scripts/
│ ├── __init__.py
│ ├── config.py # 配置管理 + set_api_key()
│ ├── call_api.py # API 客户端 + call_api()
│ └── tools.py # 工具函数(直接调用)
├── requirements.txt
└── SKILL.md