已完成 · 本地运行

PersonalAI

可靠执行型个人 AI Agent

面向个人文件与自然语言任务的 AI 工作空间。在连续工具调用之外,关注任务如何恢复、文件如何安全修改,以及权限如何被正确执行。

Agent 执行流程机制示意
用户任务自然语言任务Agent RuntimePLAN → CALL → OBSERVE工具审批权限与审批Durable Worker检查点 · 失败恢复文件工具PostgreSQL任务状态
任务状态持久化PersonalAI

工程机制示意,非在线运行画面

项目状态
已完成 · 本地运行
公开演示
公开 Demo 筹备中
主要技术
Python / Agent Runtime / PostgreSQL / SSE

项目背景

自然语言任务往往包含多个步骤,也可能跨越多轮工具调用。这个项目把重点放在模型之外的执行层:将任务状态持久化,将实际权限与模型意图分离,并在文件被修改前确认读取证据仍然有效。

架构与职责

  • Web 工作空间

    任务计划 / 审批 / 文件 Diff

  • Agent Runtime

    规划 / 工具调用 / 执行参数校验

  • Durable Worker

    持久化状态 / 失败处理 / 恢复

  • 文件工具与 PostgreSQL

    读取证据 / 原子写入 / 任务存储

SSE 将执行过程反馈到 Web;工具审批与任务持久化承担不同职责。

设计与取舍

从一次请求,到可恢复的任务

问题
长任务包含多轮工具调用,执行中断后需要保留已经发生的过程。
做法
使用统一 Agent Runtime 与 Durable Worker,将执行状态持久化,跟踪工具调用和失败处理,为任务恢复保留依据。
边界
持久化状态并不等于任意外部副作用都能自动回滚;恢复仍需考虑每种工具操作的执行语义。

在写入之前,再确认一次事实

问题
Agent 读取文件后,文件可能已被编辑器或其他进程修改。
做法
记录文件读取证据与版本信息,修改前校验当前状态,并采用原子写入,防止基于过期内容覆盖外部修改。
边界
校验信息由运行时管理,不让模型自行生成文件哈希、版本或审批 ID。

把“想执行”与“允许执行”分开

问题
模型生成了工具调用参数,并不代表用户已经授权实际操作。
做法
区分用户意图、实际权限和审批决定,结合敏感路径保护、历史禁止约束与对话内授权复用,限定文件操作范围。
边界
授权复用发生在明确的对话和权限范围内,不能从一次同意推导无限权限。

让执行过程可以被理解

问题
仅展示最终回答,难以解释任务在哪里等待、修改了什么。
做法
通过 SSE 推送流式回复,在 Web 端呈现任务计划、工具调用、审批状态、执行结果与文件 Diff。
边界
流式内容在内存中处理;不将“实时展示”描述成未经验证的完整审计或事件溯源系统。

当前状态

核心实现

  • Agent Runtime 与 Durable Worker
  • 任务状态持久化、失败处理与恢复
  • 文件读取证据校验与原子写入
  • 工具授权、审批与运行时元数据隔离
  • SSE 流式回复及 Web 执行过程展示

公开演示前的规划

  • 公开演示环境与演示数据隔离
  • 面向公开访问的配额、成本与工具边界评估

规划事项尚未作为在线服务开放。

项目已完成并在本地运行,公开演示尚未开放。这里聚焦 Agent 执行层;文档检索、Rerank 与引用定位实践见独立的文献阅读 Demo。