Skip to content

About

一款会总结,会干活的智能体平台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

KairoPilot

KairoPilot 是面向本地工作流的桌面 AI 工作台,基于 Electron、React 和 TypeScript。项目与任务是工作组织单元,无需创建或切换智能体。

统一工作台

  • 侧栏按项目及独立会话组织任务;每组最近 5 条,其余折叠。会话单行,删除按钮之外的操作放入右键菜单。
  • 任务统一查询,分别保存消息、草稿、附件、引用、成果、归档和未读状态。
  • 输入框直接选择当前任务的模型和执行策略。新任务继承工作台默认值;修改默认值不改写已创建任务。
  • 执行策略为仅对话、只读分析、审批后执行、可信自动化;实际能力同时受全局限制和当前目录授权约束。
  • 主任务串行执行。A 执行期间可以查看 B、编辑草稿、回看成果或把补充要求加入任务队列,正常完成后依次处理。
  • 用户消息靠右、助手消息靠左;输入框保持紧凑。草稿后台保存,正常退出前等待保存或处理恢复,不在输入框常驻展示保存状态。
  • 关闭窗口仍隐藏到托盘,保留当前对话与运行。真正退出应用时先保存草稿,再阻止新执行、取消运行和待审批操作;排队消息保留为待人工继续。异常结束后启动同样清理运行、暂停和待审批状态,旧批准/续跑请求不能执行。每次进程启动进入空白新对话,历史记录和旧草稿保留供手动查看;窗口刷新及托盘恢复不另建对话。
  • 文件、成果、Diff 与验证在右侧按需打开,执行过程在聊天内展开。齿轮进入独立设置页,集中通用、模型、执行权限、规则记忆、技能、插件与使用统计。

界面与使用统计

顶栏按侧栏与对话区分开:侧栏展开按钮位于左侧区域右端,文件夹图标、会话标题与操作菜单位于对话区左上;输入栏左侧为附件和执行策略,右侧为当前模型及发送。下拉选择使用应用内主题弹层,支持键盘操作、模型搜索和上下避让;日期筛选使用居中日历。系统目录选择仍使用操作系统文件对话框。

工作台与设置页共用底部名称及齿轮入口;项目内会话行不额外缩进,名称与项目名称对齐。设置页采用分组卡片与左右对齐的设置行。“执行记录”入口已移除,当前任务的执行详情、审批和底层审计记录保留。使用统计展示累计 Tokens、单日峰值、活跃天数、执行轮次、输入/输出用量,以及最近 365 天活动、近 7/30 天模型趋势和模型排行;使用统计不再展示运行与设备详情,也不轮询设备资源与本地模型状态;任务执行过程仍在聊天中按需展开查看。

新会话首次消息被接收后,默认名称会自动替换为首条用户消息的单行摘要(最多 80 个字符),侧栏超出宽度显示省略号;后续追问不改名,手动重命名优先保留。已有默认名称也按首条用户消息显示,无需模型生成标题。

用量沿用现有可见对话与辅助请求的已报告值,包含只读委派和记忆提取,排除工具调用中间消息及本地预算预留值。累计指标与模型排行聚合全量历史,热力图和趋势按本机时区分日;活跃天数与执行轮次按 Run 创建日期统计。热力图日期和模型排行可进入对应明细,不提供未采集的最长聊天时长或费用估算。

开始一个任务

  1. 在设置中配置模型服务,并选择工作台默认模型和权限上限。
  2. 创建项目并明确选择目录,或直接新建独立会话。新独立任务使用 ~/.kairopilot/workbench/tasks/<sessionId>。
  3. 在输入框选择本任务的模型与执行策略,输入目标,可添加附件或文件引用。“+”菜单可选择任务模板和工作方式。
  4. 发送按钮在当前任务运行时切换为方块,点击停止,结束后恢复箭头;输入补充要求后可点击“加入队列”或按 Enter 排队。审批仍在原输入框位置处理,等待授权时也可停止整个运行;停止动作统一在发送按钮位置。审批通过记录中的 run/session 定位,不依赖正在查看的任务。
  5. 在文件与成果面板检查交付物,或在聊天内展开当前轮次执行过程;用量明细可按项目/任务/模型/时间筛选。

每轮执行以对话流展示真实中途说明与简短工具活动,按发生顺序排列。发送位置在执行中切换为方块停止,过程区不提供暂停按钮。单个工具调用的输入、结果及失败更新在同一条活动上,详情点击后读取;重试产生独立活动。完成后过程整体收起为“用时”,最终答复独立显示。

输入框支持技能补全:在行首输入 / 列出已安装且允许用户调用的技能,继续输入可匹配名称、ID 和描述。列表最多显示五项,其余可滚动查看;↑↓ 切换时自动滚动到选中项,支持鼠标、Enter/Tab 选择,Esc 关闭。选中后以蓝色图标和技能名称独立显示,可继续输入正文、添加其他技能,点击移除按钮或在正文开头按 Backspace 移除最后一个技能。草稿和发送仍使用 /技能ID 显式调用文本,恢复草稿时重建技能标记;选择本身不执行技能。工作台技能覆盖同 ID 的公共技能,允许手动调用的 manual-only 技能也可选。

发送后的用户消息同样显示蓝色技能标记和独立正文。新消息在现有会话元数据中保存技能 ID 与名称,重开任务、技能改名或卸载后仍保留发送时的标记;原始调用文本不变。旧消息按当前已安装技能重建展示,不迁移历史数据。标记表示用户指定的技能,不代表执行成功。

审批卡片默认“允许本次”,右侧下拉固定提供“允许本次”和“本会话始终允许”,不随操作增加菜单项或范围说明。主进程根据当前动作自动归类:联网搜索按搜索能力复用,换关键词、数量和语言不重复询问;网页读取按工具和站点(协议、主机、端口)复用;文件读取、列目录及搜索共享授权目录内的读取许可,写入与编辑共享该目录内的修改许可,读取与修改分别授权。Shell 对可识别的 Node/Python 版本及帮助查询、Git 查询操作复用,同类安全参数变化不重新询问;Git 仅识别 status、ls-files、log 的限定选项,以及显式关闭外部 diff/textconv 的 diff 查询。切换目录、命令配置、写出选项或执行代码等不继承查询授权。此分类用于减少确认,不能替代操作系统沙箱。删除、敏感文件修改、带自定义请求头/请求体的 HTTP 请求及无法可靠归类的工具或脚本只提供单次批准。授权仅用于当前对话,可跨轮次和应用重启保留;旧参数匹配授权不会自动扩大为新授权,需要重新批准。任务/全局权限变更或项目授权撤销后清除,删除对话时一并清理。每次调用仍执行目录、命令、网络与重定向权限检查;会话授权不能覆盖明确禁止规则。授权决定及来源保存在审批记录中,后续工具调用继续写入审计。

展示记录直接保存到 conversation_items,用 run_id、消息 ID、工具调用 ID 与轮内顺序关联。实时显示与历史回放共用这些记录,不根据时间、用户输入或内部步骤重建。现有数据库仅新增展示记录表,不转换、覆盖或删除旧历史;新流程只展示直接保存的轮次记录。聊天展示、分页、流式更新和滚动统一使用新会话记录;过程区不展示运行详情、内部步骤、规则指纹或上下文预算。工具活动显示具体动作与目标,展开仅查看该次调用输出。内部运行步骤继续服务执行恢复与审计。审批、安全检查与模型上下文沿用各自的数据。

目录在任务创建后固定。需要换目录时创建新任务或使用项目菜单“从新目录继续”,不搬动项目文件。模型或端点失效时需重新选择模型,不会静默切换服务。

任务模板与计划确认(W4.1 / W4.2)

输入框“+ → 任务模板与工作方式”提供通用任务、代码修复、文档整理和资料分析模板,也可另存自定义模板。模板仅含工作方法、输出要求和验收标准,不包含模型、目录或权限。任务保存应用时的模板快照;修改模板不会改写已有任务,需要时显式重新应用新版本。

选择“先规划后执行”后,本轮模型可以定向读取、列目录、搜索已授权项目及读取任务附件,再生成计划;不自动扫描项目。规划阶段不提供写入、Shell、网络、插件、技能或委派工具,模型伪造其他调用也会被主进程拒绝。仅对话任务不能借规划模式获得项目读取权限。任务原有读取审批继续生效,批准只读调查后仍停留在规划阶段。

计划按目标、调查依据、修改范围、执行步骤、交付物、验收标准和待确认事项组织。成功的文件读取或搜索保存参数和结果指纹,最多 32 项;单次规划文件读取限 256 KiB,较大文件应定向搜索。审阅页可展开查看调查路径,确认前重查这些依据;文件内容或搜索结果变化时须重新规划。

计划卡片支持审阅、修改、拒绝和“确认并开始执行”。确认请求绑定任务、计划 ID 和修订号;模型、权限、规则、任务消息或引用元数据变化会使原确认失效。旧计划被后续计划或配置变更替代后无法执行。确认计划仍需遵守原有目录限制和工具审批,不会授予额外权限。

计划与修订记录持久化到 SQLite。重启保留未确认的完整计划,不自动执行;中断的规划需取消暂停运行后重新生成,不能用恢复或重试接口将规划检查点转成执行。规划和实施分别记录 Run 与用量,现有统计可查询;不提供缺乏价格依据的费用估算。

任务续办与交付验收

运行时发送补充要求会加入当前任务的待处理队列,支持编辑、删除和上下移动,每任务最多 20 条、每条正文最多 30,000 字符,保留附件与文件引用。排队时原子保存消息并清理对应版本草稿;正式接收时原子记录消息与运行归属,避免重复消费。切换正在查看的会话不会改变队列归属,全部主任务仍共用串行执行限制。

本轮正常完成后自动按顺序续办;失败、暂停、取消、待确认计划、设置或引用变化会保留消息等待处理。待确认计划需先审阅或拒绝;“检查并继续”会展示消息及当前模型、执行策略,再按当前配置重新验证。重启保留未发送消息并暂停队列,需要显式继续;已接收的消息不重放。队列仅代表后续回合,不向正在执行的模型中途注入指令。

成果面板默认聚焦本轮交付物、文件变更、实际检查记录与待核对事项,历史记录折叠;本轮未记录检查时不会沿用历史通过状态。文件可以预览、查看本轮变更边界,并引用回输入框继续修改,引用不会自行执行新任务。模板验收标准保存在运行快照,后续修改模板不会改变旧回合展示。运行完成、命令成功和人工验收是分别判断的状态。

产物与验证仍以应用记录的文件工具操作及显式验证命令为依据;外部程序或 Shell 生成但未记录的文件可从文件面板查看,不自动冒充已登记交付物。当前预览支持沿用已有文本、Markdown、图片与 HTML 能力,未新增 Office/PDF 渲染服务。

项目自动记忆与只读委派(W4.3 / W4.4)

项目菜单“项目自动记忆”或设置中的“规则与记忆”提供独立管理入口。每个项目默认关闭,开启后自动整理完成的实施回合中的用户原文,不扫描项目文件,不从规划回合或失败、取消的运行中提取。后台请求使用来源任务配置的模型;模型绑定/端点变化时停止该次提取,不静默换模型。可能产生额外 Token 用量。

记忆保留来源任务、运行、用户原文摘录和修订号;相同内容去重,同主题的相反内容作为待确认候选。候选不进入召回;手动采用后替代旧记录。支持更正、忘记、撤销,忘记的主题不会因后续重复原文重新自动生成。关闭后停止后续提取和召回,已有条目仍可管理。

每项目最多 200 条有效记忆与待确认冲突,遗忘和被替代的历史单独保留,不占此容量。满额时在调用模型前跳过,管理页显示原因;遗忘部分条目后,后续回合可继续整理。撤销遗忘会保留原来的冲突状态;若期间已有同主题新版本,也恢复为待确认冲突。旧记录未保存遗忘前状态时,恢复后保守地要求确认。

新回合只按相关性选取当前项目的少量有效记忆,独立会话和其他项目无法召回这些条目。每轮运行及待确认计划固定所用记忆快照;后续新记忆不改变已审阅计划,正式规则和工具审批继续校验。更正或忘记不会回溯改写既有对话、计划和执行快照。自动记忆是可能过期的背景资料,不能提升权限,也不会改写项目规则或全局偏好。

召回结合主题键、关键词和有限的中英文同义词,如“上线 / 发布 / deploy”;最多六条、3200 字符,仍是本地规则匹配,不代表任意语义理解。提取记录按项目筛选后取最近 100 条,失败、停止或跳过的提取可在管理页显式重试;重试保留来源模型、运行上下文和累计用量,不自动重放已完成的任务。

输入框“+ → 任务模板与工作方式 → 子任务委派”提供关闭、自动按需、仅明确要求三种方式,默认仅明确要求。手动方式可用“请委派……”“请帮我委派……”“请用两个子智能体……”“并行调查……”等直接指令;否定、引用示例与术语解释不作为授权。自动方式由主任务判断是否值得拆分。小改动和紧密依赖的工作应留在主对话。

首版子任务只提供文件读取、受限搜索和网页读取/检索,执行范围与审批限制继承父任务;没有写文件、Shell、技能、插件或再次委派能力。最多两个并行子任务,每个父运行最多四项,每项有时间、模型轮次和输出上限。网页工具仍受原有网络白名单及审批约束;需要额外审批的调查由主任务处理。

协作状态在当前任务内折叠展示,支持查看、停止和重试失败/停止的调查。父任务暂停或取消会停止其子任务;重试需先结束父运行并重新校验原目录、模型、规则和项目授权。重试结果在协作面板查看,不自动重新运行已结束的父任务。重启将中断子任务标为失败,不静默重跑或重复计费。

调查详情展示尝试次数、模型及工具调用过程、脱敏参数和结果摘录,保留最近 80 条过程记录,每条参数或结果摘要最多 1500 字符。任务选项可设置每轮额外调用预算,默认 64,000 Tokens、每项最多额外重试两次;子任务、项目记忆提取及其重试共用父运行额度,主对话用量另计。额度在运行开始时固定,修改设置只影响新运行。辅助请求关闭 SDK 隐式重试,限流或失败后需显式重试。

并行请求先预留本地估算额度,再按提供商报告用量结算;响应缺失用量或进程中断时保守占用预留额度,统计中只记录实际报告值。预算用于阻止后续超额调用,不是金额上限或提供商计费保证。记忆和协作面板在工作时约 1.2 秒刷新,空闲时逐步退避至 30 秒,窗口隐藏时为 60 秒;手动操作及返回窗口会立即刷新。

额外模型调用的提供商报告用量单独保存,并计入所属任务的全局用量查询;不把后台请求伪装成聊天消息,不估算缺失用量或费用。数据库直接使用当前 schema 7,不执行旧格式迁移。全局任务执行仍串行,只读子任务在父任务内部并行,不包含多人并行修改文件或自动化。

规则与记忆

工作台使用 AGENTS.md 作为唯一日常指令格式。全局文件默认位于 ~/.kairopilot/AGENTS.md,可在“设置 → 规则与记忆”编辑;项目菜单编辑项目目录的指令文件。已有 AGENTS.override.md 非空时优先生效,设置页显示并编辑该生效文件。全局规则入口与内部任务存储目录分开,不创建额外人格文件,也不按历史 Agent 加载不同规则。

每轮执行从 Git 根目录沿路径读取到任务执行目录,每个目录选择一个非空指令文件,先全局后项目,更具体的指导用于处理作用域内的冲突;无 Git 根目录时只检查任务执行目录。不遍历整个仓库,不自动展开导入指令,也不根据待编辑文件动态扫描子目录。仅支持普通文件,符号链接指令文件会明确拒绝。合并正文最多 32 KiB,超限报错,不静默丢弃批准要求。

应用内置执行与安全要求、用户本轮明确要求、AGENTS.md、技能方法、记忆资料分别处理。权限仍由运行时校验,指令文件不能自行授予访问、Shell、网络或发布权限。自动记忆、用户手动记忆及历史摘要独立保留,不自动写入 AGENTS.md。规则来源、作用域和内容指纹保存在内部运行记录中;规则变化会使旧计划确认失效,中途变化要求新建运行。规则编辑使用设置入口,普通文件工具不能读写受保护的指令文件。

目录与审批

应用直接使用当前工作台格式,不读取旧人格文件、旧工作区、旧规则差异稿或旧资源清单,也不执行数据转换。全局规则只位于数据根目录 AGENTS.md;项目规则来自授权项目的 AGENTS.md。独立任务目录为 workbench/tasks/<sessionId>。

工具授权在原输入框位置显示,不打开全局弹窗。授权绑定任务、运行和审批记录,切换页面不会批准其他任务。拒绝或停止后待授权操作不执行;输入草稿保留。

技能与插件按需加载

技能页默认用双列列表展示已安装技能,窄窗口自动切为单列;可按名称、描述或 ID 搜索。点击技能查看完整正文、来源与版本,在详情中进行回滚或发起卸载确认。顶部“添加”进入原有技能导入流程,齿轮进入市场来源配置;技能市场和安装审核继续使用现有流程。

插件页复用技能的紧凑列表,支持搜索并在详情中查看权限、风险及工具声明,操作启停、更新、回滚或卸载;添加仍进入 ZIP 导入审核,齿轮打开插件来源配置,内置能力禁止卸载。工作台各滚动区域统一在滚动时显示滚动条,停止约 0.9 秒后隐藏,拖动时保持可见。内容能放下时不预留滚动条槽位;模型列表仅在条目实际超出可用高度时滚动。

每个用户运行重新选择技能与插件工具。技能初始仅提供名称、描述和调用策略目录;明确的 $skill-id、行首 /skill-id 或“使用 + 完整名称”可以预加载,普通名称/关键词重叠不触发本地强制选择。其他任务由模型按目标、输出和技能描述决定是否调用 load_skill,也可以不使用技能;目录被省略的部分可通过 list_available_skills 查询或分页。加载后的完整技能正文放入独立上下文层,工具结果只返回加载状态和资源目录,避免重复正文。引用与脚本仍按需读取,并执行原有权限和审批。

显式预加载失败会终止本轮并显示技能及错误原因。技能加载成功只表示指令已进入上下文;工具失败、空结果或结果不相关不自动终止任务。系统提示要求模型在原目标、技能约束和已有授权内有限重试或换方法,并在切换前说明原因;额外权限仍走原有审批,禁止绕过拒绝、必需步骤或“仅使用该技能”的要求。最终答复应区分失败环节与替代完成的结果,并说明实际来源和未解决限制。这些恢复与说明要求由模型遵循,实际效果仍需用真实任务评估。

支持 agents/openai.yaml 中块形式的 policy.allow_implicit_invocation 布尔值;false 禁止模型隐式加载,显式用户调用仍可使用。原 frontmatter 的 disable-model-invocation 等更严格限制继续生效。这里只解析该策略,不支持完整 YAML、工具依赖自动安装或任意标签;不支持的策略语法使技能不进入索引。策略进入内容指纹,资源/脚本调用前重新校验已加载技能版本。技能选择的模型判断质量仍需用实际任务评估。

初始化不再加载全部插件代码或参数定义。search_tools 在已启用、当前作用域和权限允许的插件清单中检索,最多加载 5 个匹配工具的定义;下一轮模型请求使用新工具列表。插件工具名称加入稳定命名空间,避免覆盖内置或其他插件工具。检索只加载定义,动作调用仍单独经过权限和审批;每次动作还会核对停用、注册版本与磁盘内容。检查点保存发现结果,恢复时重新加载和校验。这里使用兼容现有 Chat Completions 提供商的本地函数工具,并未切换到 OpenAI Responses 原生 tool_search 或自动安装插件。

请求上下文预算

主对话每次请求统一核算消息、工具调用参数、工具定义、图片预留、输出空间与安全余量。辅助委派和记忆请求也在发出前经过同一容量检查,累计额外用量预算仍独立执行。在模型配置中可为每个模型填写提供商说明的上下文 Token 上限;未填写时使用本地 65,536 上限并明确标记容量未知。输出默认最多 4,096 Token,小窗口按比例预留,实际请求携带输出限制。

不引入 tokenizer 依赖:文本和工具定义按 UTF-8 字节保守估计,每张图片额外预留 8,192;这些是本地容量策略,不能保证所有模型的真实上下文或账单上限。统计仍只使用提供商报告值。估计消息/工具占用、输出预留和安全余量保存在内部上下文记录中。

系统与 AGENTS.md 指令、已加载技能全文、待批准操作、当前用户输入及最近工具交换完整保留。若必要部分放不下,在发出请求前明确失败;不再静默截断技能末尾的批准条件。旧历史按最近优先、工具调用与结果成组取舍;过长工具输出附缩短提示,原始记录保持不变。历史、附件、审计和用量记录独立保存。

模型与推理接入

  • 支持接入本地与云端模型
  • 当前内置支持 OpenAI 兼容接口与常见提供商配置,包括:
    • OpenAI
    • Ollama
    • DeepSeek
    • Kimi
    • 智谱
    • 通义千问
    • 自定义 OpenAI-Compatible Base URL
  • 支持模型列表拉取、模型配置保存与任务选择

桌面能力与原生工具

  • 文件系统工具:读取、写入、删除文件,列出目录内容;edit_file 按字面值替换文本。授权范围内的 grep 支持目录或单文件搜索,默认逐行独立匹配;multiline 模式对全文跨行匹配(包括换行通配),按原始行号返回命中行并去重,count 统计命中行数。保留逐文件权限检查,以及大小写、类型、glob 和数量限制。
  • Shell 工具:在受控命令白名单内执行命令
  • System 工具:读取系统基础信息与运行状态
  • Web 工具:网页搜索与页面抓取
  • kairopilot:// 协议:用于在安全根目录内展示本地文件资源,例如图像产物

技能与插件

  • 技能统一在工作台管理,支持公共与工作台作用域
  • 支持从工作区 skills/ 目录扫描技能定义
  • Agent Skills 支持 SKILL.md frontmatter 中的 version、allowed-tools、when_to_use、arguments、user-invocable、disable-model-invocation、context
  • 明确用户调用可预加载技能;其他任务由模型按目录描述选择 load_skill,不按关键词强制预激活
  • load_skill 支持参数化技能正文渲染,read_skill_resource 会复用当前技能参数上下文
  • run_skill_script 仅允许访问已加载技能的 scripts/ 目录,并复用 Shell 白名单、超时与缓冲区策略
  • 插件加载前执行 manifest 校验;插件 ID 限制为以字母或数字开头、最长 160 字符的安全文件名(其余字符仅允许字母、数字、点、下划线和连字符),不接受路径分隔符。安装路径必须位于插件目录内,确认安装时重新核对目标路径。
  • 插件 capability 可声明 requiredPermissions,运行时会与当前任务权限交叉校验,超出权限的插件工具不会注册
  • 插件工具执行具备超时、代码体积、返回值序列化与输出大小限制,并要求 manifest 已声明的工具名称匹配;worker 日志与最终结果分开处理,打印日志不改变任务结果或延长超时。
  • 当前已具备插件管理与技能展示能力,插件商店接口仍在持续建设中

安全、审计与监控

  • 支持 Provider 流式输出,运行中可增量更新助手消息,并与暂停 / 取消链路保持一致
  • 文件系统访问采用允许路径白名单策略
  • Shell 执行采用命令白名单策略,推荐配置不会默认放开删除、系统打开或网络请求类命令
  • 网络访问支持域名白名单;空白名单默认阻断外部访问,需显式填写域名、URL 前缀或 *。网页工具每次重定向前重新校验目标,最多五次跳转;禁止 HTTPS 降级和写请求跨源跳转,跨源 GET/HEAD 不携带原凭据。取消运行也会中止正在进行的网页请求。
  • 工具注册时会绑定权限 guard,工具即使绕过常规编排入口直接执行,也会重新校验文件、Shell 与网络边界
  • 高风险工具操作支持对话输入区内 Human-in-the-Loop 确认
  • 保护性禁止直接访问敏感目录与核心 Prompt 文件
  • 预加载层 IPC 使用显式白名单,减少渲染进程暴露面
  • 审计日志记录工具调用、参数、结果、错误与策略标签
  • 插件安装与卸载会写入审计日志,便于追踪扩展能力变更
  • 插件 manifest 声明工具、能力与风险等级,安装前可查看能力边界
  • 插件声明权限超出 任务当前策略时会被阻断,并记录 plugin_permission_denied 审计事件
  • 模型 Provider 与 Tavily 的 API Key 使用 Electron safeStorage 加密落盘;常规配置备份与渲染进程配置接口只保留“已保存密钥”状态,不回传明文密钥
  • 使用统计支持查看:
    • 工作台活动统计
    • 提示 / 补全 / 总 Tokens
    • 按项目、任务、模型和时间筛选的用量明细
  • 配置保存采用临时文件原子替换,并保留最近配置备份以降低写入中断风险

数据格式

配置版本为 4.2.0,工作台配置版本为 2,数据库 schema 为 7。新数据目录直接创建完整当前结构;再次启动不会执行 ALTER、导入旧记录或搬动目录。项目授权直接记录在 project_authorizations,不建立 Agent 项目绑定表。

现有目录只有格式版本相符时才使用;不支持的配置或数据库会报错,原文件不自动转换、清空或删除。需要新数据环境时应明确选择新的数据目录,本次代码清理不会处理真实用户文件。默认运行数据目录为 ~/.kairopilot。

GitHub 首版分发

首版采用 GitHub Releases 手动下载和安装,不检查、下载或自动安装更新。构建默认禁止自动发布,产物名包含版本、系统和架构,避免覆盖不同架构的文件。下载方式、验收要求与已知限制见 封板与分发说明。

剪贴板内容建议默认关闭,可在“设置 → 常规”开启。仅应用聚焦时本地检测,不自动发送模型;点击建议只加入输入框,仍需用户发送。错误上报默认不启用;只有运行环境配置 KAIROPILOT_SENTRY_DSN 才启用,事件仅包含版本、环境、时间和脱敏错误计数,不上传异常文字、堆栈、面包屑、请求或用户字段。

快速开始

环境要求

  • Node.js 24+
  • npm 10+
  • Ollama(可选,用于本地模型)

安装依赖

npm install

启动开发环境

npm run dev

代码检查

npm run lint

产品冒烟检查

npm run smoke

发布前验证

npm run verify

CI 会在 push、pull request 与手动触发时运行同一条验证命令,并覆盖 Node.js 24。

构建应用

npm run build

说明:

  • 开发环境基于 Vite + Electron
  • 发布前建议先运行 npm run verify,统一覆盖 ESLint、TypeScript、Vitest 与产品冒烟检查
  • 生产构建会先执行 TypeScript 编译与前后端打包,再调用 electron-builder 产出安装包
  • 当前构建配置已覆盖 macOS、Windows 与 Linux 打包目标

统一工作台原生验收

npm run smoke:native

在临时数据目录运行真实 Electron main/preload/renderer,直接创建当前数据库,使用本机模型协议夹具。覆盖新安装、初始化并发、跨任务查看、审批定位、权限撤销、取消与重启;不发送真实项目资料,不调用付费模型。证据目录由命令输出。

项目结构

src/
├── main/
│   ├── core/
│   │   ├── agent/       # Agent 运行时
│   │   ├── llm/         # 模型适配与 Prompt 组装
│   │   ├── plugins/     # 插件与技能加载
│   │   ├── security/    # 权限与安全策略
│   │   └── tools/       # 文件、命令、系统、Web 工具
│   ├── bridge/ipc/             # 主进程 IPC 处理
│   ├── services/        # 启动与协议服务
│   └── store/           # SQLite / 配置 / 审计存储
├── preload/             # contextBridge 安全桥接
└── renderer/
    ├── components/      # UI 组件
    ├── hooks/           # 领域逻辑与状态 Hook
    ├── i18n/            # 中英文文案
    └── App.tsx

技术栈

  • Electron 45.2.1
  • React 18
  • Vite 7.3.7
  • TypeScript 5
  • better-sqlite3
  • OpenAI SDK
  • Zod

当前范围

统一工作台 W0–W3 已交付。W4 已接入任务模板、计划确认、项目自动记忆和按需只读委派;并发写入协调和自动化仍在后续范围。Shell 的固定 cwd 与命令白名单是应用限制,不代表操作系统级沙箱。

项目协作规范

Git Flow(适合有发布周期的项目)

  • 主分支:main —— 存放正式发布版本,每个提交对应一个版本。

  • 开发分支:develop —— 集成所有功能,准备下一次发布。

  • 功能分支:feature/xxx —— 从 develop 切出,完成后合并回 develop。

  • 发布分支:release/v1.0 —— 从 develop 切出,用于发布前的测试和修复,完成后合并到 main 和 develop。

  • 热修复分支:hotfix/v1.0.1 —— 从 main 切出,修复线上紧急问题,完成后合并到 main 和 develop。

分支命名规范

社区普遍遵循以下命名规则,让分支一看就懂:

分支类型 命名格式 示例
主分支 main 或 master main
开发分支 develop develop
功能分支 feature/<描述> feature/user-login
修复分支 bugfix/<描述> bugfix/fix-header-layout
热修复分支 hotfix/<描述> hotfix/critical-security
发布分支 release/<版本号> release/v1.2.0
文档/实验分支 docs/<描述> 或 exp/<描述> docs/api-guide

命名要点:

  • 全部使用小写字母,单词间用连字符 - 分隔(避免空格、下划线、驼峰)。

  • 描述应简洁明了,例如 feature/add-dark-mode 比 feature/dark 更清晰。

  • 如果与 issue 关联,可包含编号,如 bugfix/issue-123

许可证

MIT

About

一款会总结,会干活的智能体平台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages