Adrian.

AI 工具 · 命令行 Agent · 2026

PocketAgent

一个可以装进 U 盘的 AI 编程 Agent:自带工具系统、权限控制、会话记忆和 MCP 扩展,换模型只改一个配置。

PocketAgent
类型
自研项目
我的角色
独立开发 · 架构与实现
年份
2026
技术
TypeScript · Node.js · Agent · MCP

要解决的问题

现成的 AI 编程工具大多绑死在某个平台或某个模型上:换模型要重配,换电脑要重装,离线就完全不能用。我想要一个能带着走、能自己掌控数据和上下文的版本——顺便把 Agent 的每个环节都亲手实现一遍,而不是只会调用别人的 API。

我做了什么

  1. 01

    先定边界,再写代码

    把 Agent 拆成 10 个互不依赖的模块:消息模型、执行内核、工具、权限、会话、扩展、Provider、UI、配置、日志。每块单独测试,最后再组装,避免写成一大坨。

  2. 02

    工具系统与权限门

    Read / Write / Edit / Glob / Grep / Bash / Todo / Memory / Skill / Task 十类工具,每个都带权限规则 DSL。危险操作默认拦截,审批队列在 TUI 里逐条确认。

  3. 03

    三种运行形态

    同一套 SessionRuntime 撑起 headless(脚本/CI)、plain(纯文本 REPL)和 Ink TUI(日常使用)。三种形态共享会话恢复与上下文压缩逻辑。

  4. 04

    测试先行,离线可跑

    29 个测试文件、138 个离线测试,覆盖工具、权限、会话、压缩、扩展、UI 与端到端冒烟。不依赖真实 API Key 也能完整验证。

关键决策

Provider 抽象,而不是绑定一家

Anthropic 与 OpenAI 兼容接口统一成一个流式适配层,DeepSeek / 本地模型 / 其他兼容服务都能接。模型列表与重试策略放在配置里,不写死。

所有运行数据都在 Agent 根目录内

会话 JSONL、配置、密钥、日志都不写用户目录。打包成便携版后,整个文件夹拷走就能在另一台 Windows 上继续用。

权限是产品的一部分,不是补丁

与其上线后再补沙箱,不如一开始就把审批队列做成 TUI 的核心交互:允许一次 / 始终允许 / 拒绝,每个决定都能追溯。

结果

v1 候选版本完成并通过 M6 验收:三种运行形态可用,工具闭环与会话恢复通过端到端冒烟,便携版可直接从 U 盘启动。代码已托管在 GitHub。

138

离线测试

29

测试文件

10

工具类型

3

运行形态

踩过的坑

  • Agent 的难点不在模型调用,而在上下文、权限和失败恢复。
  • 先把模块边界画清楚,AI 写代码才不会越写越乱。
  • 能离线跑完的测试,才是真的测试;依赖外部 API 的测试只能算演示。

联系

有想法?
聊聊。

当前档期

可接 1–2 个项目 / 2026 Q4