Live2d Test Env

最小harness工程

  1. 初始化配置

    • API key
    • model
    • temperature
    • maxSteps
    • timeout
    • tools
    • skills
    • system prompt
  2. 初始化 messages

    • system message
    • user message
  3. 进入 Agent loop

  4. 调用大模型

    • 传入 messages
    • 传入 tools schema
    • 获取 assistant response
  5. 判断模型输出

    • 如果是 final answer:结束
    • 如果是 tool call:进入工具执行
    • 如果是普通回答:根据任务决定是否结束
  6. 执行 tool

    • 校验参数
    • 调用 Node.js 函数
    • 捕获错误
    • 记录结果
  7. 将 tool result 写回 messages

  8. 继续下一轮

  9. 达到 maxSteps / timeout / error limit 后退出

  10. 输出最终答案、日志、工具调用记录

const messages = [
  { role: "system", content: systemPrompt },
  { role: "user", content: userPrompt }
];

for (let step = 0; step < maxSteps; step++) {
  const response = await callModel({
    model,
    temperature,
    messages,
    tools
  });

  messages.push(response.message);

  if (response.finalAnswer) {
    return response.finalAnswer;
  }

  if (response.toolCalls?.length) {
    for (const toolCall of response.toolCalls) {
      const result = await executeTool(toolCall.name, toolCall.arguments);

      messages.push({
        role: "tool",
        tool_call_id: toolCall.id,
        content: JSON.stringify(result)
      });
    }

    continue;
  }

  return response.message.content;
}

throw new Error("Agent stopped because maxSteps was reached");

完整 Agent 是:LLM Loop + Tool Call Loop + Skills Guidance + State + Termination + Observability

posted @ 2026-06-12 10:10  致爱丽丝  阅读(2)  评论(0)    收藏  举报