Cockpit Agent Sim

by yancent-dao• 97•• Scanned•Claim this listing•Request removal
Developer Toolsautomotivecovesa vssivillm agentsimulation

Agent framework for smart-cockpit apps · 面向智能座舱业务的 Agent 框架:零后端、权限分级、确认流、卡片编排、快慢双层、真实三方集成,加能力=加数据不加代码

Cockpit Agent Sim is an open-source ai agent by yancent-dao, written mainly in TypeScript, with 97 GitHub stars and the MIT license. Its code was last updated Oct 23, 2026.

cockpit-agent-sim

一个面向智能座舱业务的 Agent 框架——车辆信号模拟、Agent 运行时、工具系统、记忆系统、AI HMI、TTS 全栈覆盖,新增场景理想情况下只需要新增一个 Skill。

<p> <img alt="tests" src="https://img.shields.io/badge/tests-1646%20passing-brightgreen" /> <img alt="runtime deps" src="https://img.shields.io/badge/runtime%20deps-0-blue" /> <img alt="backend" src="https://img.shields.io/badge/backend-none-blue" /> <img alt="signals" src="https://img.shields.io/badge/VSS%20signals-114-informational" /> <img alt="tools" src="https://img.shields.io/badge/tools-95-informational" /> <img alt="license" src="https://img.shields.io/badge/license-MIT-black" /> </p>

能干什么 · 快速开始 · 系统架构 · 能力清单 · 设计文档

对话由 LLM 驱动,导航、天气、音乐、新闻、云端 TTS 接的都是真实服务。车机屏是独立窗口,可以直接投屏演示。

车机屏桌面:导航活地图、天气、音乐

后台子 Agent 调研 + 生成式计算器卡调研交付:生成式报告卡(canvas)
后台任务进展与生成式卡生成式研究报告卡

控制面板:模型选择、车辆状态注入、全链路追踪

能干什么

  • 说话控车:车窗、空调、座椅、氛围灯、除雾……"后排冷了"知道该关谁的窗。涉及安全的(车门、后备箱)先弹卡确认。
  • 真地图导航:搜地点、设目的地、对比路线、沿途搜充电站、导航中加删途经点不动终点。地图是高德活瓦片。
  • 听歌看闻:音乐、电台、播客、新闻、短视频,一套播控通吃;歌词逐句点亮,放完自动接下一首。
  • 给孩子讲绘本:孩子照片画成主角、边讲边画插图、孩子说的点子写进故事,成书导出 H5 发给家人。
  • 旅行管家:一起把攻略从"想去云南"聊成按天日程,认可后自动盯机票酒店价,每天天气对齐到行程。
  • 自动化情景:"每天四点开空调""下雨自动关窗",用嘴建规则,规则可导出分享。
  • 生成式卡片:报告、图表、小游戏——模型现写 HTML 上屏,有消毒和溢出闸兜底。
  • 记得住你:"记住我喜欢 24 度"下次直接照做;几十轮长对话有议程位保线,不会聊着聊着忘了正在干嘛。

[!NOTE] 这是一个演示底座而非量产产品:没有 ASR(文字输入代替)、没有后端、机酒价格暂为带标记的示例数据。它优化的目标是"每次做新 Demo 不用从零开始"。

快速开始

npm install
cp .env.local.example .env.local   # 填入你自己的 Key(见文件内注释)
npm run dev                        # → http://localhost:5173

没有做 ASR,直接在控制面板里输入文字即可。

[!TIP] Key 的门槛很低:一个 OpenRouter 的 Key 就能启动。导航和地图要高德的 Key;天气、音乐、电台、歌词、汇率、股价用的都是免注册服务,什么都不用配。

[!NOTE] 模型有能力下限:架构假设模型会正常调用 tools 字段里的工具、能遵守约 30 行的技能章法。gemini-2.5-flash 档及以上实测可用;GPT-4.1-mini 这类轻量档会出现"假装执行"(不调工具空口报成),不建议用于演示。

npm test               # 批量测试
npx tsc --noEmit       # 类型检查
npm run pilot [场景id] # 自动化体验闭环(⚠ 消耗真实 API 额度,不进 npm test)
node build-single.mjs  # 单文件版 → single/(双击可开;注意读不到 .env,Key 相关能力不可用)

系统架构

五条核心原则(改任何东西前先对照):

  • Tools = 机制,Agent = 策略。 Tool 里不写一行"贴心逻辑":climate.set 绝不因为外面冷就自己多加两度。贴心归 Prompt,这样才分得清是模型聪明还是代码作弊。
  • 平台不认识任何具体 Agent。 Agent 靠 agents/*/manifest.ts 注册。验收标准:新建一个只挂 3 个 Tool 的 Agent,不改平台一行代码就能跑。
  • 不发明命名,不发明协议。 能对齐行业标准的全部对齐(见下表)。
  • 拒绝必须携带机器可读原因。 统一返回 {code, message, suggestion},message 写人话不写日志——它会直接进模型上下文,模型拿着它下一轮就能自己修。缺参一次报全、枚举错附可选值、找不到的 id 附现有清单,都是同一条的推论。
  • 「该执行什么」和「该显示什么」是两类决策,分开建模。 执行归工具与约束,显示归卡片规则与编排器,互不越界。

四条硬约束:

  • 零后端。 只有开发服务器带一个纯转发代理来绕开 CORS,代理里只做转发、改 header、藏 Key 三件事,出现业务逻辑即违规。
  • 加能力 = 加数据,不加代码。 新增信号、约束、Tool 都只动 src/config/;需要动 src/core/ 就说明抽象错了。
  • 代码里不许出现意图分支。 出现 if (intent === ...)、关键词匹配即违规。模型表现不好,只改 Prompt 或工具描述,不在代码里兜底。允许的是数据形状与系统状态判据:{item:[…]} 剥壳、"24"→24、poiId 按 B 开头识别、"pending 确认时新输入直达慢层"——协议适配和状态分支不是意图分支。
  • 运行时依赖为零。 只有 vite、vitest、typescript 三个 devDependency。加依赖前先问:不加它要多写多少行?少于 200 行就自己写。(唯一例外:导航卡的高德地图 JS SDK,运行时 <script> 动态加载,不进 package.json。)

不发明协议:标准对齐表

这里的东西对齐的行业标准为什么
113 个车辆信号COVESA VSS v6.0 路径命名信号是行业的公共语言,自造命名迁移成本全在未来
工具元数据AAOS 属性三元组(access/changeMode/permission)车机属性该有的描述维度早被定义过了
灰权限二次确认流MCP 的 MRTR(确认 token 往返)确认不是弹窗,是带 token 的协议往返,模型和人各按各的通道回答
播控工具面MediaSession / MPRemoteCommandCenter传输控制(播放/暂停/跳转)与内容源解耦是移动端验证过的分法
卡片体系Generative UI 的 Static 模式 + CarPlay/AAOS 模板方法论模板卡保证可预测,生成式卡(canvas)是唯一例外且有闸(见下)

"纯转发代理":

flowchart LR
    fe["前端 api(name)"] -- "http(s) 开发/预览" --> proxy["vite 同源代理<br/>只转发 · 改 header · 塞 Key"]
    fe -- "file:// 单文件版" --> up["三方服务"]
    proxy --> up
    proxy -.->|"国外服务才绕,国内的直连"| vpn["走系统代理出口"]
    vpn --> up
flowchart TB
    subgraph UI["两块屏(同源双窗口,BroadcastChannel 通信)"]
        director["src/director/ 控制面板<br/>模型选择 · 车辆状态注入 · 全链路追踪"]
        screen["src/screen/ 车机屏(可投屏)<br/>卡片桌面 · 语音条 · 横幅 · 覆盖层"]
    end
    subgraph AGENT["src/agent/ 快慢双层 pipeline"]
        fast["快层:小模型<br/>彩权限工具先斩后奏"]
        slow["慢层:大模型<br/>校验 · 接力 · 交付"]
        sub["子 Agent(task.delegate)<br/>独立轮次预算,后台并行"]
        fast -- "agent.handoff<br/>共享 thread" --> slow
        slow --> sub
    end
    subgraph PLATFORM["平台机制(不认识任何具体 Agent)"]
        tools["src/tools/ 注册表<br/>权限三级 · MRTR 确认流 · 返回契约"]
        core["src/core/ 状态引擎<br/>信号 Store · 约束引擎 · 过渡仿真"]
        cards["src/cards/ 卡片编排<br/>布局仲裁 · 抢占 · 等位区 · 布局重力"]
        state["src/state/ 记忆四级<br/>瞬时 · 会话 · 领域 · 长期"]
    end
    subgraph DATA["src/config/ 数据(越多越好)+ agents/ 实例"]
        config["114 信号(VSS) · 95 Tool · 约束 · 卡片规则/模板契约"]
        manifest["manifest + 人设 + 快层微人设 + 技能包"]
    end
    integrations["src/integrations/ 三方适配<br/>高德 · Open-Meteo · iTunes/播客 · Radio Browser · NewsAPI · Pexels · 腾讯行情 · frankfurter · lrclib · 豆包 TTS · OpenRouter 图像/视频/音乐"]

    director --> AGENT
    screen <--> cards
    AGENT --> tools --> core --> cards
    tools --> integrations
    AGENT --> state
    DATA -.声明注入.-> PLATFORM
    DATA -.注册.-> AGENT

Agent 的组成部分

快慢双层。 简单任务快层执行,复杂任务慢层执行。(快层目前默认关闭、全走慢层——实测可用的小模型要么比大模型还慢、要么爱把工具调用念出来;机制全保留,面板一键可开,换到真正快的模型即可启用。)快层会把执行结果转交给慢层:两层共享同一份对话记录,慢层对着快层的调用记录做校验,错了就改,剩下的活接着干;否则保持沉默。快层碰到自己无权调的工具会立刻收手转交,被拒的工具名直接预载给慢层。

sequenceDiagram
    participant U as 用户 / 系统事件
    participant S as Scheduler
    participant F as 快层
    participant R as Registry
    participant L as 慢层
    U->>S: 说话 · 点屏 · 自动任务触发
    Note over S: 人说话立刻放行,系统事件排队等人说完再插队
    S->>F: 交给快层
    F->>R: 调彩权限工具
    R-->>F: 结果
    F-->>U: 能办的立刻办、立刻回话
    F->>L: 转交(不管办没办成)
    L->>R: 校验、补办剩下的
    L-->>U: 该说话就说,没啥可补充就沉默
    Note over F,L: Turn 记着这轮撞墙几次、谁说过话,快慢两层共用一份

工具按粒度装载,没有"域"的概念。 慢层常驻的只有一份工具目录(每个工具一行简介)和几个高频管道(语音、卡片、记忆),要用什么就调 tools.load 获取。转交、装载、取技能、派任务这几个元工具由 pipeline 注入,不占业务工具表。装载有三层记忆:会话级 LRU(load 过的下一轮还在手边,闲置 8 轮自动退场)、技能包附带装载(取剧本顺带拿到工具,零额外轮次)、sticky 声明(工具自带 [信号,比较,值] 三元组,导航中"取消导航"、播放中"别放了"这类应急动作自动在手边,不用先装载一轮)。

回合有自我保护。 每轮对话是一个 Turn 对象:同工具同错误连撞 3 次直接跳到收场轮(撤掉工具逼模型说人话);相邻两轮同参数且上轮已成功的调用被熔断(防止原地打转烧轮次);出声权是单一谓词——快层已报过结果、慢层没干新活,慢层的复述在文本和工具两条通道上同时被静音。收场兜底也讲诚实:收尾一轮全失败就说"没弄成",不许因为中途办成过一件事而说"办好了"。

耗时的重活派给子 Agent。 联网查证、写调研报告这类活走 task.delegate:怎么拆归慢层模型决定,一轮连发几个就是并行;后台模式立即返回,完成后自动交付(卡片、播报、横幅),不叫醒主模型。子 Agent 有边界:深度只有一层,并发最多三个,没有危险权限,也不能出声。

Skill 工具是能力,技能是章法,人设是品格,记忆是事实——四样东西各归各的地方,不许混。技能包放在 agents/main-agent/skills/(导航、媒体、调研报告、儿童绘本),平时只有目录行在场,用到了再取正文执行。

用户随时可以插话。 每轮对话带标签。用户追加一句,旧的那轮活照干完、只是不再抢占,迟到的话术降级进横幅;清空会话则整轮直接作废。

记忆分四级。 瞬时是信号 Store(对齐 VSS);会话是域仓结论加对话滑窗摘要,由小模型异步压缩;领域是播放队列、历史、收藏,落 localStorage;长期是用户明说要记的偏好,注入 system,最多十条。偏好的自动学习不做。 长对话(几十轮的功能巡演)另有三道保线:压缩滞后批量化(攒够十轮才折叠一次,摘要不被反复复印丢细节);议程位 agenda.set——模型给自己记一条跨轮主线备忘,每轮随状态注入回到眼前、不经过压缩;上下文三层化——system 只放逐字稳定的人设与目录(prompt cache 整段命中),车辆状态、桌面、议程这些易变态以 system 角色贴在消息末尾,每轮现拼现贴。

flowchart LR
    a["瞬时<br/>信号 Store"] --> b["会话<br/>结论 + 对话摘要"] --> c["领域<br/>队列/历史/收藏"] --> d["长期<br/>用户明说的偏好"]

约束引擎只认三元组。 行车约束(行驶中禁视频、高速上开窗要确认)全部写成 [信号路径, 比较符, 值] 的声明式三元组,不支持嵌套逻辑;复杂场景写具名谓词函数登记白名单,绝不引入 eval 或表达式引擎。约束的解释权在返回里:拦下时带人话原因和替代建议,模型拿着就能换个说法跟用户交代。

权限分黑灰彩三级。 彩色直接执行;灰色要二次确认,判据是不可逆、涉安全、涉钱、涉他人;黑色永不注册给 Agent,比如刹车、转向。

flowchart LR
    a["模型调灰权限工具<br/>比如开车门"] --> b["先不执行<br/>弹一张确认卡"]
    b --> c{"用户点确认还是拒绝"}
    c -- "确认" --> d["真正执行"]
    c -- "拒绝" --> e["按用户说的来,不执行"]

语音链路

全系统只有一个"麦克风"。任何出声(对话回复、绘本朗读、后台任务交付、确认询问)先过纯函数仲裁:优先级 confirm > turn > story > delivery,外加两条特例——对话不许打断绘本正文(画外音一插,故事就断了,直接丢弃不排队);被确认打断的绘本页从头重读(从半句接着念,孩子接不上)。用户开口不是声源,是最高打断力。任何 TTS 出声时媒体自动 duck 到 20%,乘在用户音量上、不动设定本身。

Barge-in 不是取消。 用户追加一句话时,旧一轮的活照干完(车控这类明确要做的事绝不因为用户多说了一句而丢掉),只是不再抢麦——迟到的话术降级进横幅;只有清空会话才让副作用一起作废。这两种"作废"处置相反,混为一谈的每个地方都出过实拍事故。

长播报不跑马灯:按标点切成分句窗,跟着音频时间轴逐句换页;界面上的 AI 形象是一枚星河角标,状态到形态是纯函数(思考加速旋转、聆听收拢、确认停转变琥珀),确认按钮是确认卡选项的投影,点它和点卡片走完全相同的通道。

卡片编排

桌面不归模型管。桌面等于车辆状态的函数:导航卡、车控回执这些基础内容由声明式规则驱动,编排器负责调和,模型全程零参与;模型只为规则覆盖不到的临场内容建卡(候选列表、生成式小组件),而且走同一套布局仲裁,不开后门。栅格 12×8,十四种形状,每种形状只有一种几何,跨度与起点都取偶数——空隙的宽高必为偶数,最小的卡永远填得上,不出现死缝。不追求最优解,追求可预测解:演示者能预判结果比空间利用率重要。

  • 紧急度正交于来源。 kind 说谁建的卡,urgency 说这事有多急,权重差一个数量级——车门没关且已起步的安全告警不会和天气卡按同一优先级抢位。critical 放不下改走覆盖层,绝不返回"桌面满了"。
  • 三条显示通道。 卡片放内容;横幅放解释与回执("车窗已开"是对动作的说明不是内容,一句话换一张常驻卡是设计失败);覆盖层留给危急告警和全屏内容。判据只看卡片自己的字段。
  • 模板契约三件套。 每张模板声明数据形状(fields)、形态(forms:每个档位放哪些块)、交互(interactions:哪里可点、点了走哪条路由)。两条形态纪律有测试盯着:相邻两档的内容必须不同(同样的东西放大只产生空白);阅读方向决定长轴(从上往下读的列表用竖卡,从左往右比的对比用横卡)。
  • 触控三类路由,手势层零决策。 回答类(点候选)合成一句话进对话;操控类(播放键)直调工具不叫醒模型;管理类(关卡、缩放)直调桌面记入用户意愿层。尺寸优先级:物理(仲裁缩放)> 意愿(用户手调,sizeLocked 防止 ETA 一跳就弹回)> 建议(模板默认)。
  • 等位区与重力。 放不下是状态不是失败:卡进等位区排队,有空位自动上台,用户点名可召回;布局重力让卡片只往左上流动、方向唯一,洞不会攒在桌面中间。仲裁有事务边界——试探只动副本,成功才提交。
  • 生成式卡是唯一的例外,且有五道闸。 card.generate 让模型直出 HTML/SVG,渲染进 Shadow DOM——它和"可预测优先"正面冲突,产品明知并接受,代价被闸住:① 消毒白名单(解析重序列化,fail-closed)② 容量契约(各档位像素和约几行一起给——模型不做排版计算,但会数行)③ 尺寸自愈升档 ④ 轻微溢出整体缩放(一屏看全优于动手)⑤ 严重溢出开纵向滚动(行驶中不给——滚动要眼睛加手),滚也救不了才剥到纯文字。
  • 版式必须用眼睛看。 gallery.html 把每张模板在每个声明档位下真渲染一遍按真实像素排开——"相邻两档内容不同"单测只能验到数据块,挤不挤、空不空只有眼睛知道。它抓到过的真问题:条件块留下的空白文本节点在 flex 容器里变成匿名 flex item,指标卡因此溢出 6px。
flowchart LR
    a["一张卡要上桌"] --> b{"试放得下吗?<br/>先在草稿上试,不动真桌面"}
    b -- "放得下" --> c["提交,桌面真的变"]
    b -- "放不下" --> d{"能挤走优先级更低的卡吗"}
    d -- "能" --> c
    d -- "不能" --> e["先进等位区排队<br/>不是消失,是排队"]
    e -- "腾出空位了" --> c
    c --> f["卡片们再往左上靠一靠<br/>不留散落的空洞"]

三个长出来的场景

平台的验收方式是往上长场景。三个代表性场景各自带出了一块通用机制:

自动化任务(替代情景模式)。 用嘴建规则:"每天四点开空调""下雨自动关窗""开车时推荐股票"。规则是用户数据(localStorage 可导出分享),引擎是约束引擎的姐妹——边沿触发(条件从不满足到全满足那一刻 fire 一次,时间条件带"日期+分钟"身份,隔天同一时刻算新沿);动作分两类:{tool,args} 机制直调零模型,{prompt} 委托叫醒模型跑一句。

AI 儿童绘本「路上的故事」。 孩子是主角,车窗外的真实世界是布景,故事是大人、孩子和 AI 一段段接着写的。角色一致性靠一条架构选择:每页都拿定妆照当参考图,不是拿上一页——误差不累积,某页画歪单页重画($0.04)不用整本重来。一章的插图并发画(串行 61 秒,并发 25 秒),本页图没到就先不开口(差 12 秒封顶——画面和声音对不上它就只是有声书)。定妆必须停下来等家长点头,这是全书唯一要把关的一步。交付物是自包含 H5 单文件,封底单列"孩子想出来的",让他看见书里有他写的部分。

旅行助手。 分步共建不审讯:宽泛目的地先给几条线收敛,选定交按天草稿,一轮最多问一个问题,用户认可即自动接管盯价——收尾告知不询问,opt-in 变 opt-out。一张 trip 卡是一次旅行的家:卡 = f(旅行任务仓),选线、全文、盯价、到价四个阶段全是数据形状不是状态机;随意变动是常态(改行程重交完整日程、换住宿段撤旧盯新),没有"锁定"。确认后机制自动拉每日天气对齐到行程日,预报窗外的日子存 null 不编造。

质量闭环

  • TDD,先红后绿,1646 个测试全绿才算完成。真实抓到过的 bug:批量写入的部分提交、通配符跨段不匹配、eta 超 range 导致途经点静默蒸发。
  • Pilot 用户机器人。 npm run pilot 用独立 LLM 扮"坐在车里的真人"(可以给性格指令,比如"被连环问就发火")跟真实 Agent 跑多轮对话,落盘结构化快照。检测分两级:硬伤(导航中无导航卡、话术说"第几个"但屏上没编号、thinking 标签泄漏)机器判,好不好由人对着评审清单看。机器人只负责说人话,不做判断。
  • 全链路可观测。 每轮 trace 带 runId 与来源标签(语音/点屏/系统事件),prompt 字数分三段报(稳定 system + 易变状态 + 工具 schema),记忆压缩折了几轮、摘要多长都有事件。排查不靠猜。

设计文档

关键决策都有记录:需求规格说明书 · 工程约束 · Agent 开发流程(从旅行助手完整开发提炼,每条注意事项背后都有一次实拍事故)· 市场调研与对标,以及 docs/superpowers/specs/ 下的专题设计(卡片编排、尺寸自适应、媒体域、快慢双层、等位区、自动化、语音链路、融合旅行卡等十余篇)。

能力清单(95 Tools)

下面是全部工具,按域分组。⚡ 表示挂在快层,能先斩后奏。

<details> <summary><b>车控与车辆状态</b>(19 个)</summary>
Tool说明权限快层
vehicle.getState读车辆当前状态彩⚡
capability.list屏上显示能力目录彩
window.set控制车窗开度彩⚡
climate.set空调温度风量出风彩⚡
seat.set座椅加热通风调节彩⚡
steeringWheel.set方向盘加热彩⚡
sunroof.set天窗开合彩⚡
mirror.set后视镜折叠与加热彩⚡
airPurifier.set空气净化器开关档位彩⚡
wiper.set雨刷挡位彩⚡
defrost.set前后风挡除雾彩⚡
door.set开关车门,需确认灰
trunk.set开关后备箱,需确认灰
chargePort.set开关充电口,需确认彩
childLock.set儿童锁开关彩⚡
ambientLight.set氛围灯开关颜色亮度彩⚡
fragrance.set香氛开关香型浓度彩⚡
light.set大灯与后备箱灯彩⚡
driveSetting.set驾驶模式回收悬架彩⚡
</details> <details> <summary><b>导航 · 地图 · 天气 · 路况(高德 + Open-Meteo)</b>(15 个)</summary>
Tool说明权限快层
navigation.search搜地点出候选列表彩
navigation.setDestination设目的地开始导航彩
navigation.modifyRoute导航中改路不动终点:加删途经点、换偏好彩
navigation.searchAlong沿途周边搜服务点彩
navigation.compareRoutes多路线方案对比彩
navigation.control暂停恢复结束导航彩
navigation.getStatus读导航当前状态彩
map.control地图缩放/全览/2D3D/朝向彩
traffic.status查路况拥堵情况彩
region.districts查周边区县列表彩
places.save存常用地址彩
places.list列常用地址彩
places.remove删一条常用地址彩
weather.query查城市天气预报彩⚡
weather.nearby查周边区县天气,一张对比卡不刷屏彩⚡
</details> <details> <summary><b>媒体(传输控制共用,内容源各自)</b>(19 个)</summary>
Tool说明权限快层
media.control播放暂停上下曲彩⚡
media.volume调音量彩⚡
media.seek跳播放进度彩
media.mode循环随机播放模式彩⚡
media.queue看播放队列彩
media.favorite收藏当前曲目彩
media.favorites列收藏列表彩
music.search搜歌不播彩
music.play搜歌并播放入队彩⚡
radio.search搜网络电台彩
radio.play搜台并播放彩⚡
podcast.search搜播客节目彩
podcast.play播播客最新一集彩⚡
news.headlines今日头条新闻彩⚡
news.search按话题搜新闻彩⚡
news.read念一条新闻正文彩
video.search搜短视频彩
video.play搜视频并播放彩⚡
web.search联网搜索现查彩
</details> <details> <summary><b>AI 生成(OpenRouter,与绘本插图同一个 Key)</b>(2 个)</summary>
Tool说明权限快层
video.generateAI 生成一段视频彩
music.generateAI 写一段音乐彩
</details> <details> <summary><b>自动化任务(替代情景模式)</b>(5 个)</summary>
Tool说明权限快层
automation.create建自动任务(情景模式)彩
automation.list看已有的自动任务彩
automation.toggle启停自动任务彩
automation.delete删自动任务彩
automation.run立即运行一条任务彩
</details> <details> <summary><b>生活资讯(零 Key)</b>(4 个)</summary>
Tool说明权限快层
stock.query查股价指数汇率彩⚡
holiday.query查节假日调休彩
poem.today来一句今日诗词彩
time.now查现在的日期时间星期(模型没有内置时钟)彩⚡
</details> <details> <summary><b>语音与屏幕</b>(12 个)</summary>
Tool说明权限快层
theme.set切日间/夜间主题彩⚡
wallpaper.set换壁纸(可 AI 生成)彩
voice.speak主动播报一句话彩
voice.ask向用户提问出选择卡彩
voice.config换朗读音色、调语速彩
card.show建卡片上屏(现成模板)彩
card.generate生成式卡:模型直出 HTML/SVG 自由排版或 iframe 小应用彩
card.update更新卡片数据彩
card.resize调卡片大小彩
card.dismiss撤掉卡片彩
card.focus高亮提示一张卡彩
desktop.getLayout读桌面布局彩
</details> <details> <summary><b>记忆</b>(3 个)</summary>
Tool说明权限快层
memory.remember记住用户偏好彩
memory.forget删掉记住的偏好彩
memory.list列出记住的事彩
</details> <details> <summary><b>旅行助手(分步共建攻略 · 机酒盯价 · 每日天气)</b>(8 个)</summary>
Tool说明权限快层
travel.plan交攻略:宽泛目的地先给几条线收敛,选定后按天日程上卡彩
travel.create建旅行任务并配齐监控,返回首采参考价彩
travel.watch盯一项(机票/分段住宿/汇率),可设阈值彩
travel.unwatch撤一项监控,样本保留彩
travel.list查全景:30 天事实(极值/分位/走向),可钻取走势卡彩
travel.refresh立即采一轮最新价彩
travel.update改日期/人数/目的地,监控与天气自动重算彩
travel.delete删任务连监控,需确认灰

价格数据源说明:汇率是 frankfurter 真实历史;机票酒店暂为带标记的示例数据(RapidAPI 免费层 + 国内覆盖 + 历史价格三者不可兼得),接口已留槽,Key 到位换一行。

</details> <details> <summary><b>AI 儿童绘本「路上的故事」</b>(7 个)</summary>
Tool说明权限快层
story.profile记下孩子的名字年龄和这次想讲明白的道理彩
story.cast把孩子的照片画成故事主角彩
story.begin开一本新绘本,讲第一章彩
story.continue接着孩子说的往下写一章彩
story.finish收尾成书彩
story.export把这本书做成可以发给别人的网页彩
story.page翻页/暂停(屏幕按钮直调,不叫醒模型)彩
</details> <details> <summary><b>安全边界</b>(1 个)</summary>
Tool说明权限快层
brake.apply黑名单占位:刹车这类工具永不注册给 Agent,留在配置里只为标出禁区黑
</details>

Key 与第三方服务

服务用途Key条款须知
OpenRouter对话 + 绘本插图必填图像 $0.07/张左右,面板有花费显示
高德开放平台导航、地名解析、活地图可选,两个 Key控制台需把 localhost 加入域名白名单
Open-Meteo天气(逐时/多日)零 Key数据 CC BY 4.0,对外材料请注明 weather data by Open-Meteo
iTunes Search音乐(30 秒试听)零 Key仅试听片段,无完整播放
Radio Browser网络电台零 Key社区节点,可用性有波动
NewsAPI新闻可选⚠ 免费层仅限 localhost,禁止部署
Pexels短视频可选—
豆包(火山)TTS云端 TTS(主对话流式播报)可选Key 经代理注入 header,不进前端;控制台需给 Key 授权语音资源
讯飞开放平台云端超拟人 TTS(豆包之前的方案,单文件版仍可用)可选,三个值免费额度以控制台为准
frankfurter汇率(含 30 天真实历史)零 Key—
lrclib歌词(播放器逐句显示)零 Key—
腾讯行情股价指数零 Key—

Key 放本地的 .env.local(已 gitignore)或控制面板,不经过任何后端。

隐私须知(绘本功能)

[!IMPORTANT] 「路上的故事」会把儿童照片发给第三方图像模型(OpenRouter)生成动漫形象。项目本身不存照片——没有后端,public/hero/ 也在 gitignore 里——但照片会发给模型。演示或部署给别人用之前,需确认监护人知情同意;界面里的授权勾选是一次性动作,不是默认开关。

明确不做

后端、数据库、多屏、CAN 报文级仿真、偏好自动学习——明确不做,理由见 docs/工程约束_v1.1.md。

License

MIT。接的第三方服务各有各的条款,见上面那张表。

Cockpit Agent Sim alternatives

View more →

Similar ai agents in Developer Tools, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Cockpit Agent Sim (this page)
yancent-dao
97MITOct 23, 2026Scanned, no flagged issues
Deepseek Harness
deepseek-ai
268kMITOct 30, 2026Scanned, no flagged issues
Ponytail
DietrichGebert
182kMITOct 29, 2026Scanned, no flagged issues
Orca
stablyai
112kMITNov 1, 2026Scanned, no flagged issues
Deer Flow
bytedance
85kMITNov 1, 2026Scanned, no flagged issues
Ruflo
ruvnet
80kMITNov 1, 2026Scanned, no flagged issues