mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-07 18:05:30 +08:00
36 lines
11 KiB
JSON
36 lines
11 KiB
JSON
{
|
||
"sample_id": "continue-thinking-snapshot-replay-20260405",
|
||
"captured_at_utc": "2026-04-05T17:30:43Z",
|
||
"source": "admin/dev/captures-manual-save",
|
||
"request": {
|
||
"chat_session_id": "0a3c904d-5761-4cf0-ae51-9b41c1c78f1e",
|
||
"parent_message_id": null,
|
||
"prompt": "<|System|>\n**Memories**\nThese are memories stored via the memory_tool that you can reference in future conversations.\n[]\n\n\n**Recent Chats**\nThese are some of the user's recent conversations. You can use them to understand user preferences:\n[\n {\n \"title\": \"\",\n \"last_chat\": \"2026年4月6日\"\n },\n {\n \"title\": \"\",\n \"last_chat\": \"2026年4月6日\"\n },\n {\n \"title\": \"江青判刑原因\",\n \"last_chat\": \"2026年4月5日\"\n },\n {\n \"title\": \"GitHub個人檔案\",\n \"last_chat\": \"2026年4月4日\"\n },\n {\n \"title\": \"DS2API架構圖\",\n \"last_chat\": \"2026年4月4日\"\n },\n {\n \"title\": \"Markdown範例\",\n \"last_chat\": \"2026年4月4日\"\n },\n {\n \"title\": \"廣州天氣概況\",\n \"last_chat\": \"2026年4月4日\"\n },\n {\n \"title\": \"Xbox手把SVG\",\n \"last_chat\": \"2026年4月4日\"\n },\n {\n \"title\": \"清除记忆\",\n \"last_chat\": \"2026年4月4日\"\n },\n {\n \"title\": \"SVG與安卓XML示例\",\n \"last_chat\": \"2026年4月4日\"\n }\n]\n\n\n\n\n\n\n\n\n\n\nYou have access to these tools:\n\nTool: memory_tool\nDescription: The memory tool stores long-term information across conversations.\nUse `action` to control the operation: `create` (add), `edit` (update), `delete` (remove).\n- No relevant record: `create` + `content`\n- Existing relevant record: `edit` + `id` + `content`\n- Outdated/irrelevant record: `delete` + `id`\nMemories will automatically appear in the <memories> tag in later conversations.\nDo not store sensitive information (e.g., ethnicity, religion, sexual orientation, political views, sex life, criminal records).\nYou may store: preferred name, preferences, plans, work-related notes, chat style preferences, first chat time, etc.\nDo not show memory content directly in the conversation unless the user explicitly asks.\nToday is 2026年4月6日.\nSimilar memories should be merged; prefer updating existing records.\n\nExamples:\n{\"action\":\"create\",\"content\":\"User prefers brief replies and is more active on weekends.\"}\n{\"action\":\"edit\",\"id\":12,\"content\":\"User’s preferred name updated to “A-Xing”, prefers Chinese replies.\"}\n{\"action\":\"delete\",\"id\":7}\nParameters: {\"properties\":{\"action\":{\"description\":\"Operation to perform: create, edit, or delete\",\"enum\":[\"create\",\"edit\",\"delete\"],\"type\":\"string\"},\"content\":{\"description\":\"The content of the memory record (required for create/edit)\",\"type\":\"string\"},\"id\":{\"description\":\"The id of the memory record (required for edit/delete)\",\"type\":\"integer\"}},\"required\":[\"action\"],\"type\":\"object\"}\n\nTool: search_web\nDescription: Search the web for up-to-date or specific information.\nUse this when the user asks for the latest news, current facts, or needs verification.\nGenerate focused keywords and run multiple searches if needed.\nToday is 2026年4月6日.\n\nResponse format:\n- items[].id (short id), title, url, text\n\nCitations:\n- After using results, add `[citation,domain](id)` after the sentence.\n- Multiple citations are allowed.\n- If no results are cited, omit citations.\n\nExample:\nThe capital of France is Paris. [citation,example.com](abc123)\nThe population is about 2.1 million. [citation,example.com](abc123) [citation,example2.com](def456)\nParameters: {\"properties\":{\"query\":{\"description\":\"search keyword\",\"type\":\"string\"},\"topic\":{\"description\":\"search topic (one of `general`, `news`, `finance`)\",\"enum\":[\"general\",\"news\",\"finance\"],\"type\":\"string\"}},\"required\":[\"query\"],\"type\":\"object\"}\n\nTool: scrape_web\nDescription: Scrape a URL for detailed page content.\nUse this when the user requests content from a specific page or when search snippets are insufficient.\nAvoid using it for common questions unless the user asks.\nParameters: {\"properties\":{\"url\":{\"description\":\"url to scrape\",\"type\":\"string\"}},\"required\":[\"url\"],\"type\":\"object\"}\n\nTool: eval_javascript\nDescription: Execute JavaScript code using QuickJS engine (ES2020). The result is the value of the last expression in the code. For calculations with decimals, use toFixed() to control precision. Console output (log/info/warn/error) is captured and returned in 'logs' field. No DOM or Node.js APIs available. Example: '1 + 2' returns 3; 'const x = 5; x * 2' returns 10.\nParameters: {\"properties\":{\"code\":{\"description\":\"The JavaScript code to execute\",\"type\":\"string\"}},\"required\":[\"code\"],\"type\":\"object\"}\n\nTool: get_time_info\nDescription: Get the current local date and time info from the device. Returns year/month/day, weekday, ISO date/time strings, timezone, and timestamp.\nParameters: {\"properties\":{},\"type\":\"object\"}\n\nTool: clipboard_tool\nDescription: Read or write plain text from the device clipboard. Use action: read or write. For write, provide text. Do NOT write to the clipboard unless the user has explicitly requested it.\nParameters: {\"properties\":{\"action\":{\"description\":\"Operation to perform: read or write\",\"enum\":[\"read\",\"write\"],\"type\":\"string\"},\"text\":{\"description\":\"Text to write to the clipboard (required for write)\",\"type\":\"string\"}},\"required\":[\"action\"],\"type\":\"object\"}\n\nTool: text_to_speech\nDescription: Speak text aloud to the user using the device's text-to-speech engine. Use this when the user asks you to read something aloud, or when audio output is appropriate. The tool returns immediately; audio plays in the background on the device. Provide natural, readable text without markdown formatting.\nParameters: {\"properties\":{\"text\":{\"description\":\"The text to speak aloud\",\"type\":\"string\"}},\"required\":[\"text\"],\"type\":\"object\"}\n\nTool: ask_user\nDescription: Ask the user one or more questions when you need clarification, additional information, or confirmation. Each question can optionally provide a list of suggested options for the user to choose from. The user may select an option or provide their own free-text answer for each question. The answers will be returned as a JSON object mapping question IDs to the user's responses.\nParameters: {\"properties\":{\"questions\":{\"description\":\"List of questions to ask the user\",\"items\":{\"properties\":{\"id\":{\"description\":\"Unique identifier for this question\",\"type\":\"string\"},\"options\":{\"description\":\"Optional list of suggested options for the user to choose from\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"question\":{\"description\":\"The question text to display to the user\",\"type\":\"string\"},\"selection_type\":{\"description\":\"Answer type: text (free text input, default), single (select exactly one option), multi (select one or more options)\",\"enum\":[\"text\",\"single\",\"multi\"],\"type\":\"string\"}},\"required\":[\"id\",\"question\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"questions\"],\"type\":\"object\"}\n\nTOOL CALL FORMAT — FOLLOW EXACTLY:\n\n<tool_calls>\n <invoke name=\"TOOL_NAME_HERE\">\n <parameter name=\"PARAMETER_NAME\"><![CDATA[PARAMETER_VALUE]]></parameter>\n </invoke>\n</tool_calls>\n\nRULES:\n1) Use the <tool_calls> XML wrapper format only.\n2) Put one or more <invoke> entries under a single <tool_calls> root.\n3) Use <invoke name=\"...\"> for the tool name and <parameter name=\"...\"> for each argument.\n4) All string values should use <![CDATA[...]]> when they may contain code, markup, JSON, paths, prompts, or other special characters.\n5) Objects use nested XML inside a <parameter>; arrays may repeat <item> children.\n6) Numbers, booleans, and null stay plain text.\n7) Use only the parameter names in the tool schema. Do not invent fields.\n8) Do NOT wrap XML in markdown fences. Do NOT output explanations, role markers, or internal monologue.\n\nPARAMETER SHAPES:\n- string => <parameter name=\"x\"><![CDATA[value]]></parameter>\n- object => <parameter name=\"x\"><field>...</field></parameter>\n- array => <parameter name=\"x\"><item>...</item></parameter>\n- number/bool/null => plain text\n\n【WRONG — Do NOT do these】:\n\nWrong 1 — mixed text after XML:\n <tool_calls>...</tool_calls> I hope this helps.\nWrong 2 — old canonical tags or raw payloads:\n <tools><tool_call><tool_name>read_file</tool_name><param>{\"path\":\"x\"}</param></tool_call></tools>\nWrong 3 — Markdown code fences:\n ```xml\n <tool_calls>...</tool_calls>\n ```\n\nRemember: The ONLY valid way to use tools is the <tool_calls>...</tool_calls> XML block at the end of your response.\n\n【CORRECT EXAMPLES】:\n\nExample A — Single tool:\n<tool_calls>\n <invoke name=\"read_file\">\n <parameter name=\"path\"><![CDATA[src/main.go]]></parameter>\n </invoke>\n</tool_calls>\n\nExample B — Two tools in parallel:\n<tool_calls>\n <invoke name=\"read_file\">\n <parameter name=\"path\"><![CDATA[src/main.go]]></parameter>\n </invoke>\n <invoke name=\"write_to_file\">\n <parameter name=\"path\"><![CDATA[output.txt]]></parameter>\n <parameter name=\"content\"><![CDATA[Hello world]]></parameter>\n </invoke>\n</tool_calls>\n\nExample C — Tool with nested XML parameters:\n<tool_calls>\n <invoke name=\"ask_followup_question\">\n <parameter name=\"question\"><![CDATA[Which approach do you prefer?]]></parameter>\n <parameter name=\"follow_up\"><item><text><![CDATA[Option A]]></text></item><item><text><![CDATA[Option B]]></text></item></parameter>\n </invoke>\n</tool_calls>\n<|end▁of▁instructions|>\n\n<|User|>\n<|User|>\n在一个类似2022×2022的花园的每个方格中,最初都有一个高度为0的树,园丁和伐木工交替进行以下游戏,园丁首先开始:园丁选择花园中的一个方格,该方格上的每棵树以及周围至多八个方格中的所有树都会增长一单位,伐木工随后选择板上的四个不同方格,这些方格上正高的树都会减少一单位,称一棵树为雄伟的,如果其高度至少为10的六次方.确定园丁能够确保板上最终有K棵雄伟的树,无论伐木工如何操作,求最大的K<|end▁of▁sentence|><|end▁of▁sentence|>",
|
||
"ref_file_ids": [],
|
||
"search_enabled": false,
|
||
"thinking_enabled": true
|
||
},
|
||
"capture": {
|
||
"label": "deepseek_completion",
|
||
"url": "https://chat.deepseek.com/api/v0/chat/completion",
|
||
"status_code": 200,
|
||
"response_bytes": 786382,
|
||
"rounds": [
|
||
{
|
||
"label": "deepseek_completion",
|
||
"url": "https://chat.deepseek.com/api/v0/chat/completion",
|
||
"status_code": 200,
|
||
"response_bytes": 649506
|
||
},
|
||
{
|
||
"label": "deepseek_continue",
|
||
"url": "https://chat.deepseek.com/api/v0/chat/continue",
|
||
"status_code": 200,
|
||
"response_bytes": 136876
|
||
}
|
||
],
|
||
"contains_finished_token": true,
|
||
"finished_token_count": 2
|
||
}
|
||
}
|