< back to blogs

CS146s学习笔记 week 5-8

2026年1月5日·1458·LLM-powered Coding, Software Engineering

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 top and gdb, interact with REPLs like postgres and python,并且可以在终端上进行一般的“计算机使用”——这让它能够完成其他工具无法完成的任务
  • 这类似于浏览器和网页之间的区别——浏览器可以查看所有网页,可以改变它们的运行方式,限制其权限等

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)

claude-code-security-review

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中的能与不能

alt text

Week 8

Automated UI

V0

How it works alt text

APP Builder System Prompt

Bolt.new