跳转到内容
返回首页
Feature

PocketCode 的 AI 在底层是如何工作的

从技术角度了解我们如何设计 PocketCode 的 AI 助手:行内建议、上下文感知聊天,以及能触达应用各模块的工具,使用你自己的提供商。

更新于:
2 min
作者 Pelayo Naredo
PocketCode 的 AI 在底层是如何工作的

PocketCode 的 AI 在底层是如何工作的

PocketCode 的人工智能并不是一个粘在编辑器上的通用聊天机器人。它是一个集成系统,能够理解你的项目、你的代码以及你正在使用的模块。在这篇文章中,我们将告诉你我们是如何构建它的。

总体架构

AI 系统由三个主要部分组成:

1. 行内建议(ghost text)

你输入时,编辑器可以在光标后面显示一条灰色的建议,由你连接的 AI 提供商生成。它与语言服务器相互独立,语言服务器在本地提供补全和诊断。

它做什么,不做什么:

  • 光标周围的一个窗口:请求最多携带光标之前的 2,000 个字符和之后的 500 个字符(Fill-in-the-Middle 的方式),外加语言。它不会发送项目的其余部分。
  • 简短的纯代码:模型被要求只回答代码,最多 10 行;没有合适内容时就不回答。
  • 默认开启,且需要提供商:它需要一个已配置密钥或登录的提供商、你首次使用时接受的数据提示,以及自动建议和代码补全两个开关(设置 → AI,默认都开启)。在特别大的文件中它会自动关闭。

2. 上下文感知聊天

AI 聊天并不是简单的"提示词—回复"。每一轮,应用都会构建一份上下文,并随你的消息一起发送:

  1. 打开的文件(最多 4,000 个字符)、它的语言以及项目名称
  2. 一份路径列表和一张仓库地图
  3. 项目记忆(最多 4,000 个字符),如果有的话
  4. 你用 @ 提及的内容、你附加的文件以及工具的结果

这意味着你可以直接问 "这个函数是做什么的?",而不必复制粘贴代码。提示词离开设备之前,常见格式的密钥(OpenAI、Anthropic、Google、GitHub、AWS 等的密钥)和你保存的机密都会被遮盖:这是一道安全网,而不是保证。

3. 模块工具(Tool Calling)

这是最强大的部分。应用声明了 84 个工具,普通聊天最多提供其中 79 个,分为 14 个类别(文件、终端、Git、数据库、API、SSH、部署、Dev Browser 等),让 AI 能与应用的各个模块协同工作。一些有代表性的例子:

工具作用
create_file在你的项目中创建文件
run_in_terminal在本地 shell 中运行命令
db_query对数据库运行查询
design_list列出并读取可视化设计器项目
git_status查看 Git 状态
read_file读取项目文件
semantic_search按一个自然语言问题中的关键词给代码排序
grep_search在代码库中搜索精确的字符串或模式

当你对 AI 说 "为用户列表创建一个 ViewModel" 时,它不只是生成代码:它可以在你指定的文件夹里创建文件,并修改需要改动的文件。

安全

智能体能做什么,由一个分五档的访问级别决定:不用工具、只读、先询问、自动编辑(默认:自行写入文件,运行命令前先询问)和完全访问。

  • 凡是离开设备的操作一律询问:git push、部署、API 请求或 ssh 命令,在所有级别下都要等你确认,除非你在 AI 工具权限中关闭这项保护。
  • 命令风险检查:终端命令在运行前会先分类,灾难性的命令永远不会运行。这是纵深防御,而不是沙盒。
  • 按工具设置权限:在设置 → AI → AI 工具权限中,你可以针对某个提供商或某个模型禁用任何工具。
  • 限制:命令默认等待 30 秒(最多 120 秒),read_file 会拒绝超过 5 MB 的文件。

支持的模型

PocketCode 通过 BYOK(自带密钥)模式对接多个 AI 提供商,在提供商支持的地方也可用 ChatGPT 和 GitHub 登录。PocketCode 本身不是 AI 提供商:每个请求都从设备直接发往你选择的提供商,用量由提供商按其政策计费。

  • Gemini(Google)—— 仅支持 API 密钥
  • OpenAI —— API 密钥,或通过内置的 Codex CLI 用 ChatGPT 账户登录(仅限 64 位 ARM 手机)
  • Anthropic Claude —— 仅支持 API 密钥(sk-ant-…)
  • GitHub Copilot —— 用你的 GitHub 账户登录
  • Custom(兼容 OpenAI) —— 任何 /v1 端点:OpenRouter、Groq、DeepSeek、LM Studio、Ollama 或你自己的服务器。明文 HTTP 只适用于 localhost;你局域网里的 Ollama 或 LM Studio 需要 HTTPS 或隧道。

模型列表不是固定的:每个提供商的列表都是从该提供商实时读取的,应用另有一份小的备用列表,在没有网络或没有密钥时使用。

所有提供商都是免费的。 PocketCode 从不对模型访问收费;付费档位针对的是它自己的引擎和工具(Swarmcode、Cortex 和 AI Office 是 Pro,云同步也是)。

用户在设置 → AI → API 密钥中连接自己的账户或 API 密钥。

结语

PocketCode 的 AI 不是一个外挂组件——它是开发体验中不可分割的一部分。每个应用模块(终端、数据库、设计器、Git)都是相互连接的,AI 可以通过工具触达它们全部,并受你所选访问级别的约束。

你可以在我们的 状态文章 中查看完整的开发状态。

本文背后的工具

AI 助手

准备好试用 PocketCode 了吗?

下载应用,开始用手机编程。