跳转到内容
返回首页
返回博客
Feature

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

从技术角度了解我们如何设计 PocketCode 的 AI 助手:智能自动补全、上下文感知聊天,以及与应用模块集成的数十个工具。

2 min
作者 PocketCode Team
PocketCode 的 AI 在底层是如何工作的

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

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

总体架构

AI 系统包含三个主要层:

1. 智能自动补全(LSP)

自动补全通过 语言服务器协议(LSP)工作。当你输入代码时,编辑器会将上下文(当前文件、光标位置、已打开的文件)发送给 AI 模型,模型随后返回补全建议。

我们的自动补全与众不同之处在于:

  • 完整的项目上下文:它不仅看到当前文件,还能看到项目结构、导入和依赖关系
  • 优化的模型:我们使用 temperature 0.0 和 topK=1,以获得最高的建议准确性
  • 智能缓存:我们按模型(聊天与补全)分离缓存,以避免上下文污染
  • 填充中间(Fill-in-the-Middle,FIM):模型会同时接收光标之前和之后的代码,从而提供更精确的建议

2. 上下文感知聊天

AI 聊天不是简单的"提问-回答"。当你提出问题时:

  1. 当前打开的文件会被分析
  2. 选中的代码会被提取(如果有选中内容)
  3. 项目结构会被包含进来
  4. 所有内容会作为上下文发送给模型

这意味着你可以直接问 "这个函数是做什么的?",而无需复制粘贴代码。

3. 模块工具(工具调用)

这是最强大的部分。AI 可以调用数十个工具来直接与应用的模块交互。以下是一个有代表性的样本:

工具作用
create_file在你的项目中创建文件
run_in_terminal在集成终端中执行命令
db_query对数据库运行查询
design_list列出并读取可视化设计器项目
git_status检查 Git 状态
read_file读取项目文件
semantic_search按语义搜索代码库
grep_search按模式搜索代码库

当你告诉 AI "为用户列表创建一个 ViewModel" 时,它不只是生成代码——它会创建文件、将其放在正确的文件夹中,并更新必要的导入

安全性

所有执行都会经过严格的验证:

  • 命令注入:终端命令会被净化以防注入
  • 沙箱机制:命令只能在项目目录内运行
  • 超时:每个操作都有时间限制,以防止僵尸进程
  • 空安全:所有工具在执行前都会验证空值

支持的模型

PocketCode 通过官方 CLI,以 BYOK(自带密钥)或 OAuth 登录 的模式与多个 AI 提供商协作。PocketCode 不是 AI 提供商:每个请求都直接从设备发送到你选择的提供商,使用量由提供商按其政策计费。

  • Gemini(Google)—— API 密钥(BYOK)。默认模型, 非常适合 Kotlin/Android
  • OpenAI / Codex(GPT-4、o 系列)—— API 密钥或通过 Codex CLI 进行 OAuth
  • Anthropic Claude(Sonnet、Opus、Haiku)—— API 密钥或通过 Claude Code CLI 进行 OAuth
  • GitHub Copilot —— 使用你的 GitHub 账户登录(13 个多厂商模型)
  • 自定义(兼容 OpenAI) —— 任意 /v1 端点:OpenRouter、本地 Ollama 或你自己的服务器
  • 本地离线模型 通过 Ollama —— 免费,无需 API 密钥

每个提供商都免费。 PocketCode 从不为模型访问收费;付费的是它自己的工具(Swarmcode、云同步)。

用户在 Settings > API Keys 中连接他们的账户或 API 密钥。

即将推出

我们正在开发:

  • RAG(检索增强生成):让 AI 在回答之前搜索 Android 和 Kotlin 文档
  • 多文件编辑:在单次操作中编辑多个文件
  • 提示模板:用于常见任务的可复用提示模板

结语

PocketCode 的 AI 不是一个外挂组件——它是开发体验中不可分割的一部分。每个应用模块(终端数据库、设计器、Git)都是相互连接的,AI 可以协调它们全部。

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

本文背后的工具

AI 助手

准备好试用 PocketCode 了吗?

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