# Deno Agent 架构

Agent 不是一个特殊 runtime，而是“模型决策 → 工具执行 → 结果回传 → 停止判断”的循环。Deno 的价值在于给工具执行显式权限，并能用 Web API、npm SDK、MCP 与 Sandbox 组合边界。

## 先选复杂度

| 需求 | 起点 |
| --- | --- |
| 一个模型、少量函数工具 | 供应商官方 SDK，自己写短循环 |
| 工具要被多个客户端复用 | MCP Server |
| 多供应商、graph、tracing、现成 integration | 评估 LangChain.js / LangGraph |
| 文档索引、RAG 与数据 connector 为主 | 评估 LlamaIndex.TS |
| 执行模型生成代码 | Deno Sandbox，不是普通 `Deno.Command` |

框架通过 npm 兼容层能否安装，不等于每个 integration 在 Deno 上都可用。选型前为实际用到的 loader、vector store、native dependency 和 streaming path 写 smoke test。

## 可控循环必须有的边界

```text
用户请求
  → 模型（只看到允许的 tool schema）
  → 校验 tool name + arguments
  → 授权 / 人工确认
  → 执行有超时的工具
  → 返回结构化结果
  → 达到停止条件或最大步数
```

- 固定 `maxSteps`、总 deadline、token/成本预算和重试次数。
- 工具 handler 不接受任意 shell、SQL、URL 或文件路径。
- 读写分级；删除、付款、发布和生产变更必须单独授权。
- prompt injection 可能来自网页、数据库和 MCP resource；检索内容不是指令，也不是授权。
- 每步记录 tool 名、参数摘要、耗时、结果类型和错误，不记录秘密。

继续阅读：[OpenAI](/docs/ai/openai)、[MCP Server](/docs/ai/mcp-server)、[Deno Sandbox](/docs/ai/sandbox)。
