Skip to content
fanjk 的技术博客
Go back

实习三个月后,我开始写博客

实习三个月后,我开始写博客

转眼已经实习三个月了。之前没有记录工作和思考的习惯,真正想补记录时,才发现很多事情已经很难完整回忆起来。

我曾经补写过一篇 7 月 11 日的第一个月工作总结,但那篇文章本身是为了工作汇报准备的,内容比较集中。第二个月和第三个月做过什么,现在回想起来只能先抓住几个印象比较深的项目和问题,再慢慢把它们拼起来。

这两个月主要做了什么

这段时间的工作主要集中在两个 Agent 项目上。

第一个是对标 WorkBuddy 开发的 AgentZ。它的运行时放在 WSL 中,在 macOS 上则通过 Docker 运行。这个项目让我开始更多地接触 Agent 的运行环境、工具调用和任务执行过程。Agent 的表现不只取决于模型本身,运行时、工具和上下文管理同样会影响最终效果。后面如果有时间,我想单独写一篇关于 AgentZ 的文章,记录自己在开发过程中遇到的问题和收获。

另一个重点是持续优化 Homepage Agent。这个 Agent 面向首页学习场景,需要处理多轮对话、工具调用和较长的任务流程。因此,很多看起来只是细节的问题,最后都会影响用户能否顺利完成任务。

给 Agent 写提示词时的一点变化

今天调优 Homepage Agent 时,我对提示词的写法有了一个比较明显的感受:提示词不应该写得过于具体。

以前容易把提示词写成一份操作说明,详细规定在什么情况下应该调用哪个工具、下一步应该做什么。这样写看起来很完整,但也会给 Agent 施加很多不必要的限制。现在更适合做的是把工具的作用、输入和输出讲清楚,再把任务目标和必要约束交给模型,让它自己判断应该如何完成任务。

随着模型能力不断提升,Agent 的设计重点也需要调整。我们需要提供清晰、可靠的基础设施,包括稳定的运行时、定义明确的工具和足够准确的上下文,让模型有条件完成任务。至于具体什么时候调用哪个工具,可以更多地交给模型自己判断。

这并不意味着提示词不需要约束。安全边界、业务规则和不能违反的条件仍然要明确,只是没有必要把每一种正常流程都提前写成固定步骤。

为什么要展示 Agent 的思考过程

之前我觉得 Homepage Agent 面向的用户大多是学生,展示思考过程的必要性不高。一方面,思考内容经常是英文;另一方面,学生可能更关心最终的回答和学习结果。

但在实际调试 Agent 的过程中,我发现思考过程对开发者很有帮助。通过它可以更快看出模型在哪一步理解错了任务、为什么选择某个工具,以及还有哪些提示词或工具设计可以改进。相比只看日志,思考过程提供了更接近用户实际体验的上下文。

因此,在听取同事意见后,我给 Homepage Agent 增加了思考过程展示,之后也给 AgentZ 加上了类似能力。它不仅是给用户看的功能,也是一种辅助调试的观察窗口。

展示思考过程时遇到的性能问题

加入浏览器相关能力后,我遇到了一个比较明显的前端问题:当任务比较复杂时,思考过程可能会持续输出很长的内容,前端页面会出现卡顿,甚至影响后续内容展示。

这件事让我意识到,功能能够运行和功能能够稳定运行之间还有很大的差距。之前实现这部分功能时,我更多关注了数据能否正确流到页面,没有充分考虑长文本持续更新时的渲染成本,也没有仔细检查 AI 生成的代码到底是怎样工作的。

目前的处理方式是:已经输出完成的思考段落不再随着新内容重复渲染,而是通过 React.memo 复用;只有仍在生成的部分继续更新。这样可以减少无意义的重复渲染,缓解长任务中的页面卡顿。

这个方案解决了当前比较明显的问题,但也提醒我,今后不能只依赖功能测试。涉及流式输出、长列表和高频状态更新的功能,还需要主动考虑渲染频率、组件边界和数据更新方式。

2026 年 9 月 5 日的工作记录

今天主要做了几件事:

  • 调整前端余额不足提示的样式,让提示信息更容易理解。
  • 根据学生反馈的实际案例,排查 Homepage Agent 中遗留的工具结果长度和循环轮数限制。
  • 修复这些限制导致的长任务无法继续执行的问题。
  • 为 AgentZ 和 Homepage Agent 都增加思考内容展示。

其中,工具结果长度和循环轮数限制原本是为了控制任务规模,避免 Agent 无限执行。但限制如果设置得过于简单,也会让正常的长任务提前结束。以后处理这类限制时,需要同时考虑资源保护和任务完整性,不能只看某一个极端场景。

开始记录本身也是一种收获

如果只问今天学到了什么,答案可能并不具体。今天没有完成一个特别大的功能,也没有掌握某个全新的技术。不过,我开始认真记录当天做过的事情、遇到的问题和自己的判断,这件事本身已经是一个进步。

很多工作在当下看起来只是改了几行提示词、调整了一个组件,或者修复了一个限制条件。把它们写下来之后,才能看见这些小改动背后的共同问题:如何给 Agent 提供更好的基础设施,如何观察它的行为,以及如何让功能在复杂任务中保持稳定。

接下来,我想先把 AgentZ 的开发过程整理出来,再继续记录 Homepage Agent 在工具设计、流式输出和性能优化方面的实践。希望这次能够保持记录,而不是等到几个月之后,再努力回忆自己做过什么。


Share this post:

Previous Post
实习第一个月总结
Next Post
关于 AgentZ