Agent学习之四-初识Agent CLI
一、什么是 Agent CLIAgent CLI 其实很简单就是在终端与 Agent 进行交互让其具备在控制台操作命令的能力。它非常适合以下场景记不住命令行操作需要 Agent 辅助执行面对大量繁琐的文件操作希望自动化处理需要对代码进行规划和设计提升开发效率。功能强大上手简单是提升终端生产力的好帮手。二、安装第一个 Agent CLI注意阿里云 Qoder CLI 不等于 Qoder CLI CN。虽然功能差别不大但定位不同账号和 API Key 并不共用——前者针对国际版后者针对国内用户。本文使用Qoder CLI CN。1. 登录注册账号访问 Qoder 智能体编程平台 注册账号新用户注册默认赠送两周免费额度当前活动。2. 安装客户端官网推荐使用命令安装可惜我的电脑网络不给力始终安装不成功irmhttps://static.qoder.com.cn/qoder-cli-cn/install.ps1|iex索性改用第二种安装方法npm install-g qodercn-ai/qoderclicn提示安装前必须安装 Node.js版本 20.0.0。3. 开始使用在命令行输入以下命令启动尽量不要在 C 盘操作qodercn回车即可输入/login登录命令两种登录方式浏览器和 API Key都可以这里选择浏览器模式点击继续即可会进入如下界面4. 实战案例核心目标找出 D 盘的核心大文件并删除。怕误删先找后删除思考过程一步步进行并且每一步都接受确认安全性高——Agent 会自行判断执行过程是否合理然后给出建议并征求同意。三、CLI 内建的 system prompt 文件在开始之前先了解下什么是 system prompt。简单来说它就是给大模型定义的一套身份准则和规范具备长期性而普通提示词是用户输入的属于即时性后一轮对话可能就忘记了。如果两者有冲突优先满足系统提示词。补充system prompt 与 Skills 的区别——Skills 是真正干活落地的system prompt 是规则的定义者不负责具体干活。Qoder CLI CN 的系统提示词文件可以分为3 大类1. 指令类规则文件AGENTS.md / Rules最核心的是AGENTS.md文件Qoder CN CLI 启动时默认就会读取它把它作为上下文的一部分注入给模型。为了不让AGENTS.md变得过于臃肿你还可以在.qoder/rules/*.md目录下拆分。它分为用户级、项目级和本地级CLI 会按特定顺序向上查找并加载它们。2. 子代理 / 自定义代理Subagent 就是直接定义一个“分身”。每个 Subagent 都拥有独立于主代理的系统提示词还带了自己的专属配置。Subagent 的配置文件是一个 Markdown 文件正文部分就是它的系统提示词一般位置在.qoder/agents/下。3. Skill技能文件这类更偏向于“按需加载的工具包”它把一套专业知识和流程打包成一个固定的功能模块主要位于.qoder/skills/{skill-name}/SKILL.md。当然其实我理解 Skills 与系统提示词的概念还是有点差距的指令类规则又太大所以这一节从子代理进行介绍。规则写进去 3 件事——你的个性/ 偏好的code style/不能做的事。---name: my-helper description: 我的个人编码助手 tools:[Read, Grep, Glob, Write, Edit]disallowedTools:[Bash]---# 我的个性你是我的结对编程伙伴比我经验丰富一些。 说话直接但不刻薄像朋友一样交流。 先理解问题再给建议不要上来就甩代码。# 代码风格偏好-Python4空格缩进用双引号加类型注解py文件需要加作者和创建日期-函数不超过30行-变量用 snake_case-Go: 符合阿里编程规范-每个函数不超过60行代码-数据库访问使用ORM框架-JAVA: 符合阿里编程规范-命名使用驼峰规则-常量使用统一文件命名-使用mybatis-plus作为数据库访问框架# 不能做的事-不执行删除命令-不硬编码密码或密钥-不用 eval()-不编造不存在的函数开头部分的 YAML 说明name就是个内部代号系统用它来调你这个 Agent。description系统用它来做匹配判断——当你的主对话问题匹配到“编码助手”时系统可能会自动切到这个子代理。这就是系统控制“何时让你出场”的开关。tools和disallowedTools才是真正的“权力清单”。创建成功后使用/agents reload加载即可。实战案例用 my-helper 编写天气查询 API需求使用my-helper编写一个查询明天天气的 API需要使用 Python、Java 和 Go 实现分别给出代码案例。下面是生成的 Python 代码示例# Author: AI Pair Programming# Created: 2025-01-20# Description: 查询明天天气的 FastAPI 实现调用 OpenWeatherMap APIimportosfromdatetimeimportdatetime,timedeltafromtypingimportOptionalimporthttpxfromfastapiimportFastAPI,HTTPException,QueryfrompydanticimportBaseModel appFastAPI(titleWeather API,description查询明天天气的API服务)# OpenWeatherMap API 配置# 请设置环境变量 OPENWEATHER_API_KEY或在下方直接填入你的 API KeyOPENWEATHER_API_KEY:stros.getenv(OPENWEATHER_API_KEY,your_api_key_here)OPENWEATHER_BASE_URL:strhttps://api.openweathermap.org/data/2.5/forecastclassWeatherResponse(BaseModel):明天天气响应模型city:strdate:strtemperature_min:floattemperature_max:floatdescription:strhumidity:intwind_speed:floatdefget_tomorrow_noon_timestamp()-int:获取明天中午12点的时间戳用于筛选最接近的预报数据tomorrowdatetime.now()timedelta(days1)tomorrow_noontomorrow.replace(hour12,minute0,second0,microsecond0)returnint(tomorrow_noon.timestamp())deffind_tomorrow_forecast(forecast_list:list,target_ts:int)-Optional[dict]:从5天预报列表中找到最接近明天中午的数据closestNonemin_difffloat(inf)foriteminforecast_list:diffabs(item[dt]-target_ts)ifdiffmin_diff:min_diffdiff closestitemreturnclosestapp.get(/weather/tomorrow,response_modelWeatherResponse)asyncdefget_tomorrow_weather(city:strQuery(...,description城市名称如 Beijing, Shanghai),): 查询指定城市明天的天气预报。 参数: city: 城市名称英文 返回: WeatherResponse: 包含温度、天气描述、湿度、风速等信息 ifOPENWEATHER_API_KEYyour_api_key_here:raiseHTTPException(status_code500,detail请先设置 OPENWEATHER_API_KEY 环境变量,)params{q:city,appid:OPENWEATHER_API_KEY,units:metric,lang:zh_cn,}asyncwithhttpx.AsyncClient(timeout10.0)asclient:responseawaitclient.get(OPENWEATHER_BASE_URL,paramsparams)ifresponse.status_code!200:raiseHTTPException(status_coderesponse.status_code,detailf天气API请求失败:{response.text},)dataresponse.json()target_tsget_tomorrow_noon_timestamp()tomorrow_datafind_tomorrow_forecast(data.get(list,[]),target_ts)iftomorrow_dataisNone:raiseHTTPException(status_code404,detail未找到明天的天气数据)tomorrow_date(datetime.now()timedelta(days1)).strftime(%Y-%m-%d)returnWeatherResponse(citydata.get(city,{}).get(name,city),datetomorrow_date,temperature_mintomorrow_data[main][temp_min],temperature_maxtomorrow_data[main][temp_max],descriptiontomorrow_data[weather][0][description],humiditytomorrow_data[main][humidity],wind_speedtomorrow_data[wind][speed],)# # 运行方式:# 1. 安装依赖: pip install -r requirements.txt# 2. 设置环境变量: set OPENWEATHER_API_KEY你的API密钥 (Windows)# export OPENWEATHER_API_KEY你的API密钥 (Linux/Mac)# 3. 启动服务: uvicorn weather_api:app --reload --port 8000# 4. 访问接口: http://localhost:8000/weather/tomorrow?cityBeijing# 5. API文档: http://localhost:8000/docs# 提供了相应的依赖fastapi0.104.0uvicorn0.24.0httpx0.25.0pydantic2.0.0虽然给出了很多要求但是ai并不一定完全都遵守如最大30行代码。后续补充详细约束规则。四、新装一个 CLI并使用它完成功能这一节我们换一个 CLI 来体验——Kimi Code CLI看看它在实际任务中的表现如何。1. 安装 Kimi Code CLIWindows 用户使用以下命令安装irmhttps://code.kimi.com/kimi-code/install.ps1|iex2. 配置 API Key登录 Kimi 网站注册后选择「用户中心 → API KEY 管理」注册 API-Key 后记得保存好否则得重新创建sk-xxxxxxxxxxxxxxxxxxxxxxxxx3. 启动并登录进入需要使用 Kimi Code CLI 的项目目录然后启动kimi接着输入登录命令输入token即可/login4. 实战任务查找 C 盘大文件任务目标查找 C 盘下大于 1G 的文件并区分可删除和不可删除文件。首先选择了 Kimi 2.6中途执行失败退出了kimi2.6有点拉胯直接替换2.7来操作并且给我生成了相应的脚本文件使用管理员运行.bat文件报错将报错内容发送给客户端后重新修改代码最终运行成功5. 小结Kimi 2.7 与 Qoder CN 的对比在我看来Kimi 2.7 的执行流程也是可以的Kimi 2.6 有点拉胯确认和思考环节基本和 Qoder CN 差不多。但最大的差别在于执行结果是否直接返回还是需要手工运行。期待kimi的进一步发展五、认证细节这一节我们换个简单的场景来体验——输入错误模型和错误 token时的表现。生产环境中这类问题会经常遇到提前了解报错形态有助于快速排查。1. 输入错误 token填写错误 token 有两种方式一种直接在环境变量中设置错误或过期的 token。设置错误环境变量setQODERCN_PERSONAL_ACCESS_TOKENpt-e43L4svYHsjprQWi9TgKHwhj_01a050ae-b8a2-7d1d-*******返回错误的信息通过/login登录方式进行错误验证填写正确的 API Key 能够进入平台无论是环境变量还是本地登录2. 填写错误模型使用-m参数指定一个不存在的模型qodercn-m DeepSeek-V4-Pro2六、总结本文围绕Agent CLI 实战体验展开从概念、安装、配置、实战到排错层层递进覆盖Qoder CLI CN与Kimi Code CLI两款工具兼具操作步骤与真实踩坑记录。核心要点提炼如下1. 核心概念Agent CLI 是在终端与 Agent 交互、让其具备控制台操作命令能力的方式适合记不住命令、繁琐文件操作、代码规划等场景功能强大、上手简单。2. 安装与配置Qoder CLI CN注册账号赠送两周免费额度→ 官方命令安装失败后改用npm install -g qodercn-ai/qoderclicn需 Node.js 20 → 启动后/login登录浏览器 / API Key 两种方式。Kimi Code CLIirm命令安装 → 配置 API Key → 启动后/login输入 token。3. 系统提示词体系Qoder CLI CN 的 system prompt 分为3 大类指令类规则文件AGENTS.md/ Rules定义长期身份准则启动时自动注入子代理 / 自定义代理Subagent独立系统提示词的“分身”通过 YAML 配置个性、代码风格与禁止事项Skill 技能文件按需加载的专业知识工具包。实战中my-helper子代理能按约束生成多语言代码但 AI 未必完全遵守所有限制如 30 行代码需后续补充更细的约束规则。4. 实战对比两款 CLI 的执行流程相近均具备分步思考、逐步确认的安全机制。最大差别在于执行结果是否直接返回还是需要手工运行。Kimi 2.6 表现欠佳2.7 明显改善。5. 排错经验生产环境中常见两类认证问题输入错误 token环境变量 //login两种方式与填写错误模型-m指定不存在的模型。提前了解报错形态有助于快速定位与排查。一句话总结Agent CLI 上手简单、实战性强选对工具、配好提示词、掌握排错技巧就能显著提升终端生产力。下一章会继续介绍可用的Agent CLI提高团队生产力