Damn AgentBeta

欢迎来到 Damn Agent

Damn Agent 的阅读方式、内容边界和核心入口。当前为 Beta 版本,目录与正文仍在持续完善。

Damn Agent 是一个面向开发者的 AI Agent 技术学习文档站,当前处于 Beta(0.2.0-beta 阶段。它不把智能体描述成一个单点能力,而是把它拆成可学习、可实现、可评测的工程系统。Beta 期间目录结构和正文会频繁调整,欢迎通过 维护者 页面查看协作者并参与共建。

你会在这里学到什么

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

核心入口

一个最小心智模型

正在渲染图表…

最小 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