Limitless Life Logs Skill
You have access to the user's Limitless AI pendant recordings via the Limitless REST API.
Use the tools below to retrieve, search, and analyze life log transcriptions.
Configuration
Read these values from the environment before any API call:
| Variable | Required | Description |
|---|
| INLINECODE0 | Yes | API key from Limitless Developer settings |
| INLINECODE1 |
No | IANA timezone (e.g.
America/Los_Angeles). Defaults to
UTC |
If LIMITLESS_API_KEY is not set, stop and tell the user:
"Please set your API key first: export LIMITLESS_API_KEY=your_key_here"
If LIMITLESS_TIMEZONE is not set, proceed with UTC and note it in your response.
API Reference
Base URL: https://api.limitless.ai
Auth header: X-API-Key: $LIMITLESS_API_KEY
This skill is READ-ONLY — never call DELETE endpoints.
List / Search Lifelogs
CODEBLOCK0
Query parameters (append as &key=value):
| Param | Type | Description |
|---|
| INLINECODE11 | string | Hybrid semantic + keyword search query |
| INLINECODE12 |
ISO-8601 date | Filter to a specific day (
YYYY-MM-DD) |
|
start | ISO-8601 datetime | Range start |
|
end | ISO-8601 datetime | Range end |
|
limit | integer | Results per page (default 10, max 50) |
|
cursor | string | Pagination cursor from previous
nextCursor |
|
direction |
asc\|
desc | Sort order (default
desc) |
|
includeMarkdown | boolean | Include formatted markdown content |
|
includeHeadings | boolean | Include section headings |
Get a Specific Lifelog
CODEBLOCK1
Paginate
If the response includes "nextCursor" in the meta object, fetch the next page by
appending &cursor=NEXT_CURSOR to the same request. Continue until nextCursor is null
or you have enough data.
Capabilities
1. Search by Topic or Keyword
Trigger phrases: "search my logs for...", "find mentions of...", "did anyone say..."
- 1. Extract the search term from the user's message.
- Call the lifelogs endpoint with
q=<term> and limit=10. - Present results as a numbered list: timestamp, a short excerpt, and the log ID.
- Offer to fetch more pages or open a specific log.
2. Summarize Recent Activity
Trigger phrases: "what happened today", "summarize this week", "recap yesterday"
- 1. Determine the date or range from the user's intent.
- "today" →
date=<today's date>
- "this week" →
start=<Monday>&end=<today>
- "yesterday" →
date=<yesterday>
- 2. Fetch up to 50 logs for the range (paginate if needed).
- Synthesize a structured summary:
-
Key topics and conversations
-
Decisions made
-
People mentioned
-
Notable moments
3. Memory Recall
Trigger phrases: "what did we decide about...", "who mentioned...", "remind me about..."
- 1. Identify the topic or entity from the user's question.
- Search with
q=<topic>, fetching enough results to answer. - Synthesize a direct answer citing the relevant log entries (include date and time).
4. Browse by Date / Time Range
Trigger phrases: "show me logs from...", "what was recorded on...", "logs between X and Y"
- 1. Parse the date or range from the user's message.
- Fetch logs with
date= or start=/end=. - Present a chronological list with titles, timestamps, and brief summaries.
5. Action Item Extraction
Trigger phrases: "extract tasks", "what did I ask [agent] to do", "find action items for...", or
automatically after fetching logs when the user asks for a recap.
Agent Roster
Load the configured agents from the roster file and extract the list of known agent names:
CODEBLOCK2
Use these names as the detection vocabulary. Never hardcode agent names in logic — always derive them from agents.json at runtime.
Detection Rules
Scan the lifelog transcription text for directives to any agent in the roster. An action item is present when:
- - A known agent name (from the roster) appears as a direct address at the start of a phrase or sentence
- Examples:
"<AgentName>, send...",
"Hey <AgentName> can you...",
"@<AgentName> please...",
"<AgentName> — I need you to..."
- - A task verb follows: send, schedule, remind, book, find, create, draft, write, check, follow up, research, compile, etc.
- The phrase contains a clear deliverable or target
Extraction Format
For each detected action item, output:
CODEBLOCK3
Dispatch Prompt
After presenting each extracted action item, ask the user:
"Should I dispatch this task to [Agent Name]?"
If the user says yes, read the agent's dispatch config from agents.json and use the
appropriate method:
- - webhook: POST to
dispatch.url with JSON body:
{
"agent": "<name>",
"task": "<task summary>",
"source_quote": "<exact quote>",
"log_id": "<log ID>",
"timestamp": "<ISO timestamp>"
}
CODEBLOCK5
- - email: Inform the user what the email should contain and ask them to send it, or
use the system
mail command if available:
CODEBLOCK6
If the agent name is not in the roster, flag it:
"I found a task directed at '[Name]' but they're not in your agents.json roster. Add them
to ~/.openclaw/workspace/skills/limitless/agents.json to enable dispatch."
Error Handling
| Situation | Response |
|---|
| INLINECODE48 not set | Stop and prompt user to export it |
| HTTP 401 |
"Your API key appears invalid. Check it in Limitless Developer settings." |
| HTTP 429 | "Rate limit hit (180 req/min). Wait 60 seconds and try again." |
| HTTP 404 | "That log ID wasn't found. It may have been deleted or the ID is incorrect." |
| Empty results | "No logs found matching that query. Try a broader search term or different date range." |
|
agents.json missing | "agents.json not found. Create it at
~/.openclaw/workspace/skills/limitless/agents.json using the template in the skill repo." |
无限生活日志技能
您可以通过无限REST API访问用户的无限AI挂坠录音。使用以下工具检索、搜索和分析生活日志转录文本。
配置
在进行任何API调用前,从环境中读取以下值:
| 变量 | 必需 | 描述 |
|---|
| LIMITLESSAPIKEY | 是 | 来自无限开发者设置的API密钥 |
| LIMITLESSTIMEZONE |
否 | IANA时区(例如 America/LosAngeles)。默认为 UTC |
如果未设置 LIMITLESSAPIKEY,请停止并告知用户:
请先设置您的API密钥:export LIMITLESSAPIKEY=yourkeyhere
如果未设置 LIMITLESS_TIMEZONE,则使用 UTC 继续,并在回复中注明。
API参考
基础URL:https://api.limitless.ai
认证头:X-API-Key: $LIMITLESSAPIKEY
本技能为只读——切勿调用DELETE端点。
列出/搜索生活日志
bash
curl -s -H X-API-Key: $LIMITLESSAPIKEY \
https://api.limitless.ai/v1/lifelogs?timezone=$LIMITLESS_TIMEZONE&PARAMS
查询参数(以 &key=value 形式附加):
| 参数 | 类型 | 描述 |
|---|
| q | 字符串 | 混合语义+关键词搜索查询 |
| date |
ISO-8601日期 | 筛选特定日期(YYYY-MM-DD) |
| start | ISO-8601日期时间 | 范围起始 |
| end | ISO-8601日期时间 | 范围结束 |
| limit | 整数 | 每页结果数(默认10,最大50) |
| cursor | 字符串 | 来自前一次nextCursor的分页游标 |
| direction | asc\|desc | 排序顺序(默认desc) |
| includeMarkdown | 布尔值 | 包含格式化markdown内容 |
| includeHeadings | 布尔值 | 包含章节标题 |
获取特定生活日志
bash
curl -s -H X-API-Key: $LIMITLESSAPIKEY \
https://api.limitless.ai/v1/lifelogs/LOG_ID
分页
如果响应中的meta对象包含nextCursor,则通过在相同请求中附加&cursor=NEXT_CURSOR来获取下一页。继续直到nextCursor为null或获取到足够数据。
功能
1. 按主题或关键词搜索
触发短语:搜索我的日志中关于...、查找提及...、有没有人说过...
- 1. 从用户消息中提取搜索词。
- 使用q=和limit=10调用生活日志端点。
- 以编号列表形式呈现结果:时间戳、简短摘录和日志ID。
- 提供获取更多页面或打开特定日志的选项。
2. 总结近期活动
触发短语:今天发生了什么、总结本周、回顾昨天
- 1. 根据用户意图确定日期或范围。
- 今天 → date=<今天的日期>
- 本周 → start=<周一>&end=<今天>
- 昨天 → date=<昨天>
- 2. 获取该范围内最多50条日志(必要时分页)。
- 综合生成结构化摘要:
-
关键主题和对话
-
做出的决定
-
提及的人员
-
重要时刻
3. 记忆回忆
触发短语:我们关于...做了什么决定、谁提到了...、提醒我关于...
- 1. 从用户问题中识别主题或实体。
- 使用q=搜索,获取足够结果以回答。
- 综合生成直接答案,引用相关日志条目(包括日期和时间)。
4. 按日期/时间范围浏览
触发短语:显示从...开始的日志、在...上记录了哪些内容、X和Y之间的日志
- 1. 从用户消息中解析日期或范围。
- 使用date=或start=/end=获取日志。
- 按时间顺序呈现列表,包含标题、时间戳和简短摘要。
5. 行动项提取
触发短语:提取任务、我让[代理]做什么、查找...的行动项,或在用户要求回顾时自动提取日志后执行。
代理名册
从名册文件中加载已配置的代理,提取已知代理名称列表:
bash
cat ~/.openclaw/workspace/skills/limitless/agents.json | jq [.agents[].name]
使用这些名称作为检测词汇。切勿在逻辑中硬编码代理名称——始终在运行时从agents.json获取。
检测规则
扫描生活日志转录文本中针对名册中任何代理的指令。当以下情况出现时,即为行动项:
- - 已知代理名称(来自名册)作为直接称呼出现在短语或句子开头
- 示例:<代理名称>,发送...、嘿<代理名称>你能...、@<代理名称>请...、<代理名称> — 我需要你...
- - 后跟任务动词:发送、安排、提醒、预订、查找、创建、起草、编写、检查、跟进、研究、整理等。
- 短语中包含明确的交付物或目标
提取格式
对于每个检测到的行动项,输出:
代理: <代理名称>
触发: <转录文本中的确切引用>
任务: <一句话简明英文描述所要求的内容>
来源日志: <日志ID> — <时间戳>
调度提示
在呈现每个提取的行动项后,询问用户:
我应该将此任务分派给[代理名称]吗?
如果用户回答是,则读取agents.json中代理的dispatch配置,并使用适当的方法:
- - webhook:向dispatch.url发送POST请求,JSON体如下:
json
{
agent: <名称>,
task: <任务摘要>,
source_quote: <确切引用>,
log_id: <日志ID>,
timestamp:
}
bash
curl -s -X POST -H Content-Type: application/json \
-d {agent:名称,task:任务,sourcequote:引用,logid:ID,timestamp:时间戳} \
调度URL
- - email:告知用户邮件应包含的内容,请用户发送,或使用系统mail命令(如果可用):
bash
echo 代理名称的任务:\n任务摘要\n\n来源:引用\n日志:日志ID | \
mail -s 来自无限的任务 代理邮箱
如果代理名称不在名册中,则标记:
我发现了一个针对[名称]的任务,但他们不在您的agents.json名册中。请将其添加到~/.openclaw/workspace/skills/limitless/agents.json以启用调度。
错误处理
| 情况 | 响应 |
|---|
| LIMITLESSAPIKEY未设置 | 停止并提示用户导出 |
| HTTP 401 |
您的API密钥似乎无效。请在无限开发者设置中检查。 |
| HTTP 429 | 已达到速率限制(180次/分钟)。请等待60秒后重试。 |
| HTTP 404 | 未找到该日志ID。可能已被删除或ID不正确。 |
| 结果为空 | 未找到匹配该查询的日志。请尝试更宽泛的搜索词或不同的日期范围。 |
| agents.json缺失 | 未找到agents.json。请使用技能仓库中的模板在~/.openclaw/workspace/skills/limitless/agents.json创建。 |