{"apiBaseUrl":"https://work.ieltsbuddy.igopx.cn","capabilities":[{"auth":"user","category":{"description":"课程路线、课程章节与学习进度。","id":"courses","title":"课程学习"},"destructive":false,"description":"Read the IELTS full-course learning route as factual data, grouped by subject and unit, with course-level progress. Use view=progress for a compact summary. The Tool does not choose or recommend the next course.","endpoint":"/api/v1/agent/capabilities/ielts_learning_route_read","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"learning_route.read","input":{"fields":[{"description":"Maximum route course nodes to return.","name":"limit","required":false,"type":"number"},{"description":"Optional IELTS subject filter. Empty returns the full-course route.","name":"subject","required":false,"type":"string","values":["","listening","reading","writing","speaking"]},{"description":"Full ordered route nodes, or a compact progress-only view.","name":"view","required":false,"type":"string","values":["route","progress"]}]},"method":"POST","operationName":"ielts_learning_route_read","requestExample":{"limit":200,"subject":"","view":"route"},"requestSchema":{"type":"object","properties":{"limit":{"default":200,"description":"Maximum route course nodes to return.","type":"integer","minimum":1,"maximum":500},"subject":{"default":"","description":"Optional IELTS subject filter. Empty returns the full-course route.","type":"string","enum":["","listening","reading","writing","speaking"]},"view":{"default":"route","description":"Full ordered route nodes, or a compact progress-only view.","type":"string","enum":["route","progress"]}},"required":["limit","subject","view"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["courses:read"],"sideEffect":"read","title":"Read learning route","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_learning_route_read","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_learning_route_read","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_learning_route_read.md"}},{"auth":"user","category":{"description":"课程路线、课程章节与学习进度。","id":"courses","title":"课程学习"},"destructive":false,"description":"Search published course video sections by subject, literal keyword, or literal course tag query. The server returns factual section candidates and a stable contentRef; the local Agent decides whether one fits the learner.","endpoint":"/api/v1/agent/capabilities/ielts_courses_search_sections","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"courses.search_sections","input":{"fields":[{"description":"Optional exact course id returned by the learning route.","name":"courseId","required":false,"type":"number"},{"description":"Maximum number of exact course sections to return.","name":"limit","required":false,"type":"number"},{"description":"Result page. Use nextPage from the preceding search.","name":"page","required":false,"type":"number"},{"description":"Optional course, section, or video keyword.","name":"search","required":false,"type":"string"},{"description":"Optional IELTS subject filter.","name":"subject","required":false,"type":"string","values":["","listening","reading","speaking","writing","grammar"]},{"description":"Literal course labels or user-mentioned learning terms used to match course tags.","name":"tagQueries","required":false,"type":"unknown[]"}]},"method":"POST","operationName":"ielts_courses_search_sections","requestExample":{"limit":4,"page":1,"search":"","subject":"","tagQueries":[]},"requestSchema":{"type":"object","properties":{"courseId":{"description":"Optional exact course id returned by the learning route.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"default":4,"description":"Maximum number of exact course sections to return.","type":"integer","minimum":1,"maximum":6},"page":{"default":1,"description":"Result page. Use nextPage from the preceding search.","type":"integer","minimum":1,"maximum":1000},"search":{"default":"","description":"Optional course, section, or video keyword.","type":"string"},"subject":{"default":"","description":"Optional IELTS subject filter.","type":"string","enum":["","listening","reading","speaking","writing","grammar"]},"tagQueries":{"default":[],"description":"Literal course labels or user-mentioned learning terms used to match course tags.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}}},"required":["limit","page","search","subject","tagQueries"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["courses:read"],"sideEffect":"read","title":"Search course sections","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_courses_search_sections","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_courses_search_sections","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_courses_search_sections.md"}},{"auth":"user","category":{"description":"用户文件以及不同学习资源之间的关联。","id":"resources","title":"资源与文件"},"destructive":false,"description":"Search the current user's active file and document assets by title or indexed content. Results are compact and paginated, and include a stable asset contentRef. This is the asset module's only catalog-search interface.","endpoint":"/api/v1/agent/capabilities/ielts_assets_search","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"assets.search","input":{"fields":[{"description":"Maximum assets to return, 1-12.","name":"limit","required":false,"type":"number"},{"description":"Pagination offset.","name":"offset","required":false,"type":"number"},{"description":"Optional asset title or content keyword.","name":"query","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_assets_search","requestExample":{"limit":8,"offset":0,"query":""},"requestSchema":{"type":"object","properties":{"limit":{"default":8,"description":"Maximum assets to return, 1-12.","type":"integer","minimum":1,"maximum":12},"offset":{"default":0,"description":"Pagination offset.","type":"integer","minimum":0,"maximum":500},"query":{"default":"","description":"Optional asset title or content keyword.","type":"string"}},"required":["limit","offset","query"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["resources:read"],"sideEffect":"read","title":"Search user assets","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_assets_search","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_assets_search","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_assets_search.md"}},{"auth":"user","category":{"description":"用户文件以及不同学习资源之间的关联。","id":"resources","title":"资源与文件"},"destructive":false,"description":"Find explicitly or structurally related resources from a stable contentRef, such as course-to-practice and prediction-to-question relationships. Resource discovery and full reads remain owned by each resource Domain.","endpoint":"/api/v1/agent/capabilities/ielts_resources_related","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"resources.related","input":{"fields":[{"description":"Stable contentRef returned by the owning resource Domain.","name":"contentRef","required":true,"type":"unknown"},{"description":"limit","name":"limit","required":false,"type":"number"},{"description":"Optional relation types to include.","name":"relationTypes","required":false,"type":"unknown[]"}]},"method":"POST","operationName":"ielts_resources_related","requestExample":{"contentRef":"<contentRef>","limit":12,"relationTypes":[]},"requestSchema":{"type":"object","properties":{"contentRef":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"question_part"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"mock_paper"},"paperId":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","paperId"],"additionalProperties":false},{"type":"object","properties":{"courseId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kind":{"type":"string","const":"course_section"},"sectionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["courseId","kind","sectionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"listening_dictation"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"prep_guide"},"slug":{"type":"string","minLength":1,"maxLength":200}},"required":["kind","slug"],"additionalProperties":false},{"type":"object","properties":{"hitId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kind":{"type":"string","const":"prediction_hit"}},"required":["hitId","kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"speaking_material"},"materialId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","materialId"],"additionalProperties":false},{"type":"object","properties":{"assetId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kind":{"type":"string","const":"asset"}},"required":["assetId","kind"],"additionalProperties":false}],"description":"Stable contentRef returned by the owning resource Domain."},"limit":{"default":12,"type":"integer","minimum":1,"maximum":30},"relationTypes":{"default":[],"description":"Optional relation types to include.","maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}}},"required":["contentRef","limit","relationTypes"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["resources:read"],"sideEffect":"read","title":"Find related learning resources","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_resources_related","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_resources_related","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_resources_related.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Search the current user's personal vocabulary book by phrase, meaning, usage, or learning state. Results are compact and paginated. This is the personal vocabulary module's only catalog-search interface.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_search","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.search","input":{"fields":[{"description":"limit","name":"limit","required":false,"type":"number"},{"description":"learningState","name":"learningState","required":false,"type":"string","values":["","new","learning","review","relearning","mastered"]},{"description":"offset","name":"offset","required":false,"type":"number"},{"description":"Search phrase, meaning, or usage.","name":"query","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_vocabulary_personal_search","requestExample":{"limit":20,"learningState":"","offset":0,"query":""},"requestSchema":{"type":"object","properties":{"limit":{"default":20,"type":"integer","minimum":1,"maximum":50},"learningState":{"default":"","type":"string","enum":["","new","learning","review","relearning","mastered"]},"offset":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"query":{"default":"","description":"Search phrase, meaning, or usage.","type":"string"}},"required":["limit","learningState","offset","query"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:read"],"sideEffect":"read","title":"Search personal vocabulary","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_search","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_search","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_search.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Export personal vocabulary content as JSON or CSV for a local Agent or user-owned backup. Review progress is intentionally excluded.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_export","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.export","input":{"fields":[{"description":"Portable vocabulary content format.","name":"format","required":false,"type":"string","values":["csv","json"]},{"description":"Maximum entries in this export page.","name":"limit","required":false,"type":"number"},{"description":"Pagination offset.","name":"offset","required":false,"type":"number"}]},"method":"POST","operationName":"ielts_vocabulary_personal_export","requestExample":{"format":"json","limit":500,"offset":0},"requestSchema":{"type":"object","properties":{"format":{"default":"json","description":"Portable vocabulary content format.","type":"string","enum":["csv","json"]},"limit":{"default":500,"description":"Maximum entries in this export page.","type":"integer","minimum":1,"maximum":1000},"offset":{"default":0,"description":"Pagination offset.","type":"integer","minimum":0,"maximum":100000}},"required":["format","limit","offset"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:read"],"sideEffect":"read","title":"Export personal vocabulary","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_export","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_export","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_export.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Read spaced-repetition progress from the current user's personal vocabulary book.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_progress","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.progress","input":{"fields":[{"description":"Maximum recent/due items to return.","name":"limit","required":false,"type":"number"}]},"method":"POST","operationName":"ielts_vocabulary_personal_progress","requestExample":{"limit":12},"requestSchema":{"type":"object","properties":{"limit":{"default":12,"description":"Maximum recent/due items to return.","type":"integer","minimum":1,"maximum":50}},"required":["limit"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:read"],"sideEffect":"read","title":"Read personal vocabulary progress","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_progress","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_progress","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_progress.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Prepare flashcards from the current user's personal vocabulary book.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_prepare_cards","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.prepare_cards","input":{"fields":[{"description":"Avoid words reviewed in the last N days when possible.","name":"excludeRecentlyReviewedDays","required":false,"type":"number"},{"description":"Whether mastered words may be selected.","name":"includeMastered","required":false,"type":"boolean"},{"description":"Optional learning-state filter.","name":"learningState","required":false,"type":"string","values":["","new","learning","review","relearning","mastered"]},{"description":"Number of local flashcards to prepare.","name":"limit","required":false,"type":"number"},{"description":"Card selection strategy.","name":"mode","required":false,"type":"string","values":["mixed","due","new","weak","random"]},{"description":"Optional phrase, meaning, or usage search filter.","name":"query","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_vocabulary_personal_prepare_cards","requestExample":{"excludeRecentlyReviewedDays":3,"includeMastered":false,"learningState":"","limit":8,"mode":"mixed","query":""},"requestSchema":{"type":"object","properties":{"excludeRecentlyReviewedDays":{"default":3,"description":"Avoid words reviewed in the last N days when possible.","type":"integer","minimum":0,"maximum":90},"includeMastered":{"default":false,"description":"Whether mastered words may be selected.","type":"boolean"},"learningState":{"default":"","description":"Optional learning-state filter.","type":"string","enum":["","new","learning","review","relearning","mastered"]},"limit":{"default":8,"description":"Number of local flashcards to prepare.","type":"integer","minimum":1,"maximum":30},"mode":{"default":"mixed","description":"Card selection strategy.","type":"string","enum":["mixed","due","new","weak","random"]},"query":{"default":"","description":"Optional phrase, meaning, or usage search filter.","type":"string"}},"required":["excludeRecentlyReviewedDays","includeMastered","learningState","limit","mode","query"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:read"],"sideEffect":"read","title":"Prepare personal vocabulary cards","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_prepare_cards","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_prepare_cards","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_prepare_cards.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Add or enrich up to 100 words directly in the current user's personal vocabulary book while recording their source.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_add","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.add","input":{"fields":[{"description":"Optional source sentence or context.","name":"context","required":false,"type":"string"},{"description":"items","name":"items","required":true,"type":"record[]","fields":[{"description":"Example sentence.","name":"example","required":false,"type":"string"},{"description":"Synonyms, collocations, or related expressions.","name":"expansion","required":false,"type":"unknown[]"},{"description":"Chinese or English meaning.","name":"meaning","required":false,"type":"string"},{"description":"Part of speech.","name":"partOfSpeech","required":false,"type":"string"},{"description":"Word or phrase.","name":"phrase","required":true,"type":"string"},{"description":"Usage note.","name":"usage","required":false,"type":"string"}]},{"description":"Stable source record id when available.","name":"sourceId","required":false,"type":"string"},{"description":"Human-readable source title.","name":"sourceTitle","required":false,"type":"string"},{"description":"Origin such as agent, reading_lexicon, practice, or course.","name":"sourceType","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_vocabulary_personal_add","requestExample":{"context":"","items":[],"sourceId":"","sourceTitle":"","sourceType":"agent"},"requestSchema":{"type":"object","properties":{"context":{"default":"","description":"Optional source sentence or context.","type":"string"},"items":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"example":{"default":"","description":"Example sentence.","type":"string"},"expansion":{"default":[],"description":"Synonyms, collocations, or related expressions.","maxItems":30,"type":"array","items":{"type":"string","minLength":1}},"meaning":{"default":"","description":"Chinese or English meaning.","type":"string"},"partOfSpeech":{"default":"","description":"Part of speech.","type":"string"},"phrase":{"type":"string","minLength":1,"maxLength":300,"description":"Word or phrase."},"usage":{"default":"","description":"Usage note.","type":"string"}},"required":["example","expansion","meaning","partOfSpeech","phrase","usage"],"additionalProperties":false}},"sourceId":{"default":"","description":"Stable source record id when available.","type":"string"},"sourceTitle":{"default":"","description":"Human-readable source title.","type":"string"},"sourceType":{"default":"agent","description":"Origin such as agent, reading_lexicon, practice, or course.","type":"string","minLength":1,"maxLength":80}},"required":["context","items","sourceId","sourceTitle","sourceType"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:write"],"sideEffect":"write","title":"Add personal vocabulary","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_add","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_add","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_add.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Import up to 500 personal vocabulary entries from JSON or CSV. Imported entries start with fresh learning progress and keep an import source record.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_import","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.import","input":{"fields":[{"description":"UTF-8 JSON or CSV text. Import carries vocabulary content only, never review progress.","name":"content","required":true,"type":"string"},{"description":"Format of content.","name":"format","required":true,"type":"string","values":["csv","json"]},{"description":"Stable import id when available; otherwise the service derives one from the content.","name":"sourceId","required":false,"type":"string"},{"description":"Human-readable filename or import title.","name":"sourceTitle","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_vocabulary_personal_import","requestExample":{"content":"<content>","format":"csv","sourceId":"","sourceTitle":""},"requestSchema":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":2000000,"description":"UTF-8 JSON or CSV text. Import carries vocabulary content only, never review progress."},"format":{"type":"string","enum":["csv","json"],"description":"Format of content."},"sourceId":{"default":"","description":"Stable import id when available; otherwise the service derives one from the content.","type":"string"},"sourceTitle":{"default":"","description":"Human-readable filename or import title.","type":"string"}},"required":["content","format","sourceId","sourceTitle"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:write"],"sideEffect":"write","title":"Import personal vocabulary","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_import","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_import","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_import.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Update the editable content of one personal vocabulary entry. Learning state changes only through recorded review results.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_update","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.update","input":{"fields":[{"description":"example","name":"example","required":false,"type":"string"},{"description":"expansion","name":"expansion","required":false,"type":"unknown[]"},{"description":"id","name":"id","required":true,"type":"number"},{"description":"meaning","name":"meaning","required":false,"type":"string"},{"description":"partOfSpeech","name":"partOfSpeech","required":false,"type":"string"},{"description":"phrase","name":"phrase","required":false,"type":"string"},{"description":"usage","name":"usage","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_vocabulary_personal_update","requestExample":{"id":1},"requestSchema":{"type":"object","properties":{"example":{"type":"string"},"expansion":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1}},"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"meaning":{"type":"string"},"partOfSpeech":{"type":"string"},"phrase":{"type":"string","minLength":1,"maxLength":300},"usage":{"type":"string"}},"required":["id"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:write"],"sideEffect":"write","title":"Update personal vocabulary","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_update","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_update","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_update.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Record one review result for a personal vocabulary entry and update spaced-repetition progress.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_record_review","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.record_review","input":{"fields":[{"description":"Personal vocabulary item id.","name":"id","required":true,"type":"number"},{"description":"Review rating for spaced repetition.","name":"rating","required":true,"type":"string","values":["again","hard","good"]},{"description":"Optional answer latency in milliseconds.","name":"responseMs","required":false,"type":"number"}]},"method":"POST","operationName":"ielts_vocabulary_personal_record_review","requestExample":{"id":1,"rating":"again"},"requestSchema":{"type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Personal vocabulary item id."},"rating":{"type":"string","enum":["again","hard","good"],"description":"Review rating for spaced repetition."},"responseMs":{"description":"Optional answer latency in milliseconds.","type":"integer","minimum":0,"maximum":300000}},"required":["id","rating"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:write"],"sideEffect":"write","title":"Record personal vocabulary review","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_record_review","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_record_review","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_record_review.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":true,"description":"Delete one entry from the current user's personal vocabulary book.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_personal_delete","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.personal.delete","input":{"fields":[{"description":"id","name":"id","required":true,"type":"number"}]},"method":"POST","operationName":"ielts_vocabulary_personal_delete","requestExample":{"id":1},"requestSchema":{"type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:write"],"sideEffect":"write","title":"Delete personal vocabulary","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_personal_delete","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_delete","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_personal_delete.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Read compact progress statistics for an enabled built-in IELTS vocabulary set, or per-word progress for up to 50 exact entry ids.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_builtin_progress","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.builtin.progress","input":{"fields":[{"description":"Exact built-in word ids whose per-word progress is needed. Empty returns summary statistics only.","name":"entryIds","required":false,"type":"unknown[]"},{"description":"Built-in wordbook id.","name":"setId","required":false,"type":"string","values":["core","listening","reading"]}]},"method":"POST","operationName":"ielts_vocabulary_builtin_progress","requestExample":{"entryIds":[],"setId":"core"},"requestSchema":{"type":"object","properties":{"entryIds":{"default":[],"description":"Exact built-in word ids whose per-word progress is needed. Empty returns summary statistics only.","maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"setId":{"default":"core","description":"Built-in wordbook id.","type":"string","enum":["core","listening","reading"]}},"required":["entryIds","setId"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:read"],"sideEffect":"read","title":"Read built-in vocabulary progress","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_builtin_progress","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_builtin_progress","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_builtin_progress.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Prepare flashcards from an enabled licensed built-in IELTS vocabulary set.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_builtin_prepare_cards","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.builtin.prepare_cards","input":{"fields":[{"description":"Avoid words reviewed in the last N days when possible.","name":"excludeRecentlyReviewedDays","required":false,"type":"number"},{"description":"Optional built-in wordbook group id.","name":"groupId","required":false,"type":"string"},{"description":"Whether mastered words may be selected.","name":"includeMastered","required":false,"type":"boolean"},{"description":"Optional learning-state filter.","name":"learningState","required":false,"type":"string","values":["","new","learning","review","relearning","mastered"]},{"description":"Number of local flashcards to prepare.","name":"limit","required":false,"type":"number"},{"description":"Card selection strategy.","name":"mode","required":false,"type":"string","values":["mixed","due","new","weak","random"]},{"description":"Optional phrase, meaning, or usage search filter.","name":"query","required":false,"type":"string"},{"description":"Built-in wordbook id.","name":"setId","required":false,"type":"string","values":["core","listening","reading"]}]},"method":"POST","operationName":"ielts_vocabulary_builtin_prepare_cards","requestExample":{"excludeRecentlyReviewedDays":3,"groupId":"","includeMastered":false,"learningState":"","limit":8,"mode":"mixed","query":"","setId":"core"},"requestSchema":{"type":"object","properties":{"excludeRecentlyReviewedDays":{"default":3,"description":"Avoid words reviewed in the last N days when possible.","type":"integer","minimum":0,"maximum":90},"groupId":{"default":"","description":"Optional built-in wordbook group id.","type":"string"},"includeMastered":{"default":false,"description":"Whether mastered words may be selected.","type":"boolean"},"learningState":{"default":"","description":"Optional learning-state filter.","type":"string","enum":["","new","learning","review","relearning","mastered"]},"limit":{"default":8,"description":"Number of local flashcards to prepare.","type":"integer","minimum":1,"maximum":30},"mode":{"default":"mixed","description":"Card selection strategy.","type":"string","enum":["mixed","due","new","weak","random"]},"query":{"default":"","description":"Optional phrase, meaning, or usage search filter.","type":"string"},"setId":{"default":"core","description":"Built-in wordbook id.","type":"string","enum":["core","listening","reading"]}},"required":["excludeRecentlyReviewedDays","groupId","includeMastered","learningState","limit","mode","query","setId"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:read"],"sideEffect":"read","title":"Prepare built-in vocabulary cards","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_builtin_prepare_cards","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_builtin_prepare_cards","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_builtin_prepare_cards.md"}},{"auth":"user","category":{"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},"destructive":false,"description":"Record one review result for an enabled licensed built-in vocabulary entry.","endpoint":"/api/v1/agent/capabilities/ielts_vocabulary_builtin_record_review","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"vocabulary.builtin.record_review","input":{"fields":[{"description":"Built-in word id.","name":"entryId","required":true,"type":"string"},{"description":"Review rating for spaced repetition.","name":"rating","required":true,"type":"string","values":["again","hard","good"]},{"description":"Optional answer latency in milliseconds.","name":"responseMs","required":false,"type":"number"},{"description":"Built-in wordbook id.","name":"setId","required":false,"type":"string","values":["core","listening","reading"]}]},"method":"POST","operationName":"ielts_vocabulary_builtin_record_review","requestExample":{"entryId":"<entryId>","rating":"again","setId":"core"},"requestSchema":{"type":"object","properties":{"entryId":{"type":"string","minLength":1,"maxLength":80,"description":"Built-in word id."},"rating":{"type":"string","enum":["again","hard","good"],"description":"Review rating for spaced repetition."},"responseMs":{"description":"Optional answer latency in milliseconds.","type":"integer","minimum":0,"maximum":300000},"setId":{"default":"core","description":"Built-in wordbook id.","type":"string","enum":["core","listening","reading"]}},"required":["entryId","rating","setId"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["vocabulary:write"],"sideEffect":"write","title":"Record built-in vocabulary review","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_vocabulary_builtin_record_review","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_builtin_record_review","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_vocabulary_builtin_record_review.md"}},{"auth":"public","category":{"description":"公开备考文章与预测命中数据。","id":"prep","title":"备考内容"},"destructive":false,"description":"Search published IELTS Buddy prep guides by keyword or tag. Results are paginated and include a stable prep_guide contentRef. This is the prep-guide module's only search interface.","endpoint":"/api/v1/agent/capabilities/ielts_prep_search_guides","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"prep.search_guides","input":{"fields":[{"description":"Result limit, 1-8.","name":"limit","required":false,"type":"number"},{"description":"Pagination offset.","name":"offset","required":false,"type":"number"},{"description":"Keyword or title.","name":"query","required":false,"type":"string"},{"description":"Optional published guide tag or category.","name":"tag","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_prep_search_guides","requestExample":{"limit":8,"offset":0,"query":"","tag":""},"requestSchema":{"type":"object","properties":{"limit":{"default":8,"description":"Result limit, 1-8.","type":"integer","minimum":1,"maximum":8},"offset":{"default":0,"description":"Pagination offset.","type":"integer","minimum":0,"maximum":9007199254740991},"query":{"default":"","description":"Keyword or title.","type":"string"},"tag":{"default":"","description":"Optional published guide tag or category.","type":"string"}},"required":["limit","offset","query","tag"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["prep:read"],"sideEffect":"read","title":"Search IELTS knowledge articles","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_prep_search_guides","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_prep_search_guides","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_prep_search_guides.md"}},{"auth":"public","category":{"description":"公开备考文章与预测命中数据。","id":"prep","title":"备考内容"},"destructive":false,"description":"Read one full published IELTS Buddy knowledge article by slug.","endpoint":"/api/v1/agent/capabilities/ielts_prep_read_guide","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"prep.read_guide","input":{"fields":[{"description":"Maximum article characters to return.","name":"maxChars","required":false,"type":"number"},{"description":"Character offset returned by the preceding read.","name":"offset","required":false,"type":"number"},{"description":"Published prep guide slug.","name":"slug","required":true,"type":"string"}]},"method":"POST","operationName":"ielts_prep_read_guide","requestExample":{"maxChars":12000,"offset":0,"slug":"guide-slug"},"requestSchema":{"type":"object","properties":{"maxChars":{"default":12000,"description":"Maximum article characters to return.","type":"integer","minimum":1000,"maximum":30000},"offset":{"default":0,"description":"Character offset returned by the preceding read.","type":"integer","minimum":0,"maximum":1000000},"slug":{"type":"string","minLength":1,"description":"Published prep guide slug."}},"required":["maxChars","offset","slug"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["prep:read"],"sideEffect":"read","title":"Read IELTS knowledge article","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_prep_read_guide","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_prep_read_guide","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_prep_read_guide.md"}},{"auth":"public","category":{"description":"公开备考文章与预测命中数据。","id":"prep","title":"备考内容"},"destructive":false,"description":"Search sourced IELTS prediction records and their possible matching questions by record kind, source, exact id, date, month, subject, or keyword. Results preserve source attribution, distinguish dated exam reports from rolling rankings, and include practice targets only for candidates already in the question bank.","endpoint":"/api/v1/agent/capabilities/ielts_prediction_search_hits","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"prediction.search_hits","input":{"fields":[{"description":"Optional exact prediction-record ids returned by an earlier search.","name":"reportIds","required":false,"type":"number[]"},{"description":"Prediction record kind: dated exam reports or a rolling ranking snapshot.","name":"kind","required":false,"type":"string","values":["exam_report","rolling_ranking"]},{"description":"Result limit, 1-12.","name":"limit","required":false,"type":"number"},{"description":"Pagination offset.","name":"offset","required":false,"type":"number"},{"description":"Optional recall, venue, source, or candidate-question keyword.","name":"query","required":false,"type":"string"},{"description":"Optional prediction source slug, such as nine-score.","name":"source","required":false,"type":"string"},{"description":"Optional IELTS subject filter.","name":"subject","required":false,"type":"string","values":["","listening","reading","speaking","writing"]},{"description":"Optional exam date in YYYY-MM-DD.","name":"testDate","required":false,"type":"string"},{"description":"Optional exam month in YYYY-MM; use it instead of one call per day.","name":"testMonth","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_prediction_search_hits","requestExample":{"reportIds":[],"kind":"exam_report","limit":6,"offset":0,"query":"","source":"","subject":"","testDate":"","testMonth":""},"requestSchema":{"type":"object","properties":{"reportIds":{"default":[],"description":"Optional exact prediction-record ids returned by an earlier search.","maxItems":12,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"kind":{"default":"exam_report","description":"Prediction record kind: dated exam reports or a rolling ranking snapshot.","type":"string","enum":["exam_report","rolling_ranking"]},"limit":{"default":6,"description":"Result limit, 1-12.","type":"integer","minimum":1,"maximum":12},"offset":{"default":0,"description":"Pagination offset.","type":"integer","minimum":0,"maximum":9007199254740991},"query":{"default":"","description":"Optional recall, venue, source, or candidate-question keyword.","type":"string"},"source":{"default":"","description":"Optional prediction source slug, such as nine-score.","type":"string"},"subject":{"default":"","description":"Optional IELTS subject filter.","type":"string","enum":["","listening","reading","speaking","writing"]},"testDate":{"default":"","description":"Optional exam date in YYYY-MM-DD.","type":"string","pattern":"^(?:|\\d{4}-\\d{2}-\\d{2})$"},"testMonth":{"default":"","description":"Optional exam month in YYYY-MM; use it instead of one call per day.","type":"string","pattern":"^(?:|\\d{4}-(?:0[1-9]|1[0-2]))$"}},"required":["reportIds","kind","limit","offset","query","source","subject","testDate","testMonth"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["prep:read"],"sideEffect":"read","title":"Search prediction records and candidates","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_prediction_search_hits","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_prediction_search_hits","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_prediction_search_hits.md"}},{"auth":"user","category":{"description":"题库检索、题目读取与个人练习记录。","id":"practice","title":"题库与练习"},"destructive":false,"description":"Search up to six compact IELTS Buddy question-bank candidates by subject, text, difficulty, exact tag ids, or literal tagQueries. Each result includes partId and a stable question_part contentRef. Source claims come only from origin fields; the server returns facts and the local Agent chooses the question.","endpoint":"/api/v1/agent/capabilities/ielts_practice_search_parts","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"practice.search_parts","input":{"fields":[{"description":"Cursor returned by the previous practice.search_parts call.","name":"cursor","required":false,"type":"string"},{"description":"Practice difficulty filter.","name":"difficulty","required":false,"type":"string","values":["","基础","核心","冲刺"]},{"description":"Part ids the local Agent has ruled out for this selection.","name":"excludePartIds","required":false,"type":"number[]"},{"description":"Whether to include course-linked parts.","name":"includeCourseLinked","required":false,"type":"boolean"},{"description":"Result limit, 1-6.","name":"limit","required":false,"type":"number"},{"description":"Whether the caller explicitly wants unseen parts before previously attempted parts.","name":"preferUnseen","required":false,"type":"boolean"},{"description":"Optional free-text title search.","name":"search","required":false,"type":"string"},{"description":"Catalog order or latest-first order chosen by the caller.","name":"sort","required":false,"type":"string","values":["catalog","latest"]},{"description":"Practice subject.","name":"subject","required":false,"type":"string","values":["","listening","reading","speaking","writing"]},{"description":"Exact taxonomy tag ids resolved by practice.list_taxonomy.","name":"tagIds","required":false,"type":"number[]"},{"description":"Literal user-mentioned taxonomy terms. The Tool resolves them to exact tag ids before filtering.","name":"tagQueries","required":false,"type":"unknown[]"}]},"method":"POST","operationName":"ielts_practice_search_parts","requestExample":{"cursor":"","difficulty":"","excludePartIds":[],"includeCourseLinked":false,"limit":6,"preferUnseen":false,"search":"","sort":"catalog","subject":"","tagIds":[],"tagQueries":[]},"requestSchema":{"type":"object","properties":{"cursor":{"default":"","description":"Cursor returned by the previous practice.search_parts call.","type":"string"},"difficulty":{"default":"","description":"Practice difficulty filter.","type":"string","enum":["","基础","核心","冲刺"]},"excludePartIds":{"default":[],"description":"Part ids the local Agent has ruled out for this selection.","maxItems":30,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"includeCourseLinked":{"default":false,"description":"Whether to include course-linked parts.","type":"boolean"},"limit":{"default":6,"description":"Result limit, 1-6.","type":"integer","minimum":1,"maximum":6},"preferUnseen":{"default":false,"description":"Whether the caller explicitly wants unseen parts before previously attempted parts.","type":"boolean"},"search":{"default":"","description":"Optional free-text title search.","type":"string"},"sort":{"default":"catalog","description":"Catalog order or latest-first order chosen by the caller.","type":"string","enum":["catalog","latest"]},"subject":{"default":"","description":"Practice subject.","type":"string","enum":["","listening","reading","speaking","writing"]},"tagIds":{"default":[],"description":"Exact taxonomy tag ids resolved by practice.list_taxonomy.","maxItems":12,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"tagQueries":{"default":[],"description":"Literal user-mentioned taxonomy terms. The Tool resolves them to exact tag ids before filtering.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}}},"required":["cursor","difficulty","excludePartIds","includeCourseLinked","limit","preferUnseen","search","sort","subject","tagIds","tagQueries"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["question_bank:read"],"sideEffect":"read","title":"Search practice parts","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_practice_search_parts","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_search_parts","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_search_parts.md"}},{"auth":"user","category":{"description":"听力精听素材与已提交听写记录。","id":"dictation","title":"听力精听"},"destructive":false,"description":"Search exact listening materials ready for sentence-level dictation by title, difficulty, and literal taxonomy terms. Results are paginated and include factual tags, segment count, and a stable listening_dictation contentRef. The local Agent chooses the material.","endpoint":"/api/v1/agent/capabilities/ielts_dictation_search_materials","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"dictation.search_materials","input":{"fields":[{"description":"Optional dictation difficulty filter.","name":"difficulty","required":false,"type":"string","values":["","基础","核心","冲刺"]},{"description":"Maximum number of dictation-ready listening materials to return.","name":"limit","required":false,"type":"number"},{"description":"Pagination offset returned by the preceding search.","name":"offset","required":false,"type":"number"},{"description":"Optional listening-material title keyword.","name":"search","required":false,"type":"string"},{"description":"Literal user-mentioned taxonomy terms such as a topic, Cambridge book, test set, or Part label.","name":"tagQueries","required":false,"type":"unknown[]"}]},"method":"POST","operationName":"ielts_dictation_search_materials","requestExample":{"difficulty":"","limit":4,"offset":0,"search":"","tagQueries":[]},"requestSchema":{"type":"object","properties":{"difficulty":{"default":"","description":"Optional dictation difficulty filter.","type":"string","enum":["","基础","核心","冲刺"]},"limit":{"default":4,"description":"Maximum number of dictation-ready listening materials to return.","type":"integer","minimum":1,"maximum":6},"offset":{"default":0,"description":"Pagination offset returned by the preceding search.","type":"integer","minimum":0,"maximum":100000},"search":{"default":"","description":"Optional listening-material title keyword.","type":"string"},"tagQueries":{"default":[],"description":"Literal user-mentioned taxonomy terms such as a topic, Cambridge book, test set, or Part label.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}}},"required":["difficulty","limit","offset","search","tagQueries"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["question_bank:read"],"sideEffect":"read","title":"Search dictation materials","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_dictation_search_materials","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_dictation_search_materials","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_dictation_search_materials.md"}},{"auth":"user","category":{"description":"听力精听素材与已提交听写记录。","id":"dictation","title":"听力精听"},"destructive":false,"description":"List the authenticated user's submitted listening-dictation attempts in reverse chronological order. Results contain factual scores, missed-word counts, exact attempt ids, and optional Part entry links; this operation does not diagnose mistakes.","endpoint":"/api/v1/agent/capabilities/ielts_dictation_recent_attempts","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"dictation.recent_attempts","input":{"fields":[{"description":"Maximum number of submitted dictation attempts to return.","name":"limit","required":false,"type":"number"},{"description":"Pagination offset returned by the preceding call.","name":"offset","required":false,"type":"number"},{"description":"Optional exact listening Part id used to filter attempts.","name":"partId","required":false,"type":"number"}]},"method":"POST","operationName":"ielts_dictation_recent_attempts","requestExample":{"limit":12,"offset":0},"requestSchema":{"type":"object","properties":{"limit":{"default":12,"description":"Maximum number of submitted dictation attempts to return.","type":"integer","minimum":1,"maximum":30},"offset":{"default":0,"description":"Pagination offset returned by the preceding call.","type":"integer","minimum":0,"maximum":10000},"partId":{"description":"Optional exact listening Part id used to filter attempts.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["limit","offset"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["practice:read"],"sideEffect":"read","title":"Read recent dictation attempts","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_dictation_recent_attempts","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_dictation_recent_attempts","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_dictation_recent_attempts.md"}},{"auth":"user","category":{"description":"听力精听素材与已提交听写记录。","id":"dictation","title":"听力精听"},"destructive":false,"description":"Read one exact submitted listening-dictation attempt owned by the authenticated user, including paginated sentence snapshots, user entries, expected words, match results, translations, and score facts for local Agent review.","endpoint":"/api/v1/agent/capabilities/ielts_dictation_read_attempt","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"dictation.read_attempt","input":{"fields":[{"description":"Exact attempt id returned by dictation.recent_attempts.","name":"attemptId","required":true,"type":"string"},{"description":"Maximum attempt lines to return.","name":"limit","required":false,"type":"number"},{"description":"Line offset returned by the preceding call.","name":"offset","required":false,"type":"number"}]},"method":"POST","operationName":"ielts_dictation_read_attempt","requestExample":{"attemptId":"00000000-0000-4000-8000-000000000000","limit":20,"offset":0},"requestSchema":{"type":"object","properties":{"attemptId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Exact attempt id returned by dictation.recent_attempts."},"limit":{"default":20,"description":"Maximum attempt lines to return.","type":"integer","minimum":1,"maximum":30},"offset":{"default":0,"description":"Line offset returned by the preceding call.","type":"integer","minimum":0,"maximum":10000}},"required":["attemptId","limit","offset"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["practice:read"],"sideEffect":"read","title":"Read dictation attempt","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_dictation_read_attempt","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_dictation_read_attempt","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_dictation_read_attempt.md"}},{"auth":"user","category":{"description":"题库检索、题目读取与个人练习记录。","id":"practice","title":"题库与练习"},"destructive":false,"description":"Browse active IELTS question taxonomy, resolve ambiguous filter terms, and return availability counts. practice.search_parts accepts literal tagQueries directly, so use this Tool only when taxonomy discovery, disambiguation, or counts are needed.","endpoint":"/api/v1/agent/capabilities/ielts_practice_list_taxonomy","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"practice.list_taxonomy","input":{"fields":[{"description":"Optional difficulty filter used to calculate available counts.","name":"difficulty","required":false,"type":"string","values":["","基础","核心","冲刺"]},{"description":"Whether availability counts include course-linked parts.","name":"includeCourseLinked","required":false,"type":"boolean"},{"description":"Optional question search text used to calculate available counts.","name":"search","required":false,"type":"string"},{"description":"Optional IELTS subject filter.","name":"subject","required":false,"type":"string","values":["","listening","reading","speaking","writing"]},{"description":"Currently selected tag ids used to calculate dependent availability.","name":"tagIds","required":false,"type":"number[]"},{"description":"User-mentioned question-bank category, complete resource-set name, or other taxonomy terms used to find exact tag ids before searching practice.","name":"tagQueries","required":false,"type":"unknown[]"}]},"method":"POST","operationName":"ielts_practice_list_taxonomy","requestExample":{"difficulty":"","includeCourseLinked":false,"search":"","subject":"","tagIds":[],"tagQueries":[]},"requestSchema":{"type":"object","properties":{"difficulty":{"default":"","description":"Optional difficulty filter used to calculate available counts.","type":"string","enum":["","基础","核心","冲刺"]},"includeCourseLinked":{"default":false,"description":"Whether availability counts include course-linked parts.","type":"boolean"},"search":{"default":"","description":"Optional question search text used to calculate available counts.","type":"string"},"subject":{"default":"","description":"Optional IELTS subject filter.","type":"string","enum":["","listening","reading","speaking","writing"]},"tagIds":{"default":[],"description":"Currently selected tag ids used to calculate dependent availability.","maxItems":12,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"tagQueries":{"default":[],"description":"User-mentioned question-bank category, complete resource-set name, or other taxonomy terms used to find exact tag ids before searching practice.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}}},"required":["difficulty","includeCourseLinked","search","subject","tagIds","tagQueries"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["question_bank:read"],"sideEffect":"read","title":"List practice taxonomy","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_practice_list_taxonomy","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_list_taxonomy","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_list_taxonomy.md"}},{"auth":"user","category":{"description":"题库检索、题目读取与个人练习记录。","id":"practice","title":"题库与练习"},"destructive":false,"description":"Read one active question Part without answers, explanations, or listening transcript. The result includes the same stable contentRef used by other consumers.","endpoint":"/api/v1/agent/capabilities/ielts_practice_read_part","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"practice.read_part","input":{"fields":[{"description":"Maximum material characters to return.","name":"maxChars","required":false,"type":"number"},{"description":"Practice part id returned by practice.search_parts.","name":"partId","required":true,"type":"number"}]},"method":"POST","operationName":"ielts_practice_read_part","requestExample":{"maxChars":12000,"partId":1},"requestSchema":{"type":"object","properties":{"maxChars":{"default":12000,"description":"Maximum material characters to return.","type":"integer","minimum":1000,"maximum":30000},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Practice part id returned by practice.search_parts."}},"required":["maxChars","partId"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["question_bank:read"],"sideEffect":"read","title":"Read question Part","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_practice_read_part","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_read_part","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_read_part.md"}},{"auth":"user","category":{"description":"个人口语素材、题目关联与练习历史。","id":"speaking","title":"口语素材"},"destructive":false,"description":"Search the user's active speaking materials by title, story, or tag. Results are compact and paginated, and include a stable speaking_material contentRef. This is the speaking-material module's only search interface.","endpoint":"/api/v1/agent/capabilities/ielts_speaking_materials_search","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"speaking_materials.search","input":{"fields":[{"description":"limit","name":"limit","required":false,"type":"number"},{"description":"offset","name":"offset","required":false,"type":"number"},{"description":"Optional title, story, or tag keyword.","name":"query","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_speaking_materials_search","requestExample":{"limit":6,"offset":0,"query":""},"requestSchema":{"type":"object","properties":{"limit":{"default":6,"type":"integer","minimum":1,"maximum":8},"offset":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"query":{"default":"","description":"Optional title, story, or tag keyword.","type":"string","maxLength":120}},"required":["limit","offset","query"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["speaking:read"],"sideEffect":"read","title":"Search speaking materials","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_speaking_materials_search","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_search","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_search.md"}},{"auth":"user","category":{"description":"个人口语素材、题目关联与练习历史。","id":"speaking","title":"口语素材"},"destructive":false,"description":"Read one exact active speaking material with its linked questions and recent practice history.","endpoint":"/api/v1/agent/capabilities/ielts_speaking_materials_read","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"speaking_materials.read","input":{"fields":[{"description":"materialId","name":"materialId","required":true,"type":"number"}]},"method":"POST","operationName":"ielts_speaking_materials_read","requestExample":{"materialId":1},"requestSchema":{"type":"object","properties":{"materialId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["materialId"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["speaking:read"],"sideEffect":"read","title":"Read speaking material","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_speaking_materials_read","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_read","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_read.md"}},{"auth":"user","category":{"description":"个人口语素材、题目关联与练习历史。","id":"speaking","title":"口语素材"},"destructive":false,"description":"Create one speaking material. Exact question links are optional and are only written when explicitly provided; omitted links remain empty.","endpoint":"/api/v1/agent/capabilities/ielts_speaking_materials_create","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"speaking_materials.create","input":{"fields":[{"description":"coreStory","name":"coreStory","required":true,"type":"string"},{"description":"questionLinks","name":"questionLinks","required":false,"type":"record[]","fields":[{"description":"answerAngle","name":"answerAngle","required":false,"type":"string"},{"description":"outline","name":"outline","required":false,"type":"unknown[]"},{"description":"questionSlotId","name":"questionSlotId","required":true,"type":"number"},{"description":"requiredAdaptation","name":"requiredAdaptation","required":false,"type":"string"}]},{"description":"title","name":"title","required":true,"type":"string"}]},"method":"POST","operationName":"ielts_speaking_materials_create","requestExample":{"coreStory":"<coreStory>","title":"Example"},"requestSchema":{"type":"object","properties":{"coreStory":{"type":"string","minLength":1,"maxLength":4000},"questionLinks":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"answerAngle":{"default":"","type":"string","maxLength":500},"outline":{"default":[],"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"questionSlotId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"requiredAdaptation":{"default":"","type":"string","maxLength":500}},"required":["answerAngle","outline","questionSlotId","requiredAdaptation"],"additionalProperties":false}},"title":{"type":"string","minLength":1,"maxLength":120}},"required":["coreStory","title"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["speaking:write"],"sideEffect":"write","title":"Create speaking material","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_speaking_materials_create","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_create","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_create.md"}},{"auth":"user","category":{"description":"个人口语素材、题目关联与练习历史。","id":"speaking","title":"口语素材"},"destructive":false,"description":"Update one speaking material. Question links change only when exact links are explicitly provided; story edits do not trigger hidden matching.","endpoint":"/api/v1/agent/capabilities/ielts_speaking_materials_update","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"speaking_materials.update","input":{"fields":[{"description":"coreStory","name":"coreStory","required":false,"type":"string"},{"description":"questionLinks","name":"questionLinks","required":false,"type":"record[]","fields":[{"description":"answerAngle","name":"answerAngle","required":false,"type":"string"},{"description":"outline","name":"outline","required":false,"type":"unknown[]"},{"description":"questionSlotId","name":"questionSlotId","required":true,"type":"number"},{"description":"requiredAdaptation","name":"requiredAdaptation","required":false,"type":"string"}]},{"description":"title","name":"title","required":false,"type":"string"},{"description":"id","name":"id","required":true,"type":"number"}]},"method":"POST","operationName":"ielts_speaking_materials_update","requestExample":{"id":1},"requestSchema":{"type":"object","properties":{"coreStory":{"type":"string","minLength":1,"maxLength":4000},"questionLinks":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"answerAngle":{"default":"","type":"string","maxLength":500},"outline":{"default":[],"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"questionSlotId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"requiredAdaptation":{"default":"","type":"string","maxLength":500}},"required":["answerAngle","outline","questionSlotId","requiredAdaptation"],"additionalProperties":false}},"title":{"type":"string","minLength":1,"maxLength":120},"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["speaking:write"],"sideEffect":"write","title":"Update speaking material","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_speaking_materials_update","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_update","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_update.md"}},{"auth":"user","category":{"description":"个人口语素材、题目关联与练习历史。","id":"speaking","title":"口语素材"},"destructive":true,"description":"Archive one speaking material from the active library.","endpoint":"/api/v1/agent/capabilities/ielts_speaking_materials_archive","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"speaking_materials.archive","input":{"fields":[{"description":"id","name":"id","required":true,"type":"number"}]},"method":"POST","operationName":"ielts_speaking_materials_archive","requestExample":{"id":1},"requestSchema":{"type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["id"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["speaking:write"],"sideEffect":"write","title":"Archive speaking material","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_speaking_materials_archive","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_archive","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_speaking_materials_archive.md"}},{"auth":"user","category":{"description":"题库检索、题目读取与个人练习记录。","id":"practice","title":"题库与练习"},"destructive":false,"description":"Read one owned standalone practice record by its sessionId. Mock sessions are rejected. It returns the exact record state, scoring summary, timestamps, and browser route, but not question-level answers or review evidence.","endpoint":"/api/v1/agent/capabilities/ielts_practice_read_session","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"practice.read_session","input":{"fields":[{"description":"Standalone practice session id.","name":"sessionId","required":true,"type":"number"}]},"method":"POST","operationName":"ielts_practice_read_session","requestExample":{"sessionId":1},"requestSchema":{"type":"object","properties":{"sessionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Standalone practice session id."}},"required":["sessionId"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["practice:read"],"sideEffect":"read","title":"Read practice session","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_practice_read_session","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_read_session","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_read_session.md"}},{"auth":"user","category":{"description":"练习和模考的作答证据与复盘快照。","id":"review","title":"练习复盘"},"destructive":false,"description":"List factual standalone-practice and mock records that can be selected for review. Mock records include section-level completion and grading facts; every result exposes an exact review target.","endpoint":"/api/v1/agent/capabilities/ielts_review_recent_activity","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"review.recent_activity","input":{"fields":[{"description":"kind","name":"kind","required":false,"type":"string","values":["all","practice","mock"]},{"description":"limit","name":"limit","required":false,"type":"number"},{"description":"subject","name":"subject","required":false,"type":"string","values":["","listening","reading","speaking","writing"]}]},"method":"POST","operationName":"ielts_review_recent_activity","requestExample":{"kind":"all","limit":12,"subject":""},"requestSchema":{"type":"object","properties":{"kind":{"default":"all","type":"string","enum":["all","practice","mock"]},"limit":{"default":12,"type":"integer","minimum":1,"maximum":30},"subject":{"default":"","type":"string","enum":["","listening","reading","speaking","writing"]}},"required":["kind","limit","subject"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["practice:read"],"sideEffect":"read","title":"Read reviewable activity","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_review_recent_activity","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_review_recent_activity","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_review_recent_activity.md"}},{"auth":"user","category":{"description":"练习和模考的作答证据与复盘快照。","id":"review","title":"练习复盘"},"destructive":false,"description":"Read a paginated immutable review snapshot for one exact standalone practice record or one completed mock section, including answers, grading facts, evidence anchors, and optional bounded source material for local Agent analysis.","endpoint":"/api/v1/agent/capabilities/ielts_review_read_snapshot","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"review.read_snapshot","input":{"fields":[{"description":"Include a bounded snapshot of the completed part's original material when local evidence analysis needs it.","name":"includeMaterial","required":false,"type":"boolean"},{"description":"Maximum review items returned in this page.","name":"limit","required":false,"type":"number"},{"description":"Maximum combined characters returned for original material.","name":"maxMaterialChars","required":false,"type":"number"},{"description":"Pagination offset returned by the preceding review call.","name":"offset","required":false,"type":"number"},{"description":"Return incorrect objective items, or every available submitted response.","name":"scope","required":false,"type":"string","values":["incorrect","all"]},{"description":"Exact review target returned by review.recent_activity.","name":"target","required":true,"type":"unknown"}]},"method":"POST","operationName":"ielts_review_read_snapshot","requestExample":{"includeMaterial":false,"limit":6,"maxMaterialChars":12000,"offset":0,"scope":"incorrect","target":"<target>"},"requestSchema":{"type":"object","properties":{"includeMaterial":{"default":false,"description":"Include a bounded snapshot of the completed part's original material when local evidence analysis needs it.","type":"boolean"},"limit":{"default":6,"description":"Maximum review items returned in this page.","type":"integer","minimum":1,"maximum":6},"maxMaterialChars":{"default":12000,"description":"Maximum combined characters returned for original material.","type":"integer","minimum":1000,"maximum":30000},"offset":{"default":0,"description":"Pagination offset returned by the preceding review call.","type":"integer","minimum":0,"maximum":1000},"scope":{"default":"incorrect","description":"Return incorrect objective items, or every available submitted response.","type":"string","enum":["incorrect","all"]},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"practice"},"sessionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","sessionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"mock_section"},"sessionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"subject":{"type":"string","enum":["listening","reading","speaking","writing"]}},"required":["kind","sessionId","subject"],"additionalProperties":false}],"description":"Exact review target returned by review.recent_activity."}},"required":["includeMaterial","limit","maxMaterialChars","offset","scope","target"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["practice:read"],"sideEffect":"read","title":"Read review snapshot","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_review_read_snapshot","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_review_read_snapshot","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_review_read_snapshot.md"}},{"auth":"user","category":{"description":"题库检索、题目读取与个人练习记录。","id":"practice","title":"题库与练习"},"destructive":false,"description":"List the current user's factual standalone practice records. It supports an Asia/Shanghai date range, subject, status, and pagination and never returns mock sessions. Every result exposes sessionId; use the independent review Domain for question-level evidence. This tool does not recommend or diagnose.","endpoint":"/api/v1/agent/capabilities/ielts_practice_recent_activity","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"practice.recent_activity","input":{"fields":[{"description":"Optional inclusive local date in YYYY-MM-DD. Explicit dates use the Asia/Shanghai calendar and override timeRange.","name":"dateFrom","required":false,"type":"string"},{"description":"Optional inclusive local date in YYYY-MM-DD. Explicit dates use the Asia/Shanghai calendar and override timeRange.","name":"dateTo","required":false,"type":"string"},{"description":"Result limit, 1-30.","name":"limit","required":false,"type":"number"},{"description":"Pagination offset returned by the preceding call.","name":"offset","required":false,"type":"number"},{"description":"Optional record status. Empty returns all statuses.","name":"status","required":false,"type":"string","values":["","in_progress","submitted"]},{"description":"Optional subject filter. Empty returns every subject.","name":"subject","required":false,"type":"string","values":["","listening","reading","speaking","writing"]},{"description":"Relative record range in the Asia/Shanghai calendar. Ignored when dateFrom or dateTo is supplied.","name":"timeRange","required":false,"type":"string","values":["all","today","yesterday","7d","30d"]}]},"method":"POST","operationName":"ielts_practice_recent_activity","requestExample":{"dateFrom":"","dateTo":"","limit":12,"offset":0,"status":"","subject":"","timeRange":"all"},"requestSchema":{"type":"object","properties":{"dateFrom":{"default":"","description":"Optional inclusive local date in YYYY-MM-DD. Explicit dates use the Asia/Shanghai calendar and override timeRange.","type":"string","pattern":"^(?:|\\d{4}-\\d{2}-\\d{2})$"},"dateTo":{"default":"","description":"Optional inclusive local date in YYYY-MM-DD. Explicit dates use the Asia/Shanghai calendar and override timeRange.","type":"string","pattern":"^(?:|\\d{4}-\\d{2}-\\d{2})$"},"limit":{"default":12,"description":"Result limit, 1-30.","type":"integer","minimum":1,"maximum":30},"offset":{"default":0,"description":"Pagination offset returned by the preceding call.","type":"integer","minimum":0,"maximum":1000},"status":{"default":"","description":"Optional record status. Empty returns all statuses.","type":"string","enum":["","in_progress","submitted"]},"subject":{"default":"","description":"Optional subject filter. Empty returns every subject.","type":"string","enum":["","listening","reading","speaking","writing"]},"timeRange":{"default":"all","description":"Relative record range in the Asia/Shanghai calendar. Ignored when dateFrom or dateTo is supplied.","type":"string","enum":["all","today","yesterday","7d","30d"]}},"required":["dateFrom","dateTo","limit","offset","status","subject","timeRange"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["practice:read"],"sideEffect":"read","title":"Read recent practice activity","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_practice_recent_activity","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_recent_activity","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_practice_recent_activity.md"}},{"auth":"user","category":{"description":"现成模考试卷检索与精确组卷。","id":"mock","title":"模考"},"destructive":false,"description":"Search available preset and reusable user mock papers by keyword, category, required subjects, and maximum duration. Each result includes factual paper details and a stable mock_paper contentRef; the local Agent chooses the paper.","endpoint":"/api/v1/agent/capabilities/ielts_mock_search_papers","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"mock.search_papers","input":{"fields":[{"description":"Optional paper category. Empty searches every category.","name":"category","required":false,"type":"string","values":["","entry","basic","intensive","sprint","jian21","xie21","custom"]},{"description":"Maximum number of available mock papers to return.","name":"limit","required":false,"type":"number"},{"description":"Maximum duration in minutes. Zero disables the duration filter.","name":"maxDurationMinutes","required":false,"type":"number"},{"description":"Pagination offset returned by the preceding search.","name":"offset","required":false,"type":"number"},{"description":"Optional title, source, category, or level keyword.","name":"query","required":false,"type":"string"},{"description":"Subjects every returned paper must contain. Pass all four for a full mock.","name":"subjects","required":false,"type":"unknown[]"}]},"method":"POST","operationName":"ielts_mock_search_papers","requestExample":{"category":"","limit":8,"maxDurationMinutes":0,"offset":0,"query":"","subjects":[]},"requestSchema":{"type":"object","properties":{"category":{"default":"","description":"Optional paper category. Empty searches every category.","type":"string","enum":["","entry","basic","intensive","sprint","jian21","xie21","custom"]},"limit":{"default":8,"description":"Maximum number of available mock papers to return.","type":"integer","minimum":1,"maximum":12},"maxDurationMinutes":{"default":0,"description":"Maximum duration in minutes. Zero disables the duration filter.","type":"integer","minimum":0,"maximum":300},"offset":{"default":0,"description":"Pagination offset returned by the preceding search.","type":"integer","minimum":0,"maximum":100},"query":{"default":"","description":"Optional title, source, category, or level keyword.","type":"string"},"subjects":{"default":[],"description":"Subjects every returned paper must contain. Pass all four for a full mock.","maxItems":4,"type":"array","items":{"type":"string","enum":["listening","reading","speaking","writing"]}}},"required":["category","limit","maxDurationMinutes","offset","query","subjects"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["practice:read"],"sideEffect":"read","title":"Search mock papers","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_mock_search_papers","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_mock_search_papers","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_mock_search_papers.md"}},{"auth":"user","category":{"description":"现成模考试卷检索与精确组卷。","id":"mock","title":"模考"},"destructive":false,"description":"Create one reusable user mock paper from exact published Part ids returned by practice.search_parts. The selected Parts must form complete IELTS sections. Returns a stable mock_paper contentRef for catalog entry or study-plan tasks.","endpoint":"/api/v1/agent/capabilities/ielts_mock_create_paper","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"mock.create_paper","input":{"fields":[{"description":"Exact Part ids returned by practice.search_parts.","name":"partIds","required":true,"type":"number[]"},{"description":"Name of the reusable mock paper.","name":"title","required":true,"type":"string"}]},"method":"POST","operationName":"ielts_mock_create_paper","requestExample":{"partIds":[],"title":"Example"},"requestSchema":{"type":"object","properties":{"partIds":{"minItems":1,"maxItems":11,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"description":"Exact Part ids returned by practice.search_parts."},"title":{"type":"string","minLength":1,"maxLength":120,"description":"Name of the reusable mock paper."}},"required":["partIds","title"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["practice:write"],"sideEffect":"write","title":"Create reusable mock paper","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_mock_create_paper","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_mock_create_paper","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_mock_create_paper.md"}},{"auth":"user","category":{"description":"已有写作练习、作文版本与历史批改。","id":"writing","title":"写作记录"},"destructive":false,"description":"Read immutable versions and structured teacher reviews for a saved writing practice. Use the returned practice id and version fields as the only source for writing-practice facts.","endpoint":"/api/v1/agent/capabilities/ielts_writing_read_practice","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"writing.read_practice","input":{"fields":[{"description":"sessionId","name":"sessionId","required":true,"type":"number"}]},"method":"POST","operationName":"ielts_writing_read_practice","requestExample":{"sessionId":1},"requestSchema":{"type":"object","properties":{"sessionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["sessionId"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["writing:read"],"sideEffect":"read","title":"Read writing practice","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_writing_read_practice","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_writing_read_practice","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_writing_read_practice.md"}},{"auth":"user","category":{"description":"学习画像、能力证据与跨产品学习足迹。","id":"learner","title":"学习者数据"},"destructive":false,"description":"List the authenticated user's unified learning footprint with activity, time-range, search, and pagination filters.","endpoint":"/api/v1/agent/capabilities/ielts_footprints_list","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"footprints.list","input":{"fields":[{"description":"Activity kinds to include. Empty includes all kinds.","name":"kinds","required":false,"type":"unknown[]"},{"description":"limit","name":"limit","required":false,"type":"number"},{"description":"offset","name":"offset","required":false,"type":"number"},{"description":"Title or description search query.","name":"query","required":false,"type":"string"},{"description":"timeRange","name":"timeRange","required":false,"type":"string","values":["all","today","7d","30d"]}]},"method":"POST","operationName":"ielts_footprints_list","requestExample":{"kinds":[],"limit":20,"offset":0,"query":"","timeRange":"all"},"requestSchema":{"type":"object","properties":{"kinds":{"default":[],"description":"Activity kinds to include. Empty includes all kinds.","maxItems":6,"type":"array","items":{"type":"string","enum":["chat","file","mock","note","practice","study"]}},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50},"offset":{"default":0,"type":"integer","minimum":0,"maximum":1000},"query":{"default":"","description":"Title or description search query.","type":"string"},"timeRange":{"default":"all","type":"string","enum":["all","today","7d","30d"]}},"required":["kinds","limit","offset","query","timeRange"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["profile:read"],"sideEffect":"read","title":"List learning footprints","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_footprints_list","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_footprints_list","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_footprints_list.md"}},{"auth":"user","category":{"description":"学习画像、能力证据与跨产品学习足迹。","id":"learner","title":"学习者数据"},"destructive":false,"description":"Read the current user's normalized IELTS skill profile and lightweight 30-day evidence summary. For a chronological activity list, use footprints.list; for concrete practice records, use practice.recent_activity.","endpoint":"/api/v1/agent/capabilities/ielts_learner_read_profile","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"learner.read_profile","input":{"fields":[{"description":"Optional skill filter.","name":"skill","required":false,"type":"string","values":["","writing","speaking","reading","listening"]}]},"method":"POST","operationName":"ielts_learner_read_profile","requestExample":{"skill":""},"requestSchema":{"type":"object","properties":{"skill":{"default":"","description":"Optional skill filter.","type":"string","enum":["","writing","speaking","reading","listening"]}},"required":["skill"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["profile:read"],"sideEffect":"read","title":"Read learner profile","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_learner_read_profile","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_learner_read_profile","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_learner_read_profile.md"}},{"auth":"user","category":{"description":"可增量同步的权威学习事件。","id":"learning-events","title":"学习事件"},"destructive":false,"description":"Pull the authenticated user's authoritative append-only learning events after a cursor for a local mirror or web Agent context.","endpoint":"/api/v1/agent/capabilities/ielts_learning_pull_events","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"learning.events.pull","input":{"fields":[{"description":"cursor","name":"cursor","required":false,"type":"number"},{"description":"limit","name":"limit","required":false,"type":"number"}]},"method":"POST","operationName":"ielts_learning_pull_events","requestExample":{"cursor":0,"limit":100},"requestSchema":{"type":"object","properties":{"cursor":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["cursor","limit"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["learning:read"],"sideEffect":"read","title":"Pull learning events","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_learning_pull_events","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_learning_pull_events","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_learning_pull_events.md"}},{"auth":"user","category":{"description":"可增量同步的权威学习事件。","id":"learning-events","title":"学习事件"},"destructive":false,"description":"Idempotently append a batch of explicitly typed Agent-owned learning evidence events. Server-owned practice, mock, course, and browser event namespaces are rejected.","endpoint":"/api/v1/agent/capabilities/ielts_learning_push_events","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"learning.events.push","input":{"fields":[{"description":"events","name":"events","required":true,"type":"record[]","fields":[{"description":"deviceId","name":"deviceId","required":true,"type":"string"},{"description":"eventId","name":"eventId","required":true,"type":"string"},{"description":"eventType","name":"eventType","required":true,"type":"string","values":["agent.learning.evidence_recorded","agent.practice.attempted"]},{"description":"objectId","name":"objectId","required":false,"type":"string"},{"description":"objectType","name":"objectType","required":false,"type":"string"},{"description":"occurredAt","name":"occurredAt","required":true,"type":"string"},{"description":"payload","name":"payload","required":false,"type":"record"},{"description":"schemaVersion","name":"schemaVersion","required":false,"type":"string","values":["1"]},{"description":"skillCodes","name":"skillCodes","required":false,"type":"unknown[]"},{"description":"subjectCode","name":"subjectCode","required":false,"type":"string","values":["listening","reading","writing","speaking"]}]}]},"method":"POST","operationName":"ielts_learning_push_events","requestExample":{"events":[]},"requestSchema":{"type":"object","properties":{"events":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"deviceId":{"type":"string","minLength":1,"maxLength":120},"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"eventType":{"type":"string","enum":["agent.learning.evidence_recorded","agent.practice.attempted"]},"objectId":{"type":"string","maxLength":160},"objectType":{"type":"string","maxLength":80},"occurredAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$"},"payload":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"schemaVersion":{"default":1,"type":"number","const":1},"skillCodes":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"subjectCode":{"type":"string","enum":["listening","reading","writing","speaking"]}},"required":["deviceId","eventId","eventType","occurredAt","payload","schemaVersion","skillCodes"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["learning:write"],"sideEffect":"write","title":"Push learning events","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_learning_push_events","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_learning_push_events","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_learning_push_events.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":false,"description":"List the user's study plans with exact ids, revisions, progress, and latest review so an existing plan can be selected.","endpoint":"/api/v1/agent/capabilities/ielts_study_plans_list","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"study_plans.list","input":{"fields":[{"description":"includeFinished","name":"includeFinished","required":false,"type":"boolean"},{"description":"limit","name":"limit","required":false,"type":"number"}]},"method":"POST","operationName":"ielts_study_plans_list","requestExample":{"includeFinished":false,"limit":50},"requestSchema":{"type":"object","properties":{"includeFinished":{"default":false,"type":"boolean"},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["includeFinished","limit"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["study_plans:read"],"sideEffect":"read","title":"List study plans","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_study_plans_list","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_list","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_list.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":false,"description":"Read one study plan by an exact id returned by the conversation, workspace context, or plan list. Tasks are returned in chronological pages with an opaque nextCursor.","endpoint":"/api/v1/agent/capabilities/ielts_study_plans_get","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"study_plans.get","input":{"fields":[{"description":"planId","name":"planId","required":true,"type":"string"},{"description":"Opaque nextCursor returned by the preceding page. Empty reads the first task page.","name":"cursor","required":false,"type":"string"},{"description":"Maximum plan tasks to return in this page.","name":"limit","required":false,"type":"number"}]},"method":"POST","operationName":"ielts_study_plans_get","requestExample":{"planId":"<planId>","cursor":"","limit":6},"requestSchema":{"type":"object","properties":{"planId":{"type":"string","minLength":1},"cursor":{"default":"","description":"Opaque nextCursor returned by the preceding page. Empty reads the first task page.","type":"string","maxLength":500},"limit":{"default":6,"description":"Maximum plan tasks to return in this page.","type":"integer","minimum":1,"maximum":8}},"required":["planId","cursor","limit"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["study_plans:read"],"sideEffect":"read","title":"Read study plan","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_study_plans_get","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_get","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_get.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":false,"description":"Create a plan from explicit learning tasks. Each task binds one exact selected contentRef, a calendar date, and one of morning, afternoon, or evening; the Tool resolves current content facts and stores the execution snapshot.","endpoint":"/api/v1/agent/capabilities/ielts_study_plans_create","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"study_plans.create","input":{"fields":[{"description":"goal","name":"goal","required":true,"type":"string"},{"description":"计划由多个已选定的学习任务组成。","name":"tasks","required":true,"type":"record[]","fields":[{"description":"已选定且可排入计划的学习内容引用，由内容资源模块提供。","name":"contentRef","required":true,"type":"unknown"},{"description":"任务所在的中国日历日期。","name":"date","required":true,"type":"string"},{"description":"durationMinutes","name":"durationMinutes","required":false,"type":"number"},{"description":"任务时段：morning=上午，afternoon=下午，evening=晚上。不提供具体钟点。","name":"timeSlot","required":true,"type":"string","values":["morning","afternoon","evening"]}]},{"description":"title","name":"title","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_study_plans_create","requestExample":{"goal":"<goal>","tasks":[]},"requestSchema":{"type":"object","properties":{"goal":{"type":"string","minLength":1,"maxLength":2000},"tasks":{"minItems":1,"maxItems":90,"type":"array","items":{"type":"object","properties":{"contentRef":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"question_part"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"mock_paper"},"paperId":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","paperId"],"additionalProperties":false},{"type":"object","properties":{"courseId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kind":{"type":"string","const":"course_section"},"sectionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["courseId","kind","sectionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"listening_dictation"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false}],"description":"已选定且可排入计划的学习内容引用，由内容资源模块提供。"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"任务所在的中国日历日期。"},"durationMinutes":{"default":45,"type":"integer","minimum":5,"maximum":240},"timeSlot":{"type":"string","enum":["morning","afternoon","evening"],"description":"任务时段：morning=上午，afternoon=下午，evening=晚上。不提供具体钟点。"}},"required":["contentRef","date","durationMinutes","timeSlot"],"additionalProperties":false},"description":"计划由多个已选定的学习任务组成。"},"title":{"type":"string","minLength":1,"maxLength":200}},"required":["goal","tasks"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["study_plans:write"],"sideEffect":"write","title":"Create study plan","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_study_plans_create","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_create","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_create.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":false,"description":"Read whether WeChat iLink is connected and whether the user has globally enabled WeChat task notifications. This operation changes no notification settings.","endpoint":"/api/v1/agent/capabilities/ielts_notifications_get_status","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"notifications.get_status","input":{"fields":[]},"method":"POST","operationName":"ielts_notifications_get_status","requestExample":{},"requestSchema":{"type":"object","properties":{},"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["notifications:read"],"sideEffect":"read","title":"Read notification status","verification":{"required":false,"strategy":"none"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_notifications_get_status","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_notifications_get_status","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_notifications_get_status.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":false,"description":"Enable or disable WeChat iLink delivery for exact existing task ids. It requires a connected iLink and globally enabled WeChat notifications, and never changes a plan or task schedule.","endpoint":"/api/v1/agent/capabilities/ielts_notifications_configure_wechat_task_reminders","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"notifications.configure_wechat_task_reminders","input":{"fields":[{"description":"tasks","name":"tasks","required":true,"type":"record[]","fields":[{"description":"enabled","name":"enabled","required":true,"type":"boolean"},{"description":"taskId","name":"taskId","required":true,"type":"number"}]}]},"method":"POST","operationName":"ielts_notifications_configure_wechat_task_reminders","requestExample":{"tasks":[]},"requestSchema":{"type":"object","properties":{"tasks":{"minItems":1,"maxItems":90,"type":"array","items":{"type":"object","properties":{"enabled":{"type":"boolean"},"taskId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["enabled","taskId"],"additionalProperties":false}}},"required":["tasks"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["notifications:write"],"sideEffect":"write","title":"Configure WeChat task reminders","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_notifications_configure_wechat_task_reminders","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_notifications_configure_wechat_task_reminders","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_notifications_configure_wechat_task_reminders.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":false,"description":"Update only a study plan's title or goal. It does not add, remove, reschedule, or complete tasks.","endpoint":"/api/v1/agent/capabilities/ielts_study_plans_update","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"study_plans.update","input":{"fields":[{"description":"goal","name":"goal","required":false,"type":"string"},{"description":"planId","name":"planId","required":true,"type":"string"},{"description":"reason","name":"reason","required":true,"type":"string"},{"description":"title","name":"title","required":false,"type":"string"}]},"method":"POST","operationName":"ielts_study_plans_update","requestExample":{"planId":"<planId>","reason":"<reason>"},"requestSchema":{"type":"object","properties":{"goal":{"type":"string"},"planId":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"title":{"type":"string"}},"required":["planId","reason"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["study_plans:write"],"sideEffect":"write","title":"Update study plan","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_study_plans_update","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_update","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_update.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":false,"description":"Atomically add, edit, remove, or complete exact tasks in one plan. An edit may change an unstarted task's date, morning/afternoon/evening slot, duration, or selected contentRef; after a task starts, its resolved target remains fixed so completion cannot be attributed to different content. It does not change the plan title or goal.","endpoint":"/api/v1/agent/capabilities/ielts_study_plans_change_tasks","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"study_plans.change_tasks","input":{"fields":[{"description":"changes","name":"changes","required":true,"type":"unknown[]"},{"description":"reason","name":"reason","required":true,"type":"string"},{"description":"planId","name":"planId","required":true,"type":"string"}]},"method":"POST","operationName":"ielts_study_plans_change_tasks","requestExample":{"changes":[],"reason":"<reason>","planId":"<planId>"},"requestSchema":{"type":"object","properties":{"changes":{"minItems":1,"maxItems":90,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"add"},"task":{"type":"object","properties":{"contentRef":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"question_part"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"mock_paper"},"paperId":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","paperId"],"additionalProperties":false},{"type":"object","properties":{"courseId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kind":{"type":"string","const":"course_section"},"sectionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["courseId","kind","sectionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"listening_dictation"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false}],"description":"已选定且可排入计划的学习内容引用，由内容资源模块提供。"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"任务所在的中国日历日期。"},"durationMinutes":{"default":45,"type":"integer","minimum":5,"maximum":240},"timeSlot":{"type":"string","enum":["morning","afternoon","evening"],"description":"任务时段：morning=上午，afternoon=下午，evening=晚上。不提供具体钟点。"}},"required":["contentRef","date","durationMinutes","timeSlot"],"additionalProperties":false}},"required":["kind","task"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"update"},"patch":{"type":"object","properties":{"contentRef":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"question_part"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"mock_paper"},"paperId":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","paperId"],"additionalProperties":false},{"type":"object","properties":{"courseId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kind":{"type":"string","const":"course_section"},"sectionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["courseId","kind","sectionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"listening_dictation"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false}]},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"durationMinutes":{"type":"integer","minimum":5,"maximum":240},"timeSlot":{"type":"string","enum":["morning","afternoon","evening"],"description":"任务时段：morning=上午，afternoon=下午，evening=晚上。不提供具体钟点。"}},"additionalProperties":false},"taskId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","patch","taskId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"remove"},"taskId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","taskId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"complete"},"taskId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","taskId"],"additionalProperties":false}]}},"reason":{"type":"string","minLength":1,"maxLength":500},"planId":{"type":"string","minLength":1}},"required":["changes","reason","planId"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["study_plans:write"],"sideEffect":"write","title":"Change study plan tasks","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_study_plans_change_tasks","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_change_tasks","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_change_tasks.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":false,"description":"Replace the unfinished learning tasks of one plan in one transaction. The plan keeps its identity and completed work; each new task uses an exact selected contentRef and a morning, afternoon, or evening slot.","endpoint":"/api/v1/agent/capabilities/ielts_study_plans_replan","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"study_plans.replan","input":{"fields":[{"description":"Complete next arrangement for this plan.","name":"next","required":true,"type":"record","fields":[{"description":"goal","name":"goal","required":true,"type":"string"},{"description":"计划由多个已选定的学习任务组成。","name":"tasks","required":true,"type":"record[]","fields":[{"description":"已选定且可排入计划的学习内容引用，由内容资源模块提供。","name":"contentRef","required":true,"type":"unknown"},{"description":"任务所在的中国日历日期。","name":"date","required":true,"type":"string"},{"description":"durationMinutes","name":"durationMinutes","required":false,"type":"number"},{"description":"任务时段：morning=上午，afternoon=下午，evening=晚上。不提供具体钟点。","name":"timeSlot","required":true,"type":"string","values":["morning","afternoon","evening"]}]},{"description":"title","name":"title","required":false,"type":"string"}]},{"description":"planId","name":"planId","required":true,"type":"string"},{"description":"reason","name":"reason","required":true,"type":"string"}]},"method":"POST","operationName":"ielts_study_plans_replan","requestExample":{"next":{"goal":"<goal>","tasks":[]},"planId":"<planId>","reason":"<reason>"},"requestSchema":{"type":"object","properties":{"next":{"type":"object","properties":{"goal":{"type":"string","minLength":1,"maxLength":2000},"tasks":{"minItems":1,"maxItems":90,"type":"array","items":{"type":"object","properties":{"contentRef":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"question_part"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"mock_paper"},"paperId":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","paperId"],"additionalProperties":false},{"type":"object","properties":{"courseId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kind":{"type":"string","const":"course_section"},"sectionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["courseId","kind","sectionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"listening_dictation"},"partId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","partId"],"additionalProperties":false}],"description":"已选定且可排入计划的学习内容引用，由内容资源模块提供。"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"任务所在的中国日历日期。"},"durationMinutes":{"default":45,"type":"integer","minimum":5,"maximum":240},"timeSlot":{"type":"string","enum":["morning","afternoon","evening"],"description":"任务时段：morning=上午，afternoon=下午，evening=晚上。不提供具体钟点。"}},"required":["contentRef","date","durationMinutes","timeSlot"],"additionalProperties":false},"description":"计划由多个已选定的学习任务组成。"},"title":{"type":"string","minLength":1,"maxLength":200}},"required":["goal","tasks"],"additionalProperties":false,"description":"Complete next arrangement for this plan."},"planId":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1,"maxLength":500}},"required":["next","planId","reason"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["study_plans:write"],"sideEffect":"write","title":"Replan study plan","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_study_plans_replan","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_replan","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_replan.md"}},{"auth":"user","category":{"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"},"destructive":true,"description":"Delete a study plan and all tasks that belong to it.","endpoint":"/api/v1/agent/capabilities/ielts_study_plans_delete","errors":[{"code":40001,"httpStatus":400,"message":"请求参数不符合接口契约"},{"code":40101,"httpStatus":401,"message":"缺少或使用了无效的访问令牌"},{"code":40301,"httpStatus":403,"message":"访问令牌不包含接口所需权限"},{"code":40401,"httpStatus":404,"message":"接口或目标资源不存在"}],"id":"study_plans.delete","input":{"fields":[{"description":"planId","name":"planId","required":true,"type":"string"},{"description":"reason","name":"reason","required":true,"type":"string"}]},"method":"POST","operationName":"ielts_study_plans_delete","requestExample":{"planId":"<planId>","reason":"<reason>"},"requestSchema":{"type":"object","properties":{"planId":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1}},"required":["planId","reason"],"additionalProperties":false},"response":{"description":"接口结果位于 data；code 为 0 表示调用成功。","example":{"code":0,"data":{},"message":"ok"},"schema":{"additionalProperties":false,"properties":{"code":{"const":0,"type":"integer"},"data":{"additionalProperties":true,"description":"该能力返回的业务数据。","type":"object"},"message":{"const":"ok","type":"string"}},"required":["code","message","data"],"type":"object"}},"scopes":["study_plans:write"],"sideEffect":"write","title":"Delete study plan","verification":{"required":true,"strategy":"db_read"},"documentation":{"human":"https://ieltsbuddy.igopx.cn/developers/api/ielts_study_plans_delete","json":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_delete","markdown":"https://ieltsbuddy.igopx.cn/api/public/developer-api/ielts_study_plans_delete.md"}}],"categories":[{"count":2,"description":"课程路线、课程章节与学习进度。","id":"courses","title":"课程学习"},{"count":2,"description":"用户文件以及不同学习资源之间的关联。","id":"resources","title":"资源与文件"},{"count":12,"description":"个人词库、内置词书与复习进度。","id":"vocabulary","title":"词汇"},{"count":3,"description":"公开备考文章与预测命中数据。","id":"prep","title":"备考内容"},{"count":5,"description":"题库检索、题目读取与个人练习记录。","id":"practice","title":"题库与练习"},{"count":3,"description":"听力精听素材与已提交听写记录。","id":"dictation","title":"听力精听"},{"count":2,"description":"练习和模考的作答证据与复盘快照。","id":"review","title":"练习复盘"},{"count":2,"description":"现成模考试卷检索与精确组卷。","id":"mock","title":"模考"},{"count":5,"description":"个人口语素材、题目关联与练习历史。","id":"speaking","title":"口语素材"},{"count":1,"description":"已有写作练习、作文版本与历史批改。","id":"writing","title":"写作记录"},{"count":2,"description":"学习画像、能力证据与跨产品学习足迹。","id":"learner","title":"学习者数据"},{"count":2,"description":"可增量同步的权威学习事件。","id":"learning-events","title":"学习事件"},{"count":9,"description":"学习计划、任务变更与微信任务提醒。","id":"study-plans","title":"学习计划"}],"documentationBaseUrl":"https://ieltsbuddy.igopx.cn/api/public/developer-api","name":"IELTS Buddy Agent API","openapi":"https://ieltsbuddy.igopx.cn/api/public/developer-api/openapi.json","version":"1.0.0"}