A single-user personal AI assistant — always-on, multi-entry (Web / CLI / Voice), shared session & memory.
Four tools with complete JSON schemas and detailed descriptions in Chinese. Naming follows verb_noun pattern (voice_dispatch_task, voice_list_sessions, voice_query_session, voice_cancel_task). Descriptions are comprehensive (200-500+ chars) and explain WHEN to use each tool. However, descriptions are in Chinese, making them inaccessible to English-speaking LLMs and violating the principle that descriptions must be prompt-engineered for the model. Parameter descriptions are present but verbose. No explicit error handling guidance or recovery paths documented. Output schemas are not formally documented, only inferred from description text. Missing tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE vs READ_ONLY).
喊停一个后台任务:排队中直接取消;运行中会打断当前这轮并标记已取消(已做完的部分不会丢,只是不再继续);已结束的任务不用停,会如实告诉你它已经结束了。session_id 从 voice_list_sessions 或 voice_query_session 拿,留空则停最近派发的那个后台任务。用户说「停掉/别跑了/取消那个任务」时用这个工具真正去停,并把停没停掉、任务现在的状态转述给用户——不要只嘴上答应。
把一件重活派给后台独立会话去干:要写改代码/文件、要查多处资料、要拆成多步才能做完、或要跑命令/脚本的事都算(按工作量信号判断,不要靠猜耗时),立即返回不等它跑完;派发前系统会先检查最近派过的任务:如果发现标题与本次可能有承接关系的既有任务,会返回候选提示让你改用 voice_continue_session 续接(先续接不新开,见【派活规则】8)——是延续就改调 voice_continue_session,确实跟它没有承接关系、是全新主题时再重调本工具派发;你应该同时口头告诉用户「好,我去办,好了叫你」这类话。title:20 字以内短名(会出现在播报/任务卡片里);prompt:完整任务描述(后台会话看不到当前对话上下文,必须把要做的事说完整);cwd:任务要在哪个项目目录下干活,可传项目根目录的绝对路径;不传时系统会按当前对话匹配项目,匹配不到再落到 vococo 默认仓库。只要是 git 仓库就自动开独立 worktree+分支,绝不会动主目录。model:用户明确指定要用哪个模型跑这个任务时才传(如「用 opus 跑」),可选值:kimi-k3、deepseek-chat、claude-3-5-sonnet-20241022、claude-3-opus-20250219、claude-3-haiku-20250307、gpt-4o;没听到用户点名要哪个模型就不要传——任务【不会】继承当前对话的模型,而是自动兜底到已配置的第三方供应商(优先 DeepSeek,没有已配置的第三方才落 config.MODEL 官方默认)。
列出最近的会话——origin='task' 查后台任务(voice_dispatch_task 派的独立后台活),origin='web' 查网页端对话(浏览器打开的 Web UI 里的对话)。两者是完全不同的东西,用于先确认用户说的「刚才那个/网页那个」具体是哪一类里的哪一个,拿到 session_id 后配合 voice_query_session/voice_continue_session 使用。
查一个会话(后台任务或网页端对话都可以,自动识别是哪一种,不用先判断)的当前状态。session_id 从 voice_list_sessions 拿;留空则查最近一次派发的后台任务。返回原始字段拼的一句话,你要把它压成更口语的转述再讲给用户,不要念「状态/进展」这类字段名。
All tool descriptions are in Chinese, making them inaccessible to English-speaking LLMs and violating prompt-engineering best practices. Descriptions must be in the language the LLM understands.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. voice_dispatch_task and voice_cancel_task are marked WRITE; voice_list_sessions and voice_query_session are READ_ONLY. Annotations enable safer agent planning.
Output schemas not formally documented. voice_dispatch_task returns task status/ID but schema is inferred from description only. voice_query_session returns 'a sentence' but structure is undefined. LLMs cannot plan downstream calls without knowing return field names and types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
No error handling guidance. If voice_dispatch_task fails to find a project directory, or voice_cancel_task tries to cancel a non-existent session, no recovery path is documented. Errors should guide the LLM on next steps.
Parameter descriptions are verbose and contain implementation details (e.g., 'worktree+分支' in voice_dispatch_task cwd param). Descriptions should focus on what the LLM needs to know, not internal mechanics.