Damn Agent

欢迎来到 Damn Agent

Damn Agent 的阅读方式、内容边界和核心入口。

Damn Agent 是一个面向开发者的 AI Agent 技术学习文档站。它不把智能体描述成一个单点能力,而是把它拆成可学习、可实现、可评测的工程系统。欢迎通过 维护者 页面查看协作者并参与共建。

你会在这里学到什么

  • 如何理解 LLM 的能力边界、Token 预算、推理参数和结构化输出,建立模型层基础。
  • 如何理解 Agent Loop,以及它和普通 LLM 调用的区别。
  • 如何建立 Agent 工程需要的语言基础:TypeScript 优先,Python 其次,Go/Rust 面向 AI infra。
  • 如何设计工具调用、记忆、状态、上下文和人工接管。
  • 如何用评测、日志、轨迹回放和权限控制让 Agent 更可靠。
  • 如何比较 LangGraph、Mastra、AutoGen、CrewAI 等框架。
  • 如何比较 Claude Code、Codex、Cursor、Gemini CLI、Qwen Code 等主流编码 Agent 的产品形态与工程特点。
  • 如何拆解社区开源智能体项目,判断哪些设计值得学习和复用。
  • 如何拆解研究型 Agent、代码 Agent 的真实工作流。

核心入口

  • 模型基础知识:LLM 概览、Transformer、Token、推理参数、结构化输出与模型选型。
  • LLM 概览:理解大语言模型的能力、局限与 Agent 分工边界。
  • Token 与上下文窗口:掌握上下文预算、成本与压缩策略。
  • 结构化输出与工具调用:把模型意图约束成可校验的工具接口。
  • 智能体基础:从 ReAct、工具、记忆、规划到多 Agent 和 MCP。
  • Agent Loop:理解观察、规划、执行、检查的循环结构。
  • 工具调用与记忆:区分工具接口、上下文、记忆和状态。
  • 规划、反思与任务分解:理解长任务 Agent 的计划、检查和停止条件。
  • 多 Agent 协作:拆解角色、通信、共享状态和协作风险。
  • 编程语言基础:围绕 Agent 工程建立 TypeScript、Python、Go、Rust 的知识储备。
  • TypeScript:作为智能体第一编程语言,服务产品化 Agent、工具调用、UI 和 SDK 集成。
  • Python:作为第二编程语言,服务 RAG、评测、模型实验和研究原型。
  • Harness 工程构件:拆解 Session、Harness、Sandbox 等工程边界。
  • RAG 与知识系统:从采集、切分、索引到引用和 freshness。
  • 安全、权限与人类接管:梳理工具权限、敏感数据和高风险动作审批。
  • 框架选型总览:按状态、工具、工作流、多 Agent 和部署比较框架。
  • 开源智能体:单独拆解社区开源智能体项目的架构、运行方式和可借鉴点。
  • 编码 Agent:介绍 Claude Code、Codex、Cursor、Gemini CLI、Qwen Code 等主流编码 Agent 产品。
  • Claude Code:终端编码 Agent 的工具系统、扩展机制与 Harness 架构。
  • Claude Code 源码解析:把代码 Agent 的查询引擎、工具系统和扩展机制放到真实案例里看。
  • 维护者:查看网站维护者和远端协作者 GitHub ID。

一个最小心智模型

正在渲染图表…

最小 Agent 伪代码

agent-loop.ts
type StepResult = {
  observation: string;
  done: boolean;
};

async function runAgent(goal: string) {
  const state = { goal, trace: [] as StepResult[] };

  while (state.trace.length < 8) {
    const plan = await planNextStep(state);
    const observation = await callTool(plan.tool, plan.input);
    const result = await reflect(goal, observation);

    state.trace.push(result);

    if (result.done) {
      return summarize(state);
    }
  }

  return escalateToHuman(state);
}

这段代码不是为了直接复制,而是提醒你:Agent 的关键是循环、状态、工具边界和停止条件。

参考来源

On this page