刚看了 OpenClaw 的源码,如果 Agent 要加一个定时任务功能,怎么设计?
(把这个作为你面试 AI Agent 全栈工程师的面试题)
AI Agent 非常常用的功能就是定时任务。
比如你安排它在某个时间做什么事情。
那这种功能这么实现呢?
Agent 架构里一般会把它封装成 tool,这个 tool 接收要做的事情的文本,用 corn 之类的来定时。
时间到了之后,它会调用 model 来解析这个文本,执行。
这个文本里会调用其他的 tool,比如联网搜索的 tool、增删改查数据库的 tool、发送邮件的 tool
比如:每天 8 点定时去搜索网上 ai 相关的新闻,生成一个精美 html,发送到我的邮箱,并且把发送记录保存到数据库。
你就给 ai 这么一段文本,它会做什么事情呢?
它会调用定时任务的 tool,把后面要做的事情的文本给它。
定时任务到期后,会调用模型来处理这个文本,然后就触发了别的 tool call,循环执行,直到没有新的 tool call,这个任务就完成了。
然后下一次定时任务到期继续这样。
并且还要让 agent 把定时任务也用操作数据库的 tool 存到表里,这样可以做任务列表,可以取消。
这就是 Agent 架构下定时任务的实现方案。
当然 OpenClaw 里并不是直接把定时任务封装成 tool,它是一个独立的服务,但它有执行命令的 tool,所以你让他跑定时任务,他会执行命令来跑定时任务,绕了一层,但本质一样。
我刚又看了 nanobot 的源码(简易版 openclaw),他是直接把定时任务封装成 tool,然后执行的时候也是一个 agent loop
有同学问我为啥不讲 skill?
skill 只是封装好的 prompt + tool,prompt 放到 system message 里,tool 可插拔,卸载 skill 就去掉了这些 tool
是封装出来的概念,后面做 agent 可以实现 skill 系统,但它不是底层知识,是可选实现的应用层功能
(把这个作为你面试 AI Agent 全栈工程师的面试题)
AI Agent 非常常用的功能就是定时任务。
比如你安排它在某个时间做什么事情。
那这种功能这么实现呢?
Agent 架构里一般会把它封装成 tool,这个 tool 接收要做的事情的文本,用 corn 之类的来定时。
时间到了之后,它会调用 model 来解析这个文本,执行。
这个文本里会调用其他的 tool,比如联网搜索的 tool、增删改查数据库的 tool、发送邮件的 tool
比如:每天 8 点定时去搜索网上 ai 相关的新闻,生成一个精美 html,发送到我的邮箱,并且把发送记录保存到数据库。
你就给 ai 这么一段文本,它会做什么事情呢?
它会调用定时任务的 tool,把后面要做的事情的文本给它。
定时任务到期后,会调用模型来处理这个文本,然后就触发了别的 tool call,循环执行,直到没有新的 tool call,这个任务就完成了。
然后下一次定时任务到期继续这样。
并且还要让 agent 把定时任务也用操作数据库的 tool 存到表里,这样可以做任务列表,可以取消。
这就是 Agent 架构下定时任务的实现方案。
当然 OpenClaw 里并不是直接把定时任务封装成 tool,它是一个独立的服务,但它有执行命令的 tool,所以你让他跑定时任务,他会执行命令来跑定时任务,绕了一层,但本质一样。
我刚又看了 nanobot 的源码(简易版 openclaw),他是直接把定时任务封装成 tool,然后执行的时候也是一个 agent loop
有同学问我为啥不讲 skill?
skill 只是封装好的 prompt + tool,prompt 放到 system message 里,tool 可插拔,卸载 skill 就去掉了这些 tool
是封装出来的概念,后面做 agent 可以实现 skill 系统,但它不是底层知识,是可选实现的应用层功能
#AI
相对同一个模型来说,AlCoding就是token消耗、时间消耗、Coding质量的不可能三角
同样是Sonnet4.6:
-口喷需求后直接开发最快、最省token,但质量不稳定-用PlanMode先规划再执行,多耗token,速度慢点,执行更稳定-使用SDD,代码执行前还要生成proposal、spec、design、tasks这4个md,耗费token、时间翻番,但流程可控且留痕(数据可归档)-使用TDD+SDD,传统的SDD直接基于tasks开发,TDD将每个task拆分为红->绿>重构3个步骤,token、时间再翻个番,但好处是:
1.由于所有实现都是基于测试case来的,所以AI不会多此一举写出冗余代码
2.测试全过,更有交付信心
时间差距有多大呢,口喷需求如果5分钟完成,TDD+SDD可能会跑1个小时。为了减少时间消耗,可以多Agent并行跑不同的TDD+SDD需求,这样总时间消耗下来了,token消耗又得翻N(N=并行数)倍。
相对同一个模型来说,AlCoding就是token消耗、时间消耗、Coding质量的不可能三角
同样是Sonnet4.6:
-口喷需求后直接开发最快、最省token,但质量不稳定-用PlanMode先规划再执行,多耗token,速度慢点,执行更稳定-使用SDD,代码执行前还要生成proposal、spec、design、tasks这4个md,耗费token、时间翻番,但流程可控且留痕(数据可归档)-使用TDD+SDD,传统的SDD直接基于tasks开发,TDD将每个task拆分为红->绿>重构3个步骤,token、时间再翻个番,但好处是:
1.由于所有实现都是基于测试case来的,所以AI不会多此一举写出冗余代码
2.测试全过,更有交付信心
时间差距有多大呢,口喷需求如果5分钟完成,TDD+SDD可能会跑1个小时。为了减少时间消耗,可以多Agent并行跑不同的TDD+SDD需求,这样总时间消耗下来了,token消耗又得翻N(N=并行数)倍。
朱雀AI检测助手
腾讯推出的 AI 生成内容检测工具,可快速分析文本和图像文件,并在数秒内输出详细的检测报告,包括
AI 生成概率、具体可疑段落或区域标注及内容特征提示,支持 GPT、Claude、DeepSeek、混元、豆包、千问、即梦、MJ、SD、GAN 等常见模型的识别,免费使用,有次数限制,登录后可享更多次数。
https://matrix.tencent.com/ai-detect/
Windows 11 Classic Context Menu
Windows 11 恢复经典右键菜单工具,可以避免每次右键都要点击「显示更多选项」的情况,通过封装注册表切换逻辑,无需手动编辑注册表,即可一键启用或还原经典菜单样式,重启文件资源管理器后方可生效,免费易用,绿色免安装。
https://www.sordum.org/14479/windows-11-classic-context-menu-v1-2/
CodeWiki
Google 推出的 AI 原生代码文档自动化平台,只需提交 GitHub 仓库地址,即可结合 Gemini 生成连贯一致的维基式文档,实时更新超链接索引、架构图、调用关系图等内容,每个 CodeWiki 页面还嵌入了 Gemini 聊天助手,可用自然语言提问获取与该代码库上下文相关的解释、示例或路径导航,可显著提升新成员入职、遗留代码理解与审计效率,什么上古项目、屎山代码统统都不是问题了。
https://codewiki.google
或许每个项目都应该又一个类似的 UI Skill 来约束项目的设计风格
https://www.ui-skills.com/
核心系统
⭕️Skills:包含 109 个自然语言触发的工具,涵盖文件操作、代码分析、记忆调用等。
⭕️Agents :32 个专用代理,拥有独立的角色和职责,通过“元技能”进行编排。
⭕️Hooks:30 个钩子用于维护状态、拦截工具调用并注入上下文,确保系统行为符合预期。
⭕️TLDR Code Analysis:一个智能的代码阅读和索引工具,能够进行语义搜索、死代码检测和架构分析,避免盲目读取大量代码。
⭕️Memory System:
会话结束后自动后台提取“思考块(thinking blocks)”中的推理过程。
支持自然语言的记忆存取(如“记住 auth 使用 JWT”)。
使用向量数据库进行相关性检索。
⭕️Continuity System:确保工作流在不同会话间无缝衔接,通过 YAML 文件管理状态交接。
这个项目试图让 AI 编程助手不仅仅是一个一次性的问答工具,而是一个能像人类开发者一样“记住”项目细节、历史决策并持续进化的长期合作伙伴。
macOS 剪贴板管理工具,可自动捕获文本、链接、图片、文件、颜色等类型内容,双击即可快速复制,写入系统剪贴板,支持纯文本粘贴、内容收藏分组、横向列表/网格布局,可按关键词 + 类型/来源应用进行过滤,输入即搜,毫秒响应,免费开源,适用于 macOS 系统。
🐙 GitHub
Collaigo
在线图片拼贴工具,可自定义行列数、间距、背景样式(支持纯色或图案),并应用多种九宫格相框布局,支持旋转、翻转、透明度调整,还可设置输出分辨率并导出高清图像,完全免费,无需注册。
https://www.collaigo.com/zh/editor
iTab 新标签页
浏览器新标签页插件,可以替代默认浏览器新标签页,支持卡片式组件和高度自定义布局,所有组件均可自由拖拽调整、开启/关闭或排序组合,同时支持聚合搜索栏内置 20+ 主流搜索引擎及快速翻译功能,还可自定义静态/动态壁纸、网站快捷图标与布局风格、书签分组以及跨设备微信登录同步设置,整体体验还不错,部分功能需要登录后方可使用。
https://itab.link
Meta刚以20亿美元收购了Manus。一位开发者深入研究了其核心工作原理,并将关键模式开源分享。
AI Agent面临一个普遍困境:经过大量工具调用后,它们会逐渐迷失目标。上下文膨胀、错误被淹没、任务偏离轨道。
Manus的解决方案出奇简单——仅用三个Markdown文件:
- task_plan.md:用复选框追踪进度
- notes.md:存储研究内容,避免塞满上下文
- deliverable.md:最终交付物
核心机制是:Agent在每次决策前都会重新读取计划文件,确保目标始终停留在注意力窗口内。
这个发现引发了社区热烈讨论,也暴露出一些关键洞见:
关于"这不是什么新东西"的质疑,确实如此。Claude Code本身就会自动创建plan.md文件,Spec-kit、APM等开源工具早已实现类似工作流。但这恰恰验证了这个模式的有效性——当多个独立开发者不约而同地收敛到同一解决方案时,说明它确实解决了真实问题。
关于"写入notes.md不也是在填充上下文吗"的技术追问,这是个精准的观察。写入操作确实会产生token消耗。但关键不在于减少token数量,而在于注意力操控。LLM存在"大海捞针"问题——随着上下文增长,它们会逐渐遗忘早期目标。通过在每次重大决策前重新读取计划文件,目标被强制拉回注意力窗口。
社区提出了更进阶的方案:使用子Agent处理上下文密集型任务。主Agent保持轻量,只负责追踪进度和协调;子Agent在独立上下文中完成繁重工作后汇报结果。这样既保持了主Agent上下文的清洁,又能处理复杂任务。
一位开发者分享了他的实战经验:将Claude视为员工,一次只分配一个任务,每完成一步就提交git,全程人工审核。这是8小时工作日的节奏,不是"设置后就忘"的自动化。
关于工作流设计的最佳实践:保持CLAUDE.md极度精简,只描述核心行为预期;将数据库、API等专项知识拆分到独立文件,仅在相关任务时加载;维护一个愿望清单,让未来功能不干扰当前工作。
有人一针见血地指出:20亿美元买的不是三个Markdown文件,而是一家6个月创造1亿美元收入的公司,以及其虚拟机能力、浏览器自动化和完整Agent平台。这个模式只是其中一块拼图。
这场讨论揭示了一个更深层的趋势:上下文工程正在成为一门独立学科。我们正在见证"Agent工程师"这个新角色的诞生——他们是软件工程师,但具备云服务、API和Agent能力的综合知识。
最实用的一句话总结来自社区:Claude是我的员工,我给它分配任务、检查每个任务、控制每个步骤。不要试图让Claude一次完成所有事情,那是不可能的。
reddit | 原始技能仓库 |Spec-kit |多Agent管理框架APM | Manus上下文工程博客
AI时代的编程圣经:Unix哲学的17条法则为何比以往更重要 | 帖子
Vercel CEO Guillermo Rauch 分享了一张图,将经典的Unix哲学重新定义为"成功进行Agentic编程的17条法则"。这些诞生于上世纪的设计原则,在AI Agent大行其道的今天,反而焕发出了新的生命力。
这17条法则分别是:
1. 模块化法则:编写简单的部件,用清晰的接口连接
2. 清晰法则:清晰胜于聪明
3. 组合法则:设计程序时要考虑与其他程序的连接
4. 分离法则:策略与机制分离,接口与引擎分离
5. 简洁法则:为简洁而设计,只在必要时增加复杂性
6. 节俭法则:只有当证明别无他法时,才写大型程序
7. 透明法则:为可见性而设计,让检查和调试更容易
8. 健壮法则:健壮性是透明性和简洁性的产物
9. 表示法则:将知识折叠进数据,让程序逻辑保持简单和健壮
10. 最小惊讶法则:在接口设计中,永远做最不令人惊讶的事
11. 沉默法则:当程序没有什么惊人的事要说时,就什么都不说
12. 修复法则:当必须失败时,要尽早失败,并大声报错
13. 经济法则:程序员的时间是昂贵的,优先节省它而非机器时间
14. 生成法则:避免手工编码,尽可能用程序来写程序
15. 优化法则:先做原型再打磨,先让它跑起来再优化
16. 多样性法则:不要相信任何"唯一正确方式"的说法
17. 扩展性法则:为未来而设计,因为它来得比你想象的更快
为什么这些老原则在Agent时代更加重要?
评论区的讨论揭示了深层原因。有人指出,"沉默法则"对Agent的意义已经发生了质变——Unix时代它意味着"不要打印不必要的输出",而在Agent时代它意味着"不要采取不必要的行动"。同样的哲学,但当程序可以批量修改你的代码库时,风险等级完全不同。
另一位开发者补充道:Unix哲学对Agent的价值被严重低估了——小型、可组合的工具,清晰的输入输出契约,幂等的步骤,可重放的日志。Agent越是可检查,你就越不需要盲目信任那些"魔法"。
还有人将Python之禅与这些法则对照:
- "显式优于隐式"在调试非确定性系统时变得至关重要
- "可读性很重要"因为你会不断盯着traces、prompts和工具定义
- "错误永远不应该静默传递"映射为:永远要暴露LLM失败、工具失败、解析失败
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。
也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。
也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。
当我们把编程的执行权交给AI Agent时,我们实际上是在把几十年积累的工程智慧编码进系统提示词里。Unix哲学不再只是程序员的行为准则,而是成为了约束AI行为的宪法。
清晰胜于聪明,简洁胜于复杂,可检查胜于黑箱——这些原则在人类程序员时代是美德,在Agent时代则是生存法则。
Vercel CEO Guillermo Rauch 分享了一张图,将经典的Unix哲学重新定义为"成功进行Agentic编程的17条法则"。这些诞生于上世纪的设计原则,在AI Agent大行其道的今天,反而焕发出了新的生命力。
这17条法则分别是:
1. 模块化法则:编写简单的部件,用清晰的接口连接
2. 清晰法则:清晰胜于聪明
3. 组合法则:设计程序时要考虑与其他程序的连接
4. 分离法则:策略与机制分离,接口与引擎分离
5. 简洁法则:为简洁而设计,只在必要时增加复杂性
6. 节俭法则:只有当证明别无他法时,才写大型程序
7. 透明法则:为可见性而设计,让检查和调试更容易
8. 健壮法则:健壮性是透明性和简洁性的产物
9. 表示法则:将知识折叠进数据,让程序逻辑保持简单和健壮
10. 最小惊讶法则:在接口设计中,永远做最不令人惊讶的事
11. 沉默法则:当程序没有什么惊人的事要说时,就什么都不说
12. 修复法则:当必须失败时,要尽早失败,并大声报错
13. 经济法则:程序员的时间是昂贵的,优先节省它而非机器时间
14. 生成法则:避免手工编码,尽可能用程序来写程序
15. 优化法则:先做原型再打磨,先让它跑起来再优化
16. 多样性法则:不要相信任何"唯一正确方式"的说法
17. 扩展性法则:为未来而设计,因为它来得比你想象的更快
为什么这些老原则在Agent时代更加重要?
评论区的讨论揭示了深层原因。有人指出,"沉默法则"对Agent的意义已经发生了质变——Unix时代它意味着"不要打印不必要的输出",而在Agent时代它意味着"不要采取不必要的行动"。同样的哲学,但当程序可以批量修改你的代码库时,风险等级完全不同。
另一位开发者补充道:Unix哲学对Agent的价值被严重低估了——小型、可组合的工具,清晰的输入输出契约,幂等的步骤,可重放的日志。Agent越是可检查,你就越不需要盲目信任那些"魔法"。
还有人将Python之禅与这些法则对照:
- "显式优于隐式"在调试非确定性系统时变得至关重要
- "可读性很重要"因为你会不断盯着traces、prompts和工具定义
- "错误永远不应该静默传递"映射为:永远要暴露LLM失败、工具失败、解析失败
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。
也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。
也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。
当我们把编程的执行权交给AI Agent时,我们实际上是在把几十年积累的工程智慧编码进系统提示词里。Unix哲学不再只是程序员的行为准则,而是成为了约束AI行为的宪法。
清晰胜于聪明,简洁胜于复杂,可检查胜于黑箱——这些原则在人类程序员时代是美德,在Agent时代则是生存法则。
Anthropic悄悄放出了一门官方课程,专门教你如何把Claude Code用到极致。15节课,1小时视频,还有测验和证书,干货密度相当高。
有人学完后整理了核心要点,值得收藏:
快捷键与模式切换
- Shift + Tab 按两次进入规划模式
- Ctrl + V 可以直接插入截图(注意不是 Command + V)
- 配合插件可以让Claude Code直接操作浏览器
控制推理深度的魔法词
在提示词中加入这些关键词,可以调节模型在任务上投入的token量:
- "Think" — 基础推理
- "Think more" — 扩展推理
- "Think a lot" — 全面推理
- "Think longer" — 延长推理时间
- "Ultrathink" — 最大推理能力
上下文管理
- /clear 清空上下文
- /compact 压缩上下文,可释放80%以上空间
进阶扩展
- 使用MCP服务器可以扩展工具集
- 支持大量pre-hooks和post-hooks,在工具执行前后自动运行
社区讨论中有个观点很有价值:课程没教的真正技能,是知道什么时候该重置上下文。很多人卡在问题里挣扎几小时,其实是在和"上下文腐化"作斗争,不如在完成一个里程碑后果断清空重来。
还有人指出,/clear比/compact更彻底,该用哪个要看场景。
当然也有老手表示,如果你已经每天高强度使用Claude Code,这门课的增量信息有限。但对于想系统入门或查漏补缺的人来说,官方出品的体系化内容,依然是最稳妥的起点。