1.2 AI Agent 的核心能力

概述

一个功能完整的 AI Agent 需要具备多种核心能力。本节将详细介绍这些能力及其实现方式。

1. 感知能力 (Perception)

输入理解

Agent 需要理解各种类型的输入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 文本输入
const textInput = "帮我分析这个文件";

// 多模态输入(未来扩展)
const multimodalInput = {
text: "这张图片有什么问题?",
image: "data:image/png;base64,..."
};

// 结构化输入
const structuredInput = {
task: "code_review",
files: ["src/app.ts", "src/utils.ts"],
options: { strict: true }
};

上下文理解

1
2
3
4
5
6
7
// 对话历史上下文
const context = [
{ role: "user", content: "创建一个待办事项应用" },
{ role: "assistant", content: "好的,使用什么框架?" },
{ role: "user", content: "使用 React" },
// 当前理解:用户想要创建 React 待办应用
];

2. 推理能力 (Reasoning)

任务分解

将复杂任务分解为可执行的步骤:

1
2
3
4
5
6
7
8
9
10
11
// 用户请求:"分析销售数据并生成报告"

// Agent 推理:
const plan = [
"1. 读取销售数据文件",
"2. 验证数据格式",
"3. 计算统计指标",
"4. 生成可视化图表",
"5. 创建分析报告",
"6. 保存报告文件"
];

决策制定

基于当前状态选择下一步行动:

1
2
3
4
5
6
7
8
9
10
11
function decideNextStep(currentState, tools) {
if (currentState.needsData) {
return { tool: "read", params: { file: currentState.dataFile } };
}
if (currentState.needsAnalysis) {
return { tool: "analyze", params: currentState.data };
}
if (currentState.needsReport) {
return { tool: "write", params: { file: "report.md" } };
}
}

3. 行动能力 (Action)

工具调用

Agent 可以调用预定义的工具:

1
2
3
4
5
6
7
8
9
10
11
// 内置工具
const tools = {
read: (path) => fs.readFileSync(path, 'utf-8'),
write: (path, content) => fs.writeFileSync(path, content),
exec: (command) => child_process.execSync(command)
};

// 工具调用示例
const result = await tools.read('./data.json');
await tools.write('./output.txt', 'Hello World');
const output = await tools.exec('ls -la');

API 集成

与外部服务交互:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// HTTP API 调用
async function callAPI(url, data) {
const response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
return response.json();
}

// Agent 可以调用:
// - 数据库 API
// - 云服务 API
// - 第三方服务 API

4. 记忆能力 (Memory)

短期记忆

当前对话的上下文:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
interface ShortTermMemory {
messages: Message[]; // 对话历史
currentTask: string; // 当前任务
toolResults: any[]; // 工具执行结果
}

const workingMemory: ShortTermMemory = {
messages: [
{ role: "user", content: "分析数据" },
{ role: "assistant", content: "需要哪些数据?" },
{ role: "user", content: "sales.json" }
],
currentTask: "analyze_sales_data",
toolResults: [
{ tool: "read", result: "{...}" }
]
};

长期记忆

持久化的知识和经验:

1
2
3
4
5
6
7
8
9
10
interface LongTermMemory {
sessions: Session[]; // 历史会话
skills: Skill[]; // 学习的技能
knowledge: KnowledgeBase; // 知识库
}

// 存储在文件系统中
const memoryPath = "./memory/";
const sessions = loadSessions(memoryPath + "sessions/");
const skills = loadSkills(memoryPath + "skills/");

5. 学习能力 (Learning)

技能获取

动态加载新技能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 技能定义
interface Skill {
name: string;
description: string;
category: string;
instructions: string;
examples: Example[];
}

// 从文件加载技能
const skills = await loadSkillsFromDirectory("./skills/");

// 使用技能
systemPrompt += `\nAvailable skills:\n`;
skills.forEach(skill => {
systemPrompt += `- ${skill.name}: ${skill.description}\n`;
});

经验积累

从历史交互中学习:

1
2
3
4
5
6
7
8
9
10
11
12
13
// 记录成功的任务执行模式
const patterns = {
"data_analysis": {
tools: ["read", "analyze", "chart", "write"],
success_rate: 0.95
},
"code_generation": {
tools: ["read", "write", "test"],
success_rate: 0.88
}
};

// 用于优化未来的任务规划

6. 沟通能力 (Communication)

自然语言生成

生成清晰、有用的响应:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 生成友好的响应
function generateResponse(result, context) {
return `
我完成了 ${context.task}

执行结果:
${formatResult(result)}

使用了 ${context.toolsUsed.length} 个工具:
${context.toolsUsed.map(t => `- ${t}`).join('\n')}

有什么需要调整的吗?
`.trim();
}

状态汇报

实时报告进度和状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 流式输出进度
async function executeWithProgress(task) {
sendMessage("🔍 正在分析需求...");
const plan = await planTask(task);

sendMessage(`📋 制定了 ${plan.length} 个步骤`);

for (let i = 0; i < plan.length; i++) {
sendMessage(`⚙️ 执行步骤 ${i + 1}/${plan.length}: ${plan[i].name}`);
await executeStep(plan[i]);
}

sendMessage("✅ 任务完成!");
}

7. 协作能力 (Collaboration)

多 Agent 协作(未来扩展)

1
2
3
4
5
6
7
8
9
10
11
// 主 Agent 委派子任务
const tasks = [
{ agent: "data-analyst", task: "分析销售趋势" },
{ agent: "report-writer", task: "生成报告" },
{ agent: "chart-designer", task: "创建图表" }
];

// 并行执行
const results = await Promise.all(
tasks.map(t => executeAgentTask(t.agent, t.task))
);

人机协作

理解人类反馈并调整行为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 交互式执行
async function executeWithFeedback(task) {
let result = await executeTask(task);

while (true) {
const feedback = await requestFeedback(result);

if (feedback.satisfied) {
break;
}

// 根据反馈调整
result = await adjustAndExecute(result, feedback);
}

return result;
}

能力矩阵

能力 Step 0 Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 Step 7 Step 8
感知
推理
行动
记忆 ✅✅
学习
沟通 ✅✅
协作

注:✅✅ 表示该能力在此步骤得到增强

总结

AI Agent 的核心能力相互配合,形成一个完整的智能系统:

  1. 感知 → 理解用户需求和当前状态
  2. 推理 → 制定行动计划
  3. 行动 → 执行具体操作
  4. 记忆 → 保存和利用经验
  5. 学习 → 持续改进能力
  6. 沟通 → 与用户有效交互
  7. 协作 → 与其他 Agent 或人类合作

接下来,我们将逐步实现这些能力,构建一个完整的 AI Agent 系统。

导航

上一篇: 1.1 什么是 AI Agent

下一篇: 1.3 技术栈选择