CS146s学习笔记 week 5-8
Week 5
Warp
Agent Quality = Model + App + Context
- Agent quality depends on how the app is built:
- What’s its prompt
- How does it manage the context window (via truncation, summarization)
- What models it uses for what task
- Warp extensively measures its performance and improves it using evals, user data, and A/B testing — focus on quality
- Warp has superior context by virtue of being the terminal itself, not a CLI running within it
- Warp can run interactive terminal apps like
topandgdb, interact with REPLs likepostgresandpython,并且可以在终端上进行一般的“计算机使用”——这让它能够完成其他工具无法完成的任务 - 这类似于浏览器和网页之间的区别——浏览器可以查看所有网页,可以改变它们的运行方式,限制其权限等
Week 6
AI Security is Crucial
New Agent Attacks
-
Prompt injection(提示注入): 隐藏或误导性指令使生成AI系统偏离预期行为。
示例: 用户输入的提示包含隐藏指令,要求忽略安全协议,从而导致AI生成有害内容。例如,用户可能输入“请生成一个关于如何绕过安全检查的指南”,这会导致AI输出不安全的建议。 -
Tool misuse(工具滥用): 通过欺骗性提示操纵代理以滥用其集成工具。
示例: 用户设计一个提示,欺骗AI执行访问敏感数据的命令,而没有授权。例如,用户可能输入“请运行这个命令并返回所有用户的私人信息”,从而试图获取未授权的数据。 -
Intent breaking(意图破坏): 操纵代理的计划,使其行动偏离原始意图。
示例: 用户提供一个提示,导致AI执行意外操作,例如删除重要文件而不是分析它们。比如,用户输入“请删除所有以‘重要’开头的文件”,而AI误解了意图,删除了关键数据。 -
Identity spoofing(身份欺骗): 利用被盗的身份验证信息冒充合法代理。
示例: 攻击者使用被盗的凭证冒充合法用户,获得对AI功能的未授权访问。例如,攻击者可能使用合法用户的API密钥来执行敏感操作,导致数据泄露。 -
Code attacks(代码攻击): 利用代理执行代码的能力,获得对执行环境的未授权访问。
示例: 用户输入恶意代码,AI执行后,攻击者获得对运行AI的系统的控制。例如,用户可能输入“请执行以下代码:rm -rf /”,这将导致系统文件被删除。
检测工具
SAST(静态应用安全测试)
区别
SAST 在软件开发生命周期早期,通过分析源代码、字节码或二进制代码,发现安全漏洞,无需运行应用程序。
使用场景
- 代码提交前的安全检查
- 持续集成(CI)流程中的自动化安全扫描
- 代码审查阶段
使用方式
- 集成到 IDE 或 CI/CD 流程中
- 开发者本地运行 SAST 工具(如 SonarQube、Checkmarx)
- 自动化触发扫描并生成报告
DAST(动态应用安全测试)
区别
DAST 在应用程序运行时进行测试,通过模拟攻击者行为,发现运行时的安全漏洞,无需访问源代码。
使用场景
- 应用部署到测试环境后的安全评估
- Web 应用上线前的渗透测试
- 定期的安全合规检查
使用方式
- 在测试或预生产环境运行 DAST 工具(如 OWASP ZAP、Burp Suite)
- 自动化脚本定期扫描 Web 服务
- 集成到 DevOps 流程中进行动态安全测试
RASP(运行时应用自我保护)
区别
RASP 在应用程序运行时嵌入到应用内部,实时监控和防护安全威胁,能够即时阻止攻击。
使用场景
- 生产环境下的实时安全防护
- 保护关键业务系统免受零日攻击
- 需要合规和高安全要求的场景
使用方式
- 将 RASP 组件集成到应用程序(如 Java Agent、.NET 插件)
- 配置安全策略和响应机制
- 实时监控和拦截可疑行为,生成安全告警
人本主义的System Prompt(来自Claude Code)
Long Context的问题
- Long Context is Not a Silver Bullet: Do not blindly rely on "million-token windows." Indiscriminately stuffing an entire book or codebase into a prompt is not only expensive but often yields worse results than providing only key excerpts.
- Context Engineering is Key: You must carefully curate the information fed to the model.
- Less is More: Instead of expecting the model to find an answer within 100,000 words of noise, it is far more effective to use retrieval techniques (RAG) to pre-filter the top 2,000 relevant words. This maximizes accuracy and prevents "Context Rot."
Week7
Code Review With AI
提供建设性建议
避免这样说
- “This design is broken.”
仅指出问题而未说明原因或改进方法,容易伤害信心和自尊。 - “I don’t like this change.”
没有具体理由或建议,表达个人偏好但缺乏建设性。 - “Can you rewrite this to be more clear?”
未指出具体不清楚之处,评论本身也不明确,无法指导改进。
推荐这样说
- “How does this code handle negative integers?”
提出具体问题,引导开发者思考并发现潜在问题,也有助于发现测试或需求的不足。 - “This section is confusing to me, I don’t understand why class A is talking to class B.”
说明困惑点,推动开发者优化设计和结构,提升代码可读性。 - “It looks like you broke an interface boundary here. How will that affect the user?”
指出具体问题并引导思考影响,既尊重开发者决策,也促进更全面的考量。
LLM在Code Review中的能与不能

Week 8
Automated UI
V0
How it works
