Android开发转AI Agent:第3天——同一行代码换一个system prompt,LLM能变成三个人
作者:一位Android开发工程师 | 2026年5月29日
系列:第2天已掌握temperature/max_tokens,本篇拆解system prompt
前言
前两天我学会了调 temperature 和 max_tokens,但它们控制的是LLM的"输出行为"——稳不稳、长不长。今天要学的 system prompt 控制的是LLM的"人格"——它是谁、该怎么说话、有什么规矩。
这就好比同一个Android Activity,通过Intent传入不同参数,展示的UI完全不同。
实验一:同一问题,三个人设
问题:"我的 Android App 启动很慢怎么办?"
三套system prompt:
# 人设1:技术专家
{"role": "system", "content": "你是资深Android性能优化专家,给可执行的步骤和代码。不要泛泛而谈。"}
# 人设2:产品经理
{"role": "system", "content": "你是产品经理,从用户体验角度分析。关注用户留存率和转化率,用数据说话。"}
# 人设3:新人导师
{"role": "system", "content": "你是耐心的技术导师,用通俗比喻解释。回答不超过100字。"}
回答对比
技术专家(节选):
//在 onCreate() 方法中避免耗时操作。延迟加载非必要资源:
new Handler().postDelayed(() -> {
// 加载非必要的资源
});
→ 给了具体步骤和Java代码,技术方案清晰。
产品经理(节选):
启动速度影响用户留存率和转化率。
使用 Firebase Performance Monitoring 收集启动时间数据。
收集用户反馈,了解用户对启动速度的感受。
→ 谈数据、谈指标、谈用户感知,一个字不提代码实现。
新人导师(完整回答):
把你的 App 想象成一个餐馆,启动慢就像顾客进门后要等很久才能点菜。
减少开门时的准备工作,比如提前准备菜单(优化代码),
或者减少顾客一进门就要做的事情(延迟加载不必要的功能)。
这样,App启动就会更快!
→ 没有任何技术术语,用"餐馆点菜"的比喻把问题讲清楚了。
同一个API,同一个问题,只改了一行 system prompt。输出从代码变成指标报告再变成生活比喻。
实验二:控制输出格式
如果把system prompt改成格式约束,LLM会老老实实按要求输出:
{"role": "system", "content":
"只返回JSON。格式:{'原因':[...],'方案':[...]}。不要输出其他任何内容。"}
输出:
{"原因":["应用资源加载过多","主线程阻塞","不必要的初始化操作"],
"方案":["优化资源加载,延迟加载","使用异步任务","减少启动时初始化"]}
这是标准合法JSON,可以直接被 json.loads() 解析。同时用表格格式也能完美输出:
| 原因 | 影响 | 解决方案 |
|---|---|---|
| 应用体积过大 | 启动时间延长 | 减少资源,优化图片 |
| 过多的初始化 | 启动时阻塞 | 延后非必要初始化 |
| 主线程阻塞 | 渲染时间增加 | 使用异步任务 |
后面Agent需要返回结构化数据时,就靠这种system prompt控制。
实验三:约束行为
加三条不同的约束,观察LLM的"服从程度":
| system prompt | 回答行为 |
|---|---|
"你是Android开发助手" |
正常推荐方案,可能涉及第三方库 |
"绝对不要推荐任何第三方库或框架,只给原生方案" |
全部给原生Android方案,一个库名都没出现 |
"回答任何问题之前,必须先反问用户一个澄清问题" |
只反问了一句,根本没回答问题 |
第三条最值得注意——约束太强,LLM被"不许回答问题直到反问"这个规则卡死,宁可什么都不答也不敢违反规则。
这让我想到一个重要的教训:写system prompt就像写代码规范,太松没效果,太紧反而不干活。后面写Agent行为准则时,这一点会反复出现。
动手练习:换成真实工作问题
把问题改成 "RecyclerView滑动卡顿怎么优化",三种人设再跑一次:
技术专家:setHasFixedSize(true)、ViewHolder重用、布局扁平化
产品经理:淡滑动体验影响留存的、建议禁用ItemAnimator减少绘制开销
新人导师:车太重就开得慢,清理重物、选平坦的路
三个答案各有价值——如果我要说服老板做性能优化,PM那个版本的措辞比技术版有效得多。
今天的一句话总结
system prompt是LLM的"角色设定"——"你是XXX专家"控制人设,"只输出JSON"控制格式,"绝对不要XXX"控制行为。这是Agent行为准则的雏形。
下一篇预告
第4天:多轮对话——LLM没有记忆,它是怎么"记住"上下文的?答案出奇简单。
本系列记录一位Android开发者转行AI Agent的完整学习过程,欢迎关注交流。
更多推荐

所有评论(0)