1. 为什么要在 PyCharm 里折腾 Kilo Code 和 TaoToken
Kilo Code 是一个跑在 IDE 里的 AI 编码插件,能做的事包括代码生成、重构建议、Agent 模式下的多步任务执行,以及通过 MCP 调用外部工具。它本身支持 OpenAI Compatible 协议,这意味着只要有一个兼容 OpenAI 接口的通道,就能把模型请求接过去。PyCharm 作为 JetBrains 系的主力 IDE,插件生态成熟,Kilo Code 在 Marketplace 里可以直接搜到,安装后会在右侧边栏出现一个独立面板。
我自己的场景是这样的:手头有几个 Python 项目,既有 FastAPI 后端,也有数据处理脚本,平时写代码时希望 AI 能直接读项目上下文、按 Agent 模式分步完成任务,而不是每次复制粘贴到网页对话框里。更关键的是,团队里多人共用一套模型通道,需要统一走 TaoToken 的 API 地址,方便管理和计费。所以这篇内容聚焦三件事:PyCharm 里装好 Kilo Code 插件、启用 Agent 模式、把 MCP 服务和模型请求都指向 TaoToken。
适合谁看?如果你已经在用 PyCharm,想在不换 IDE 的前提下把 AI 编码助手跑起来,并且希望模型请求走一个统一的 OpenAI 兼容通道,那这套配置可以直接跟做。整个过程不需要改 PyCharm 本身的设置,全部在 Kilo Code 面板里完成。
先说清楚一个概念:Kilo Code 的 Agent 模式和普通对话不一样。普通对话是你问一句它答一句,Agent 模式是它自己规划步骤、调用工具、读文件、写文件,最后给你一个结果。MCP 则是让 Agent 能访问外部服务,比如查文档、查数据库结构。这两者配合起来,才是完整的“层层引导式开发”。
下面按顺序来:先装插件,再配 TaoToken 通道,然后开 Agent 模式,接着配 MCP,最后跑一个完整任务验证。
2. 前置准备:TaoToken 通道与 Kilo Code 插件安装
2.1 拿到 TaoToken 的 API Key 和 Base URL
在配置 Kilo Code 之前,你需要先有一个可用的 API Key。打开 TaoToken 的控制台,进入 API Keys 页面创建一个新的 Key。创建时建议给它起一个能识别的名字,比如pycharm-kilo,方便后续在多个工具之间区分。
创建完成后你会拿到两样东西:一个是 Key 本身(通常以sk-开头),另一个是 Base URL。TaoToken 的 API 地址是:
https://taotoken.net/api注意这个地址后面不要加多余的路径,Kilo Code 在 OpenAI Compatible 模式下会自动拼接/v1/chat/completions这类端点。如果你填成https://taotoken.net/api/v1,有些插件会重复拼接导致 404。这一点我在配置其他工具时踩过坑,Kilo Code 这边同样适用。
模型 ID 方面,TaoToken 支持多种模型,你在控制台的模型列表里能看到当前可用的名称。配置时直接填模型 ID 即可,比如claude-sonnet-4-20250514或gpt-4o这类。具体用哪个,取决于你的任务类型:架构设计类任务用推理能力强的,代码实现类任务用代码专精的。
2.2 在 PyCharm 里安装 Kilo Code 插件
打开 PyCharm,进入File → Settings → Plugins,在 Marketplace 标签页搜索 “Kilo Code”。找到后点击 Install,然后重启 IDE。重启后右侧边栏会出现 Kilo Code 的图标,点开就是主面板。
如果你用的是 PyCharm Community 版,插件同样可用,功能上没有区别。安装完成后第一次打开面板,它会引导你选择 API Provider。这里选 “OpenAI Compatible”,不要选 OpenAI 官方,因为我们要填自定义的 Base URL。
2.3 配置 OpenAI Compatible 通道
在 Kilo Code 面板右上角点击齿轮图标进入设置,找到 API Provider 配置区域,按下面这样填:
| 配置项 | 值 |
|---|---|
| API Provider | OpenAI Compatible |
| Base URL | https://taotoken.net/api |
| API Key | 你的sk-开头密钥 |
| Model | 你在 TaoToken 控制台看到的模型 ID |
填完后点击保存。此时 Kilo Code 会尝试拉取模型列表,如果 Base URL 和 Key 都正确,模型下拉框里会出现可用模型。如果拉取失败,先检查 Base URL 有没有多余斜杠,再检查 Key 有没有复制完整。
这里有个细节:Kilo Code 的设置是分 Profile 的。你可以创建多个 Profile,比如一个叫 “Architect” 用推理模型,一个叫 “Implement” 用代码模型。切换 Profile 比每次改模型方便。Profile 的配置存在 IDE 的配置目录里,不会随项目走,所以团队协作时每个人需要各自配置一次。
3. 可复制配置:Agent 模式、MCP 与项目级设置
3.1 启用 Agent 模式并理解模式切换
Kilo Code 面板顶部有一个模式选择器,默认可能是 Ask 或 Code。点击它可以切换模式。Agent 模式的核心在于它会把一个任务拆成多步,每一步可能调用工具、读文件、执行命令,然后根据结果决定下一步。
在 PyCharm 里,Agent 模式能直接访问当前打开的项目文件。你可以在输入框里描述任务,比如“帮我在src/api下新增一个用户注册接口,包含参数校验和单元测试”,然后切到 Agent 模式发送。它会先读项目结构,再生成代码,最后可能运行测试。
模式切换的快捷键可以在设置里自定义。我习惯用Ctrl+Shift+A呼出动作搜索,输入 “Kilo Code” 就能看到所有可用命令。如果你经常切换模式,建议在 Keymap 里给常用模式绑定快捷键。
3.2 项目级配置文件
Kilo Code 支持项目级配置,放在项目根目录的.kilocode文件夹下。你可以创建一个settings.json,内容如下:
{ "kilocode.memoryBank.enabled": true, "kilocode.memoryBank.autoUpdate": true, "kilocode.enableAutoComplete": true, "kilocode.enableInlineChat": true, "kilocode.inlineChat.trigger": "automatic", "kilocode.enableCodeActions": true, "kilocode.codeActions.suggestions": 3 }这个文件的作用是让项目内的 Kilo Code 行为保持一致。比如memoryBank.enabled打开后,Agent 会把项目上下文记到.kilocode/memory-bank/下的 Markdown 文件里,下次对话时自动读取,不用重复解释项目背景。
Memory Bank 的文件结构建议这样组织:
.kilocode/memory-bank/ ├── projectbrief.md # 项目概述 ├── systemPatterns.md # 技术规范 ├── techContext.md # 技术上下文 └── activeContext.md # 当前任务状态你可以在projectbrief.md里写清楚项目是做什么的、技术栈是什么、目录结构怎么划分。Agent 在规划任务时会参考这些信息,减少跑偏的概率。
3.3 MCP 服务器配置
MCP 是 Model Context Protocol 的缩写,简单说就是让 AI 能调用外部工具。Kilo Code 支持在设置里添加 MCP 服务器。进入Settings → MCP → Add Server,填以下内容:
| 配置项 | 值 |
|---|---|
| Name | context7 |
| Transport | HTTP |
| URL | https://mcp.context7.com/mcp |
| Header | CONTEXT7_API_KEY: ctx7sk-your-key |
Context7 是一个文档查询服务,Agent 在写代码时可以查真实库文档,而不是靠记忆编造 API。配置完成后,在 Agent 模式下发任务时,它会自动调用这个 MCP 服务去查文档。
如果你有自己的内部 MCP 服务,比如查数据库 schema 的,也可以在这里添加。Transport 选 HTTP 或 stdio 都行,取决于你的服务实现方式。stdio 类型的 MCP 需要填启动命令和参数,比如npx -y @modelcontextprotocol/server-filesystem /path/to/dir。
注意:MCP 配置是全局的,不是项目级的。如果你在多个项目里用不同的 MCP 服务,需要在切换项目时手动启用或禁用对应的服务器。
3.4 模型选择策略
不同任务用不同模型,这个策略在 Kilo Code 里通过 Profile 实现。我一般建三个 Profile:
- Architect:用推理能力强的模型,负责架构设计和任务分解
- Implement:用代码专精模型,负责具体实现
- Debug:用分析型模型,负责排查问题
在设置里创建 Profile 时,每个 Profile 可以独立指定 Base URL、Key 和 Model。因为都走 TaoToken,Base URL 和 Key 是一样的,只有 Model 不同。切换 Profile 在面板顶部就能操作,不用进设置。
4. 验证请求:跑一个完整任务看结果
配置完成后,最直接的验证方式是跑一个真实任务。我选一个常见的场景:在现有 FastAPI 项目里新增一个健康检查接口,并让它调用 MCP 查一下 FastAPI 的最新文档写法。
4.1 准备测试项目
如果你手头没有现成项目,可以新建一个空目录,用 PyCharm 打开,然后创建一个main.py,内容如下:
from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"message": "hello"}这个项目足够简单,方便观察 Agent 的行为。
4.2 在 Agent 模式下发任务
打开 Kilo Code 面板,切换到 Agent 模式,输入以下内容:
请在 main.py 中新增一个 /health 接口,返回 {"status": "ok", "timestamp": 当前时间}。 要求: 1. 使用 FastAPI 的 APIRouter 组织路由 2. 时间戳用 datetime.utcnow().isoformat() 3. 添加类型注解 4. 写一个对应的 pytest 测试文件 test_health.py发送后,Agent 会开始工作。你会看到它先读main.py,然后可能调用 MCP 查 FastAPI 文档,接着生成代码,最后创建测试文件。整个过程在面板里以步骤形式展示。
4.3 检查结果
任务完成后,打开main.py,应该能看到类似这样的代码:
from fastapi import FastAPI, APIRouter from datetime import datetime app = FastAPI() router = APIRouter() @router.get("/health") def health_check() -> dict: return {"status": "ok", "timestamp": datetime.utcnow().isoformat()} app.include_router(router)同时项目里会多出一个test_health.py。你可以直接在 PyCharm 里右键运行这个测试文件,看是否通过。如果测试通过,说明 Agent 不仅生成了代码,还理解了测试框架的用法。
4.4 验证 MCP 是否生效
要确认 MCP 真的被调用了,可以在 Agent 执行过程中观察面板里的工具调用记录。如果看到 “context7” 相关的调用,说明 MCP 配置生效了。另一个办法是在任务里明确要求“请先查一下 FastAPI 最新文档中 APIRouter 的用法”,如果 Agent 返回的内容引用了具体文档版本,说明它确实查了。
如果 MCP 没生效,先检查 Header 里的 API Key 是否正确,再检查 URL 是否可访问。有些网络环境下 HTTPS 请求可能被拦截,这种情况需要检查本地网络配置。
5. 常见报错排查:401、local proxy failed、reading choices
配置过程中最容易遇到的几个报错,我按实际出现的频率列一下。
5.1 401 Unauthorized
这个报错说明 API Key 无效或没被正确发送。排查步骤:
第一,检查 Key 是否复制完整。有时候从控制台复制时会漏掉末尾字符,或者多复制了空格。建议粘贴到文本框里检查一下长度。
第二,检查 Base URL 是否写成了https://taotoken.net/api/带末尾斜杠。有些插件对末尾斜杠敏感,会导致请求路径变成//v1/chat/completions,服务端可能返回 401 而不是 404。
第三,检查 Key 是否被禁用或过期。在 TaoToken 控制台的 API Keys 页面可以看到每个 Key 的状态和最后使用时间。如果状态是 disabled,需要重新启用或创建新 Key。
5.2 local proxy failed
这个报错通常出现在插件尝试通过本地代理转发请求时。Kilo Code 本身不强制走代理,但如果你在 IDE 设置里配了 HTTP Proxy,插件可能会继承这个设置。
解决办法:进入 PyCharm 的Settings → Appearance & Behavior → System Settings → HTTP Proxy,选择 “No proxy”,然后重启 IDE。如果你确实需要代理才能访问外网,那需要确保代理配置正确,并且 TaoToken 的地址在代理白名单里。
另一个可能的原因是本地端口被占用。Kilo Code 在某些模式下会启动一个本地回调服务,如果端口冲突就会报这个错。可以在设置里换一个端口,或者重启 IDE 释放端口。
5.3 reading choices 相关报错
这个报错通常表现为 “Error reading choices” 或 “invalid response format”。原因是服务端返回的 JSON 结构不符合 OpenAI 规范,插件解析失败。
排查方向:第一,确认 Base URL 是https://taotoken.net/api,而不是其他路径。第二,确认模型 ID 是 TaoToken 支持的名称,如果填了一个不存在的模型,服务端可能返回错误结构。第三,检查请求是否被中间设备篡改,比如某些企业网络会注入内容。
如果以上都正常,可以打开 Kilo Code 的日志面板看原始请求和响应。日志里会显示实际发送的 URL、Header 和返回的 JSON,对照一下就能定位问题。
5.4 OAuth 相关报错
如果你在配置 MCP 时选了需要 OAuth 的服务,可能会遇到 “OAuth token expired” 或 “invalid_client”。这类报错和 TaoToken 无关,是 MCP 服务本身的认证问题。解决办法是重新走一遍 OAuth 授权流程,或者换用 API Key 认证的 MCP 服务。
Context7 用的是 API Key 认证,不存在这个问题。如果你添加的是其他 MCP 服务,建议优先选支持 API Key 的,配置更简单。
5.5 Agent 模式不执行工具调用
有时候切到 Agent 模式后,它只是回复文字,不调用任何工具。这通常是因为任务描述不够具体,或者模型不支持 function calling。
解决办法:在任务里明确要求“请使用工具读取文件”或“请调用 MCP 查询文档”。另外确认你选的模型支持 function calling,大部分主流模型都支持,但有些轻量模型可能不支持。如果不确定,换一个模型试试。
6. 把模型请求统一到 TaoToken 的长期用法
配置跑通之后,日常使用中还有几个点值得注意。
第一,Profile 的维护。随着项目增多,你可能会建很多 Profile。建议按任务类型而不是项目来建,比如 “Architect”、“Implement”、“Debug”、“Review” 四个就够了。每个 Profile 绑定一个模型,切换时不用重新填 Key。
第二,Memory Bank 的更新。Agent 在任务过程中会自动更新activeContext.md,但projectbrief.md和systemPatterns.md需要你手动维护。建议在项目结构发生重大变化时更新这两个文件,否则 Agent 的规划会基于过时信息。
第三,MCP 服务的按需启用。不是所有项目都需要 Context7,有些项目可能更需要查数据库的 MCP。在设置里可以临时禁用不需要的服务器,减少 Agent 的决策负担。
第四,Key 的轮换。如果团队多人共用,建议每人用自己的 Key,方便在 TaoToken 控制台看用量。Key 泄露时也能快速定位和禁用。
如果你还没有 TaoToken 的 Key,可以去控制台创建一个,然后按上面的步骤配置。接入文档里有更详细的参数说明,遇到不确定的配置项可以对照查一下。模型对话页面可以快速测试 Key 是否可用,不用每次都开 IDE。
对于长期在 PyCharm 里做编码和 Agent 任务的场景,Coding Plan 提供了更稳定的通道和额度管理,适合团队统一接入。配置方式和上面一样,只是 Key 和 Base URL 从 Plan 对应的控制台获取。
整个流程跑下来,核心就是三件事:插件装好、通道配对、MCP 接上。剩下的就是根据任务切换模式和模型。Agent 模式在 PyCharm 里的体验比网页版好,因为它能直接读写项目文件,省去了复制粘贴的步骤。MCP 则让 Agent 的能力边界从“生成代码”扩展到“查文档、查数据、调服务”。这两者配合 TaoToken 的统一通道,基本能满足日常开发中的 AI 辅助需求。