{"openapi":"3.1.0","info":{"title":"灵机 FeedHub Agent API","description":"读取用户录音卡、手机、Apple Watch、导入与同传的全部录音：逐字稿、纪要、待办、笔记与音频；管理待办、推送纪要。时间均为北京时间（+08:00）。","version":"2.0.0"},"servers":[{"url":"https://ainews.thirdme.com"}],"paths":{"/api/agent/overview":{"get":{"operationId":"getOverview","summary":"总览：设备、录音统计、待办、最近录音","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Overview"}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]}},"/api/agent/recordings":{"get":{"operationId":"listRecordings","summary":"筛选录音列表","parameters":[{"name":"q","in":"query","required":false,"description":"关键词（空格分隔表示同时包含）","schema":{"type":"string"}},{"name":"source","in":"query","required":false,"description":"来源，逗号多选：card, phone, watch, upload, interpretation","schema":{"type":"string"}},{"name":"date","in":"query","required":false,"description":"某一天：YYYY-MM-DD / today / yesterday","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"起始（含）：YYYY-MM-DD、ISO-8601、today、this_week、this_month、7d","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"结束（不含；日期写法包含当天）","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"转写状态：completed, processing, failed, no_speech, none","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"recorded（默认）或 updated","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"返回数量","schema":{"type":"integer"}},{"name":"offset","in":"query","required":false,"description":"分页偏移，取 nextOffset","schema":{"type":"integer"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingPage"}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]}},"/api/agent/recordings/{id}":{"get":{"operationId":"getRecording","summary":"录音详情：纪要、待办、笔记、逐字稿、分句、音频","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"include","in":"query","required":false,"description":"summary,todos,notes,transcript,audio（默认），mindmap,epiphany,deepResearch,segments 或 all","schema":{"type":"string"}},{"name":"transcriptOffset","in":"query","required":false,"description":"逐字稿起始字符位置","schema":{"type":"integer"}},{"name":"transcriptLimit","in":"query","required":false,"description":"逐字稿读取字符数，默认 20000","schema":{"type":"integer"}},{"name":"fromSec","in":"query","required":false,"description":"只看此秒之后的分句","schema":{"type":"number"}},{"name":"toSec","in":"query","required":false,"description":"只看此秒之前的分句","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json（默认）或 markdown","schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingDetail"}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]}},"/api/agent/recordings/{id}/push":{"post":{"operationId":"pushRecording","summary":"推送录音纪要到用户配置的工作群 Webhook（需用户确认）","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","description":"feishu / wecom / dingtalk / slack / discord / generic；缺省全部"}}}}}},"responses":{"200":{"description":"推送结果","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]}},"/api/agent/search":{"get":{"operationId":"searchMemory","summary":"全文检索全部录音，返回命中片段、时间点与说话人","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"source","in":"query","required":false,"description":"来源，逗号多选：card, phone, watch, upload, interpretation","schema":{"type":"string"}},{"name":"date","in":"query","required":false,"description":"某一天：YYYY-MM-DD / today / yesterday","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"起始（含）：YYYY-MM-DD、ISO-8601、today、this_week、this_month、7d","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"结束（不含；日期写法包含当天）","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"返回数量","schema":{"type":"integer"}},{"name":"offset","in":"query","required":false,"description":"分页偏移，取 nextOffset","schema":{"type":"integer"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]}},"/api/agent/digest":{"get":{"operationId":"getDigest","summary":"时段汇总（默认今天）：每条录音的纪要、待办、笔记","parameters":[{"name":"date","in":"query","required":false,"description":"某一天：YYYY-MM-DD / today / yesterday","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"起始（含）：YYYY-MM-DD、ISO-8601、today、this_week、this_month、7d","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"结束（不含；日期写法包含当天）","schema":{"type":"string"}},{"name":"source","in":"query","required":false,"description":"来源，逗号多选：card, phone, watch, upload, interpretation","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"最多录音数，默认 30","schema":{"type":"integer"}},{"name":"summaryChars","in":"query","required":false,"description":"每条纪要最多字符","schema":{"type":"integer"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Digest"}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]}},"/api/agent/todos":{"get":{"operationId":"listTodos","summary":"待办列表（App 任务 + 录音自动提取）","parameters":[{"name":"status","in":"query","required":false,"description":"open（默认）、all、todo、doing、done、backlog","schema":{"type":"string"}},{"name":"recordingId","in":"query","required":false,"description":"只看某条录音","schema":{"type":"string"}},{"name":"assignee","in":"query","required":false,"description":"负责人","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"关键词","schema":{"type":"string"}},{"name":"date","in":"query","required":false,"description":"某一天：YYYY-MM-DD / today / yesterday","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"起始（含）：YYYY-MM-DD、ISO-8601、today、this_week、this_month、7d","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"结束（不含；日期写法包含当天）","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"返回数量","schema":{"type":"integer"}},{"name":"offset","in":"query","required":false,"description":"分页偏移，取 nextOffset","schema":{"type":"integer"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoPage"}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"createTodo","summary":"新建待办（同步到 App，需用户确认）","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string"},"priority":{"type":"string","enum":["high","medium","low"]},"dueAt":{"type":"string"},"assignee":{"type":"string"},"recordingId":{"type":"string"},"timestampSec":{"type":"number"},"quote":{"type":"string"}}}}}},"responses":{"200":{"description":"已创建","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]}},"/api/agent/todos/{id}":{"patch":{"operationId":"updateTodo","summary":"修改待办（如标记完成，同步到 App，需用户确认）","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["todo","doing","done","backlog"]},"priority":{"type":"string","enum":["high","medium","low"]},"title":{"type":"string"},"dueAt":{"type":"string"},"assignee":{"type":"string"}}}}}},"responses":{"200":{"description":"已更新","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数错误"},"401":{"description":"缺少或无效的 API Key"},"404":{"description":"不存在"},"429":{"description":"超过速率限制"}},"security":[{"BearerAuth":[]}]}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"在 FeedHub 控制台生成的 feedhub_ 开头 API Key"}},"schemas":{"RecordingBrief":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"recordedAt":{"type":"string","description":"北京时间 ISO-8601"},"durationSec":{"type":"integer"},"duration":{"type":"string"},"source":{"type":"string","enum":["card","phone","watch","upload","interpretation"]},"sourceLabel":{"type":"string"},"deviceId":{"type":["string","null"]},"status":{"type":"string","enum":["completed","processing","failed","no_speech","none"]},"statusLabel":{"type":"string"},"hasTranscript":{"type":"boolean"},"hasSummary":{"type":"boolean"},"summaryExcerpt":{"type":"string"},"todoCount":{"type":"integer"},"noteCount":{"type":"integer"},"photoCount":{"type":"integer"},"hasAudio":{"type":"boolean"}},"additionalProperties":true},"RecordingPage":{"type":"object","properties":{"total":{"type":"integer"},"nextOffset":{"type":["integer","null"]},"recordings":{"type":"array","items":{"$ref":"#/components/schemas/RecordingBrief"}}},"additionalProperties":true},"RecordingDetail":{"allOf":[{"$ref":"#/components/schemas/RecordingBrief"},{"type":"object","properties":{"summary":{"type":"string"},"todos":{"type":"array","items":{"type":"object","additionalProperties":true}},"notes":{"type":"array","items":{"type":"object","additionalProperties":true}},"transcript":{"type":"object","properties":{"text":{"type":"string"},"offset":{"type":"integer"},"totalChars":{"type":"integer"},"truncated":{"type":"boolean"},"nextOffset":{"type":["integer","null"]}}},"segments":{"type":"array","items":{"type":"object","additionalProperties":true}},"audio":{"type":["object","null"],"additionalProperties":true},"shareUrl":{"type":["string","null"]}},"additionalProperties":true}]},"SearchResult":{"type":"object","properties":{"total":{"type":"integer"},"nextOffset":{"type":["integer","null"]},"results":{"type":"array","items":{"type":"object","properties":{"recording":{"$ref":"#/components/schemas/RecordingBrief"},"matches":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}},"additionalProperties":true},"Digest":{"type":"object","properties":{"total":{"type":"integer"},"totalDuration":{"type":"string"},"bySource":{"type":"object","additionalProperties":true},"recordings":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":true},"TodoPage":{"type":"object","properties":{"total":{"type":"integer"},"openCount":{"type":"integer"},"nextOffset":{"type":["integer","null"]},"todos":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":true},"Overview":{"type":"object","additionalProperties":true}}}}