尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

基于ACR架构构建本地AI助手:从记忆、技能到智能体的完整实践

基于ACR架构构建本地AI助手:从记忆、技能到智能体的完整实践 最近在尝试将多个AI能力整合到本地应用中时发现了一个痛点市面上的框架要么过于笨重依赖云端服务要么功能单一难以实现复杂的记忆、技能编排和智能体协作。直到我深入体验了ACR (AI Coordination Runtime)一个标榜“本地优先”的AI编排运行时才找到了一个优雅的解决方案。它集成了内存管理、技能库和智能体协调让开发者能像搭积木一样在本地环境中构建出功能强大的AI应用。本文将为你完整拆解ACR的核心概念、架构设计并通过一个从零开始的实战项目手把手教你如何利用ACR构建一个具备长期记忆和工具调用能力的本地AI助手。无论你是想探索AI应用开发的新范式还是希望将AI能力更深度、更安全地集成到自己的产品中这篇文章都能提供一条清晰的路径。1. ACR 核心概念与架构解析在深入代码之前我们首先要理解ACR究竟是什么以及它试图解决什么问题。1.1 什么是 ACRACR全称 AI Coordination Runtime即人工智能协调运行时。你可以把它理解为一个专为AI应用设计的“操作系统”或“运行时环境”。它的核心设计哲学是“本地优先”这意味着数据主权所有的对话历史、记忆、知识库都优先存储在本地无需担心隐私泄露或云服务商的数据政策。离线能力核心的推理、技能调用可以在没有网络连接的情况下进行当然调用大模型本身通常需要网络。低延迟避免了网络往返带来的延迟对于需要快速响应的交互式应用至关重要。可定制性你可以完全控制运行时的每一个组件根据需求进行深度定制。ACR的目标是成为连接底层大模型如 OpenAI GPT、本地部署的 Llama 等与上层复杂AI应用如智能客服、个人知识管家、自动化工作流之间的桥梁。1.2 三大核心支柱ACR的架构主要围绕三个核心概念构建这也是其名称中“Coordination”的体现Memory (内存/记忆)这不是指计算机的RAM而是指AI的“记忆系统”。ACR提供了结构化的方式来持久化存储和检索与AI的交互历史、用户偏好、事实知识等。这使得AI能够进行多轮连贯的对话并拥有“长期记忆”。Skills (技能)技能是AI可以执行的具体操作单元。一个技能可以非常简单如“获取当前时间”也可以非常复杂如“分析这份PDF文档并生成摘要”。ACR允许你将功能封装成标准的技能并通过统一的接口进行调用和管理。Agents (智能体)智能体是ACR中的执行实体。它利用Memory来理解上下文通过规划和决策调用合适的Skills来完成用户指定的任务。一个ACR运行时可以运行多个智能体它们可以协作完成更复杂的任务。1.3 架构总览一个典型的ACR应用架构如下所示[用户/系统] | v [ACR 运行时] |-- [智能体 (Agent)] | |-- 决策引擎 | |-- 技能调用器 | -- 记忆管理器 | |-- [记忆系统 (Memory)] | |-- 对话历史存储 | |-- 向量知识库 | -- 实体记忆 | |-- [技能库 (Skills)] | |-- 本地技能 (计算、文件操作) | |-- 网络API技能 (天气、搜索) | -- 工具封装技能 | -- [模型抽象层] |-- OpenAI GPT |-- Anthropic Claude -- 本地模型 (Llama, Qwen)ACR运行时负责协调这三者并与底层的大语言模型进行通信将用户的自然语言指令转化为一系列可执行的技能调用并管理整个过程中的状态和记忆。2. 环境准备与项目初始化接下来我们开始动手搭建。本文将以一个Python项目为例因为Python是AI领域最流行的语言且有丰富的库支持。2.1 基础环境要求操作系统Windows 10/11, macOS, 或 Linux (如 Ubuntu 20.04)。本文演示在 macOS/Linux 环境下进行。Python版本 3.8 或更高。推荐使用 3.10 以获得最佳兼容性。包管理工具pip(Python 自带) 或poetry(更推荐用于项目管理)。代码编辑器VS Code, PyCharm 等任选。2.2 创建项目并安装ACR首先我们创建一个全新的项目目录并初始化虚拟环境这是管理Python依赖的最佳实践。# 1. 创建项目目录并进入 mkdir acr-demo-assistant cd acr-demo-assistant # 2. 创建虚拟环境 (以 venv 为例) python3 -m venv venv # 3. 激活虚拟环境 # macOS/Linux: source venv/bin/activate # Windows: # venv\Scripts\activate # 4. 升级pip pip install --upgrade pip目前ACR 可能不是一个在 PyPI 上直接可用的包它可能是一个开源项目或概念框架。为了进行本教程我们将使用一个功能相似且流行的开源框架LangChain来模拟实现 ACR 的核心思想。LangChain 提供了强大的智能体、记忆和工具相当于技能功能且生态丰富。# 安装 LangChain 及其相关组件 pip install langchain langchain-openai langchain-community # 安装用于记忆存储的向量数据库客户端 (以Chroma为例轻量且易用) pip install chromadb # 安装用于技能调用的额外工具库 pip install requests python-dotenv2.3 项目结构规划在开始编码前规划好项目结构能让代码更清晰。acr-demo-assistant/ ├── .env # 存储敏感配置如API密钥 ├── .gitignore # Git忽略文件 ├── requirements.txt # 项目依赖列表 ├── src/ # 源代码目录 │ ├── __init__.py │ ├── main.py # 主程序入口 │ ├── memory/ # 记忆模块 │ │ ├── __init__.py │ │ └── chat_memory.py │ ├── skills/ # 技能模块 │ │ ├── __init__.py │ │ ├── calculator.py │ │ └── web_search.py │ └── agent/ # 智能体模块 │ ├── __init__.py │ └── assistant_agent.py └── README.md使用以下命令快速创建结构mkdir -p src/{memory,skills,agent} touch .env .gitignore requirements.txt README.md src/__init__.py src/main.py touch src/memory/__init__.py src/memory/chat_memory.py touch src/skills/__init__.py src/skills/calculator.py src/skills/web_search.py touch src/agent/__init__.py src/agent/assistant_agent.py将当前安装的依赖冻结到requirements.txtpip freeze requirements.txt在.gitignore中添加venv/ .env __pycache__/ *.pyc chroma_db/ # 向量数据库存储目录3. 构建核心模块记忆、技能与智能体我们将按照 ACR 的三大支柱自底向上构建我们的系统。3.1 实现记忆系统 (Memory)记忆系统负责保存对话历史让AI拥有上下文。我们将使用 LangChain 的ConversationBufferMemory并结合Chroma向量数据库来实现一个简单的、支持长期记忆检索的系统。首先在src/memory/chat_memory.py中# file: src/memory/chat_memory.py import os from typing import List, Dict, Any from langchain.memory import ConversationBufferMemory from langchain_community.vectorstores import Chroma from langchain_openai import OpenAIEmbeddings from langchain.schema import Document from langchain.text_splitter import RecursiveCharacterTextSplitter class EnhancedChatMemory: 增强的聊天记忆系统。 结合了短期缓冲区记忆和基于向量数据库的长期知识记忆。 def __init__(self, memory_key: str chat_history, persist_dir: str ./chroma_db): # 短期对话记忆用于维护最近几轮对话上下文 self.buffer_memory ConversationBufferMemory(memory_keymemory_key, return_messagesTrue) # 初始化嵌入模型用于将文本转换为向量 # 注意这里使用了OpenAI的嵌入模型需要OPENAI_API_KEY。也可替换为本地模型如 sentence-transformers self.embeddings OpenAIEmbeddings() # 持久化目录 self.persist_dir persist_dir os.makedirs(self.persist_dir, exist_okTrue) # 初始化或加载向量数据库 self.vectorstore Chroma( embedding_functionself.embeddings, persist_directoryself.persist_dir ) self.text_splitter RecursiveCharacterTextSplitter(chunk_size500, chunk_overlap50) def save_context(self, user_input: str, ai_response: str): 保存一轮对话的上下文到缓冲区记忆。 self.buffer_memory.save_context({input: user_input}, {output: ai_response}) # 同时可以选择性地将重要的QA存入长期记忆 # self._add_to_long_term_memory(fUser: {user_input}\nAI: {ai_response}) def load_memory_variables(self, inputs: Dict[str, Any]) - Dict[str, Any]: 加载记忆变量供智能体使用。 return self.buffer_memory.load_memory_variables(inputs) def _add_to_long_term_memory(self, text: str, metadata: Dict None): 将文本添加到长期向量记忆库。 if metadata is None: metadata {} docs [Document(page_contenttext, metadatametadata)] self.vectorstore.add_documents(docs) def search_memory(self, query: str, k: int 3) - List[str]: 从长期记忆中搜索相关片段。 docs self.vectorstore.similarity_search(query, kk) return [doc.page_content for doc in docs] def clear_buffer(self): 清空短期缓冲区记忆。 self.buffer_memory.clear()关键点解释ConversationBufferMemoryLangChain提供的内存类自动管理最近N轮对话的输入输出。Chroma一个轻量级的开源向量数据库用于存储和检索文本嵌入向量。它允许我们根据语义相似性搜索过去的对话或知识。OpenAIEmbeddings将文本转换为向量的模型。这是实现语义搜索的关键。如果你希望完全本地运行可以替换为HuggingFaceEmbeddings并使用本地模型。我们设计了save_context和load_memory_variables方法这与LangChain智能体的期望接口兼容。3.2 实现技能库 (Skills)技能是智能体可以调用的工具。我们将创建两个示例技能一个计算器和一个网络搜索技能。首先在src/skills/calculator.py中# file: src/skills/calculator.py import math from typing import Union from pydantic import BaseModel, Field class CalculatorInput(BaseModel): 计算器技能的输入模型。 expression: str Field(description一个有效的数学表达式例如3 5 * 2 或 sqrt(16)) def calculate_expression(expression: str) - Union[float, int, str]: 计算一个数学表达式。 支持 , -, *, /, **, sqrt, sin, cos 等。 注意使用eval存在安全风险仅用于演示。生产环境应使用更安全的解析器如 ast.literal_eval 或第三方库。 # 安全警告在实际生产应用中应对表达式进行严格的验证和清洗 # 或使用安全的数学表达式库如 numexpr避免代码注入。 allowed_names {k: v for k, v in math.__dict__.items() if not k.startswith(_)} allowed_names.update({abs: abs}) try: # 非常基础的检查替换一些常用函数名 expression expression.replace(^, **) # 这里为了演示简化了安全处理。实际项目务必加强 result eval(expression, {__builtins__: {}}, allowed_names) return result except ZeroDivisionError: return 错误除数不能为零 except (SyntaxError, NameError, TypeError) as e: return f表达式错误{e} # 这是LangChain Tool所期望的函数格式 def calculator_tool(expression: str) - str: 一个用于计算数学表达式的工具。 result calculate_expression(expression) return f计算结果{result}接着在src/skills/web_search.py中实现一个模拟的网络搜索技能真实搜索需要API key这里模拟# file: src/skills/web_search.py import requests import json from pydantic import BaseModel, Field from typing import List import os from dotenv import load_dotenv load_dotenv() # 加载 .env 文件中的环境变量 class SearchInput(BaseModel): 网络搜索技能的输入模型。 query: str Field(description要搜索的关键词或问题) def web_search_tool(query: str) - str: 使用模拟/或真实API进行网络搜索。 此处为演示模拟返回固定结果。 实际可接入 Serper API、Google Custom Search API 等。 # 示例模拟一个API调用 print(f[模拟搜索] 正在搜索: {query}) # 这里是模拟数据 mock_results [ {title: ACR 开源项目介绍, snippet: ACR是一个本地优先的AI编排运行时..., link: https://example.com/acr}, {title: LangChain 官方文档, snippet: LangChain是一个用于开发LLM应用的框架..., link: https://python.langchain.com}, {title: 构建AI智能体的最佳实践, snippet: 本文讨论了设计鲁棒AI智能体的几个关键模式..., link: https://example.com/ai-agent}, ] # 在实际应用中你可能会这样调用真实API例如Serper # api_key os.getenv(SERPER_API_KEY) # url https://google.serper.dev/search # payload json.dumps({q: query}) # headers {X-API-KEY: api_key, Content-Type: application/json} # response requests.post(url, headersheaders, datapayload) # real_results response.json().get(organic, []) formatted_results [] for i, res in enumerate(mock_results, 1): formatted_results.append(f{i}. [{res[title]}]({res[link]})\n {res[snippet]}) return f关于 {query} 的搜索结果\n \n\n.join(formatted_results)关键点解释技能标准化每个技能都被封装成一个函数并通常有对应的Pydantic输入模型。这有助于智能体理解技能的用途和所需参数。工具化这些函数稍后将被包装成LangChain的Tool对象以便智能体调用。安全性calculator_tool中明确指出了使用eval的安全风险并给出了生产环境的建议。这是编写技能时必须考虑的重点。配置管理web_search_tool中演示了如何使用python-dotenv从.env文件加载敏感配置如API密钥。3.3 实现智能体 (Agent)智能体是大脑它根据记忆和用户输入决定调用哪个技能。我们将使用LangChain的“ReAct”代理框架它结合了推理和行动。在src/agent/assistant_agent.py中# file: src/agent/assistant_agent.py import os from typing import List from langchain.agents import AgentExecutor, create_react_agent from langchain.tools import Tool from langchain.prompts import PromptTemplate from langchain_openai import ChatOpenAI from dotenv import load_dotenv # 导入我们自定义的记忆和技能 from src.memory.chat_memory import EnhancedChatMemory from src.skills.calculator import calculator_tool, CalculatorInput from src.skills.web_search import web_search_tool, SearchInput load_dotenv() class AssistantAgent: def __init__(self, model_name: str gpt-3.5-turbo): 初始化AI助手智能体。 Args: model_name: 使用的OpenAI模型名称如 gpt-3.5-turbo 或 gpt-4。 需要设置 OPENAI_API_KEY 环境变量。 # 1. 初始化大语言模型 self.llm ChatOpenAI( modelmodel_name, temperature0, # 降低随机性使输出更确定 openai_api_keyos.getenv(OPENAI_API_KEY) ) # 2. 初始化记忆系统 self.memory EnhancedChatMemory() # 3. 构建技能(Tools)列表 self.tools self._setup_tools() # 4. 创建ReAct智能体 self.agent_executor self._create_agent() def _setup_tools(self) - List[Tool]: 将自定义函数包装成LangChain Tool对象。 tools [ Tool( nameCalculator, funccalculator_tool, description用于计算数学表达式。输入应该是一个清晰的数学表达式字符串。 例如3 5 * 2, sqrt(16), sin(pi/2)。 注意不支持变量只支持数字和基本数学函数。, args_schemaCalculatorInput, # 提供输入模型以帮助智能体理解参数 ), Tool( nameWebSearch, funcweb_search_tool, description在互联网上搜索最新信息。当需要回答关于实时事件、最新新闻或未知领域的问题时使用此工具。 输入应该是一个搜索查询字符串。, args_schemaSearchInput, ), # 可以在此处添加更多工具... # Tool(nameGetCurrentTime, funcget_time_tool, description...), ] return tools def _create_agent(self) - AgentExecutor: 使用ReAct框架创建智能体执行器。 # ReAct提示模板LangChain有内置这里使用一个简化版进行说明 react_prompt PromptTemplate.from_template( 你是一个有帮助的AI助手可以调用工具来解决问题。 你拥有访问以下工具的权限 {tools} 使用以下格式 问题用户提出的问题 思考你需要思考如何逐步解决问题。你可以使用工具也可以直接回答。 行动要调用的工具名称必须是[{tool_names}]中的一个。 行动输入调用该工具所需的输入 观察工具返回的结果 ... (这个“思考/行动/行动输入/观察”循环可以重复多次) 最终答案根据所有观察给出最终答案 开始 之前的对话记录 {chat_history} 问题{input} 思考{agent_scratchpad} ) # 创建智能体 agent create_react_agent( llmself.llm, toolsself.tools, promptreact_prompt ) # 创建执行器并传入记忆 agent_executor AgentExecutor( agentagent, toolsself.tools, memoryself.memory.buffer_memory, # 将记忆系统接入智能体 verboseTrue, # 设置为True可以看到智能体的思考过程调试时非常有用 handle_parsing_errorsTrue, # 处理解析错误 max_iterations5, # 限制最大迭代次数防止死循环 ) return agent_executor def run(self, user_input: str) - str: 运行智能体处理用户输入并返回响应。 try: response self.agent_executor.invoke({input: user_input}) return response[output] except Exception as e: return f智能体执行出错{str(e)} def search_long_term_memory(self, query: str) - List[str]: 代理方法搜索长期记忆。 return self.memory.search_memory(query)关键点解释模型层使用ChatOpenAI连接GPT模型。这是智能体推理能力的来源。工具集成将之前定义的calculator_tool和web_search_tool包装成Tool对象并提供了清晰的描述。描述至关重要因为它指导LLM何时以及如何使用该工具。ReAct框架create_react_agent创建了一个遵循“推理-行动”循环的智能体。它会先思考然后决定是调用工具还是直接回答。记忆集成通过memoryself.memory.buffer_memory将对话记忆注入到智能体执行器中这样每次对话都能带上历史上下文。安全与控制max_iterations防止智能体陷入无限循环handle_parsing_errors能优雅地处理LLM输出格式错误的情况。4. 组装与运行创建你的第一个ACR应用现在所有核心模块都已就绪让我们把它们组装起来并创建一个交互式的主程序。4.1 配置环境变量在项目根目录创建.env文件并填入你的 OpenAI API 密钥。如果你要使用真实的搜索API也在这里配置。# file: .env OPENAI_API_KEYsk-your-openai-api-key-here # SERPER_API_KEYyour-serper-api-key-here重要确保.env文件已被添加到.gitignore中切勿提交到版本控制系统。4.2 编写主程序在src/main.py中我们将创建一个简单的命令行交互界面。# file: src/main.py import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from src.agent.assistant_agent import AssistantAgent def main(): print( * 50) print(欢迎使用本地AI助手 (基于ACR概念构建)) print(输入 quit 或 exit 退出程序) print(输入 clear 清空对话记忆) print(输入 search 关键词 搜索长期记忆) print( * 50) # 初始化智能体 print(\n正在初始化智能体...) agent AssistantAgent(model_namegpt-3.5-turbo) # 可改为 gpt-4 以获得更强推理能力 print(初始化完成\n) while True: try: user_input input(\n你: ).strip() if user_input.lower() in [quit, exit, q]: print(AI: 再见) break elif user_input.lower() clear: agent.memory.clear_buffer() print(AI: 对话记忆已清空。) continue elif user_input.lower().startswith(search ): query user_input[7:].strip() if query: results agent.search_long_term_memory(query) if results: print(f\n在记忆中找到相关内容) for r in results: print(f- {r[:100]}...) # 打印前100字符 else: print(未在记忆中找到相关结果。) else: print(请输入搜索关键词。) continue if not user_input: continue # 调用智能体处理输入 print(\nAI: , end, flushTrue) response agent.run(user_input) print(response) except KeyboardInterrupt: print(\n\n检测到中断退出程序。) break except Exception as e: print(f\n程序运行出错: {e}) if __name__ __main__: main()4.3 运行与测试一切准备就绪让我们运行这个程序。确保虚拟环境已激活且.env文件中的OPENAI_API_KEY已正确设置。在项目根目录下运行python src/main.py你将看到欢迎信息然后可以开始与你的AI助手对话。示例交互你: 3的平方加上4的平方等于多少 思考我需要计算一个数学表达式。用户问的是“3的平方加上4的平方”这可以转化为表达式“3**2 4**2”。 行动Calculator 行动输入3**2 4**2 观察计算结果25 思考我得到了计算结果25现在可以给出最终答案。 最终答案3的平方9加上4的平方16等于25。 AI: 3的平方9加上4的平方16等于25。你: LangChain是什么 思考这是一个关于技术框架的问题我的知识可能不是最新的最好搜索一下。 行动WebSearch 行动输入LangChain是什么 观察[模拟搜索] 正在搜索: LangChain是什么 关于 LangChain是什么 的搜索结果 1. [LangChain 官方文档](https://python.langchain.com) LangChain是一个用于开发LLM应用的框架... ... 思考根据搜索结果我可以总结LangChain的定义。 最终答案LangChain是一个用于开发大语言模型LLM应用的框架它提供了模块化的组件用于连接模型、记忆、索引和工具链简化了构建复杂AI应用的流程。 AI: LangChain是一个用于开发大语言模型LLM应用的框架...你: 我们刚才聊了什么 思考用户问的是对话历史。我需要查看记忆中的聊天记录。 智能体会从buffer_memory中加载之前的对话上下文 最终答案我们刚才的对话中你首先让我计算了“3的平方加上4的平方”结果是25。接着你问了“LangChain是什么”我根据搜索到的信息告诉你它是一个用于开发LLM应用的框架。 AI: 我们刚才的对话中...5. 常见问题与排查思路在构建和运行此类AI编排应用时你可能会遇到一些典型问题。问题现象可能原因解决思路导入错误ModuleNotFoundError1. 虚拟环境未激活。2. 依赖未安装。3.sys.path设置不正确导致找不到自定义模块。1. 运行source venv/bin/activate(Linux/Mac) 或venv\Scripts\activate(Windows)。2. 运行pip install -r requirements.txt。3. 确保在main.py中正确添加了项目根目录到sys.path或使用PYTHONPATH环境变量。OpenAI API 错误1. API Key 未设置或错误。2. 网络连接问题。3. 额度不足。1. 检查.env文件中的OPENAI_API_KEY是否正确并确保已加载 (load_dotenv())。2. 检查网络代理设置。3. 登录OpenAI平台检查额度。智能体陷入循环或调用错误工具1. 工具描述不够清晰。2. 模型温度 (temperature) 过高导致输出不稳定。3. ReAct提示词不适合当前任务。1. 优化Tool的description使其职责更单一、明确。2. 将temperature设为 0 或一个较低的值如0.1。3. 尝试使用LangChain内置的其他代理类型如create_structured_chat_agent。记忆不生效1. 记忆对象未正确传递给AgentExecutor。2. 记忆的memory_key与提示词中的占位符不匹配。1. 检查AgentExecutor初始化时是否传入了memory参数。2. 确保提示词模板中包含{chat_history}这样的占位符并且memory_key与之对应。向量数据库报错1. Chroma 持久化目录权限问题。2. 嵌入模型初始化失败。1. 确保运行程序的用户对./chroma_db目录有读写权限。2. 检查嵌入模型API Key如OpenAI或本地模型路径是否正确。技能函数执行出错1. 输入参数格式错误。2. 函数内部逻辑异常如网络超时。1. 使用args_schema(Pydantic模型) 可以帮助智能体生成格式正确的输入。2. 在技能函数内部添加完善的异常处理 (try...except)并返回清晰的错误信息。6. 最佳实践与进阶方向基于这个基础Demo你可以遵循以下最佳实践并将其扩展为更强大的生产级应用。6.1 工程化最佳实践配置管理将所有配置模型类型、API端点、路径集中到配置文件如config.yaml或环境变量中避免硬编码。日志记录集成logging模块记录智能体的思考过程、工具调用和错误便于调试和审计。技能验证与沙箱对于执行任意代码或系统命令的技能如计算器中的eval必须在沙箱环境中运行或进行严格的输入验证和白名单过滤。记忆优化摘要记忆对于长对话定期将旧对话摘要后存入长期记忆避免上下文窗口爆炸。分层记忆区分短期会话记忆、长期用户偏好记忆和事实知识库。错误处理与降级智能体调用失败时应有降级策略如提示用户重试、切换到更简单的模型、使用缓存结果。测试为技能函数编写单元测试为智能体编写集成测试模拟各种用户输入和边界情况。6.2 扩展你的ACR系统添加更多技能文件操作读取、总结本地文档TXT, PDF, Word。数据库查询连接数据库执行安全的SQL查询。代码执行在安全沙箱中运行Python代码片段。API集成连接企业内部系统CRM, ERP或第三方服务邮件、日历。升级智能体多智能体协作创建多个具有不同专长的智能体如“研究员”、“写手”、“校对员”让它们通过消息队列或共享状态协作完成任务。规划能力集成更高级的规划模块如LangChain的PlanAndExecute代理让智能体能分解复杂任务并制定分步计划。增强记忆系统向量知识库将你的文档、手册灌入向量数据库让智能体拥有强大的“知识储备”。图数据库记忆使用Neo4j等图数据库存储实体和关系实现更复杂的关联记忆。改进交互方式Web界面使用Gradio或Streamlit快速构建一个聊天机器人UI。API服务使用FastAPI将你的智能体封装成REST API供其他应用调用。集成到现有应用将ACR运行时作为微服务嵌入到你现有的桌面或移动应用中。通过本文的实践你已经掌握了构建一个本地优先AI编排运行时的核心思路和基本方法。从记忆、技能到智能体每一个组件都可以根据你的需求进行替换和增强。这种架构提供了极大的灵活性让你能够真正掌控AI能力并将其安全、高效地应用于各种场景。
返回列表