当前位置: 首页 > article >正文

LangChain OAP开源智能体平台架构解析与无代码实践指南

1. 项目概述与核心价值如果你对AI智能体Agent感兴趣但又觉得从零开始写代码、处理复杂的部署和运维是件头疼事那么你肯定不是一个人。这正是LangChain团队当初推出Open Agent PlatformOAP的初衷。简单来说OAP是一个开源的、无代码或低代码的智能体构建平台它提供了一个现代化的Web界面让你能像搭积木一样通过图形化操作来创建、管理和与基于LangGraph的智能体进行交互。想象一下你有一个很棒的想法比如一个能自动分析周报并给出建议的助手或者一个能连接公司内部知识库回答业务问题的客服机器人。传统的实现路径是学习LangGraph框架用Python或TypeScript编写智能体的状态图和逻辑然后处理工具调用、记忆、流式输出等一系列复杂问题最后还得搭建一个前端界面供团队使用。这个过程技术门槛高迭代速度慢。OAP的出现就是为了抹平这个鸿沟。它把智能体看作一个可配置的“产品”你只需要关心它的核心逻辑用LangGraph定义而OAP则负责提供用户界面、身份认证、多智能体协作编排Agent Supervisor、以及与应用工具通过MCP和知识库通过LangConnect RAG的连接能力。这使得业务专家、产品经理甚至是不太熟悉编程的团队成员也能参与到智能体的设计、测试和优化中来极大地加速了AI应用的落地。然而正如项目仓库顶部醒目的警告所言OAP已被官方弃用Deprecated。LangChain团队推荐用户转向他们在LangSmith平台上提供的Agent Builder服务。这是一个完全托管、无需代码的解决方案提供了创建、测试和部署智能体的一站式体验无需自己维护服务器。这标志着一个清晰的趋势对于智能体这类复杂应用云原生的、全托管的SaaS服务正在成为主流它们能更好地处理 scalability扩展性、reliability可靠性和 maintenance维护等问题。尽管如此深入剖析OAP的设计与实现对于我们理解一个成熟的智能体平台需要哪些核心组件、其架构如何设计以及从开源自托管到云端全托管的产品演进思路依然具有极高的学习价值。这就像研究一台经典汽车的发动机即便现在大家都开电动车了但其机械原理依然能给我们带来启发。2. 平台核心架构与设计理念拆解要理解OAP我们不能只把它看成一个简单的Web界面生成器。它是一个完整的、前后端分离的应用程序平台其设计紧密围绕LangGraph生态构建。下面我们来拆解它的核心架构和背后的设计考量。2.1 以LangGraph为核心的智能体抽象OAP最根本的设计决策是所有智能体都必须是基于LangGraph构建并部署在LangGraph Platform上的。这是一个非常关键的限制但也正是其强大和易用性的基础。为什么是LangGraphLangGraph是LangChain团队推出的用于构建复杂、有状态的多步骤AI应用即智能体的框架。它用“图”Graph的概念来定义智能体的工作流节点Nodes代表执行步骤如调用LLM、执行工具边Edges代表步骤之间的流转逻辑。这种范式非常适合描述智能体的决策循环Plan - Act - Observe。OAP直接利用LangGraph Platform作为智能体的“运行时引擎”和“部署平台”。这意味着执行可靠性LangGraph Platform负责智能体工作流的稳定执行、状态持久化、错误处理和可观测性通过LangSmith。配置标准化LangGraph智能体通过ZodTypeScript或PydanticPython定义其可配置参数configurable fields。OAP可以读取这些定义并自动在UI中生成相应的配置表单。无缝集成工具Tools、记忆Memory等LangGraph原生概念可以直接被OAP利用。OAP的定位因此OAP并不负责“运行”智能体而是作为智能体的“管理控制台”和“用户交互门户”。它通过LangGraph Platform的API与后台的智能体进行通信。这种架构分离了关注点智能体的核心逻辑和执行业务由LangGraph处理而用户管理、界面呈现、多智能体编排则由OAP处理。2.2 无代码界面背后的关键技术OAP宣称的“无代码”体验主要依赖于以下几项技术基于元数据Metadata的UI自动生成这是实现动态配置表单的核心。开发者在用LangGraph定义智能体时可以在可配置字段上添加特定的元数据例如x_oap_ui_config。这个元数据里包含了字段的显示名称、描述、UI组件类型如下拉框、滑块、文本域、可选值等。OAP的前端会读取这些元数据并动态渲染出对应的表单控件。这就避免了为每个智能体单独编写前端配置页面的工作量。MCPModel Context Protocol工具集成智能体需要调用外部工具如查询数据库、发送邮件、调用API。MCP是LangChain提出的一种标准化协议用于让AI模型或智能体安全、可控地访问外部工具和资源。OAP集成了MCP客户端可以连接到MCP服务器。管理员在OAP后台配置好可用的MCP服务器后这些工具就会自动出现在智能体的“工具箱”中供用户在构建智能体时选择和配置。这解决了工具连接和权限管理的标准化问题。LangConnect RAG集成对于需要知识库增强RAG的智能体OAP与LangConnect深度集成。LangConnect是另一个LangChain项目专注于构建生产级的RAG服务器。OAP允许用户将智能体指向一个已部署的LangConnect服务器端点。这样智能体在处理用户查询时可以自动调用该RAG服务进行知识检索并将结果融入上下文。需要注意的是OAP本身不包含RAG服务器它只是作为一个“连接器”。这种设计鼓励了微服务架构让RAG服务可以独立扩展和维护。2.3 多智能体协作与监管模式单个智能体的能力是有限的。复杂的任务往往需要多个各有所长的智能体协作完成。OAP引入了“Agent Supervisor”智能体监管者的概念来实现这一点。你可以创建一个特殊的“Supervisor”智能体它的职责不是直接处理用户任务而是根据任务类型和内容将工作分派给下属的“Worker”智能体并协调它们的工作流程。例如一个“客户支持Supervisor”可以判断用户问题是技术问题、账单问题还是普通咨询然后分别路由给“技术专家Agent”、“财务Agent”和“通用客服Agent”。在OAP的UI中你可以可视化地定义这种监管关系配置路由逻辑。这背后依然是基于LangGraph的“图中有图”来实现的Supervisor本身是一个LangGraph智能体它的工具之一就是“调用另一个智能体”。OAP平台使得这种复杂编排的配置和管理变得直观。2.4 身份认证与多租户设计作为一个可能被团队或企业使用的平台OAP内置了基于Supabase的身份认证和访问控制RBAC。这意味着用户可以注册、登录。管理员可以创建不同的团队Workspace。可以控制哪些用户能查看、编辑或运行特定的智能体。项目文档中也提到其认证模块是设计成可插拔的理论上可以替换成其他认证提供商如Auth0、Keycloak或自定义系统但这需要修改代码。这种设计确保了平台在企业环境下的可用性能够区分不同用户和项目的资源与权限。3. 从零搭建与深度配置实操指南虽然OAP已不再维护但通过复现其搭建过程我们能深刻理解一个智能体平台的组成部分。以下指南基于其开源代码和文档假设你具有一定的全栈开发经验。3.1 环境准备与依赖梳理首先你需要一个完整的开发环境。OAP是一个Monorepo项目使用Turborepo进行管理包含前端Next.js、后端、文档等多个应用。核心依赖Node.js (v18)和pnpm这是项目推荐的包管理器比npm/yarn在Monorepo下性能更好。Docker 和 Docker Compose用于快速启动Supabase认证数据库和LangConnect服务。LangGraph CLI用于将你开发的智能体部署到LangGraph Platform这是OAP能连接智能体的前提。一个LangSmith账户LangGraph Platform和LangSmith紧密集成你需要用它来管理智能体部署和查看运行日志。初始化步骤克隆仓库git clone https://github.com/langchain-ai/open-agent-platform.git安装依赖在项目根目录运行pnpm install。这个过程会安装所有子项目的依赖。环境变量配置复制.env.example文件为.env.local并填写关键配置。最重要的包括NEXT_PUBLIC_SUPABASE_URL和NEXT_PUBLIC_SUPABASE_ANON_KEY指向你的Supabase项目。LANGCHAIN_API_KEY你的LangSmith API密钥。LANGSMITH_TRACING设置为true以启用追踪。各种OAuth配置如果你使用GitHub/Google登录。3.2 后端服务与基础设施启动OAP的“后端”更偏向于一个配置中心和网关核心业务逻辑其实在LangGraph Platform。本地运行需要启动以下服务启动Supabase用于认证# 进入supabase目录 cd apps/supabase # 使用Docker Compose启动 docker-compose up -d这会在本地启动PostgreSQL数据库和GoTrue认证服务。之后你需要运行数据库迁移脚本来创建所需的用户表、团队表等。启动LangConnect RAG服务器可选但推荐# 假设你在项目根目录 docker-compose -f apps/langconnect/docker-compose.yml up -d这将启动一个预配置的LangConnect服务。你需要获取其API端点并在OAP管理后台进行配置这样智能体才能使用RAG功能。运行OAP应用后端Next.js API Routes# 在项目根目录 pnpm dev这会同时启动前端开发服务器和后端API路由。Next.js的API路由在这里处理前端请求与Supabase数据库交互以及调用LangGraph Platform的API。3.3 创建并连接你的第一个LangGraph智能体这是让OAP“活”起来的关键一步。OAP本身是空的它需要连接到你已部署的智能体。开发一个简单的LangGraph智能体 我们创建一个最简单的“回声”智能体。使用LangGraph的TypeScript SDK。// echo-agent.ts import { StateGraph, START, END } from langchain/langgraph; import { ChatOpenAI } from langchain/openai; import { z } from zod; import { HumanMessage } from langchain/core/messages; // 1. 定义智能体的状态 const StateSchema z.object({ messages: z.array(z.any()), }); // 2. 定义可配置参数这会被OAP读取 const ConfigSchema z.object({ llm_model: z.string().describe(The OpenAI model to use).default(gpt-4o-mini), system_prompt: z.string().describe(System instructions for the agent).default(You are a helpful assistant.), }).describe(Echo Agent Configuration); // 3. 定义工作流节点 async function callModel(state: typeof StateSchema, config: typeof ConfigSchema) { const llm new ChatOpenAI({ model: config.llm_model }); const lastMessage state.messages[state.messages.length - 1]; const response await llm.invoke([ new HumanMessage(config.system_prompt), lastMessage ]); return { messages: [response] }; } // 4. 构建图 const workflow new StateGraph(StateSchema) .addNode(echo, callModel) .addEdge(START, echo) .addEdge(echo, END); const app workflow.compile(); // 5. 为OAP添加UI配置元数据关键 const uiConfig { llm_model: { x_oap_ui_config: { label: LLM Model, description: Select the OpenAI model, ui_type: select, options: [gpt-4o, gpt-4o-mini, gpt-4-turbo] } }, system_prompt: { x_oap_ui_config: { label: System Prompt, description: Instructions guiding the agents behavior, ui_type: textarea, rows: 4 } } }; // 注意实际SDK中可能需要通过特定方式将uiConfig附加到ConfigSchema上。 // 这里仅为概念演示。新版LangGraph Zod集成可能直接支持装饰器。部署到LangGraph Platform# 使用LangGraph CLI部署 langgraph deploy echo-agent.ts --name my-echo-agent部署成功后你会在LangSmith平台的“Deployments”页面看到你的智能体并获得一个唯一的deployment_id。在OAP中连接智能体 登录OAP的Web界面通常是http://localhost:3000。进入“Agents”或“Deployments”管理页面。点击“Add Deployment”或“Connect Agent”。输入你在LangGraph Platform上获得的deployment_id。OAP会自动调用LangGraph API获取该智能体的配置模式ConfigSchema。如果配置正确且包含了x_oap_ui_config元数据OAP就会动态生成一个配置页面。保存后这个智能体就会出现在你的智能体列表中你可以通过OAP的聊天界面与它交互也可以在后台修改它的配置如切换模型、修改系统提示词。实操心得与避坑指南元数据是关键最常遇到的问题就是在OAP界面中智能体的配置只显示简单的文本输入框而不是预期的下拉框、滑块等。99%的原因是你的x_oap_ui_config元数据格式不正确或者没有使用LangGraph Zod来定义配置模式。务必检查元数据字段名和结构是否与OAP文档要求一致。版本对齐确保你本地使用的langchain/langgraph、langchain/core等包版本与OAP兼容并且与LangGraph Platform后端版本匹配。版本不匹配会导致API调用失败或配置解析错误。认证与权限首次连接部署时OAP需要使用你的LANGCHAIN_API_KEY去LangGraph Platform获取信息。确保该API Key有足够的权限访问你的部署。网络与CORS如果你将OAP部署到某个域名而LangGraph API调用出现CORS错误你可能需要在你的代理服务器如Nginx或Next.js配置中正确处理跨域请求。3.4 配置MCP工具与RAG集成让智能体拥有“手”和“记忆”是提升其能力的关键。集成MCP工具启动或选择一个MCP服务器。例如你可以使用modelcontextprotocol/server-filesystem来让智能体拥有读取本地文件的能力。npx modelcontextprotocol/server-filesystem该服务器会启动在某个端口如3001并提供一个SSEServer-Sent Events或WebSocket端点。在OAP管理后台配置MCP服务器。通常有一个“Tools”或“MCP Servers”的管理页面。你需要添加服务器名称、类型SSE/WS和URL。在智能体配置中启用工具。当你编辑或创建一个智能体配置时应该会出现一个“可用工具”的列表其中包含你刚添加的MCP服务器提供的工具如read_file,list_directory。勾选你希望该智能体能使用的工具。测试。在聊天界面中对你的智能体说“请列出当前目录下的文件”如果配置正确智能体会调用MCP工具并返回结果。集成LangConnect RAG确保你的LangConnect服务器已启动并运行如前文Docker Compose步骤。在OAP管理后台找到“RAG”或“Knowledge Bases”配置部分。添加一个新的知识库连接输入你的LangConnect服务器地址如http://localhost:8000和必要的API密钥。在智能体配置中你会看到多了一个“RAG”或“Retrieval”的配置区块。在这里你可以选择刚才连接的知识库并设置一些检索参数如返回的文档数量、相似度阈值等。配置完成后当用户向该智能体提问时它会先将问题发送到LangConnect服务器进行检索将检索到的相关文档作为上下文再生成最终回答。4. 平台运维、问题排查与替代方案分析运行一个像OAP这样的自托管平台意味着你需要承担所有的运维责任。以下是可能遇到的问题和排查思路。4.1 常见问题与排查清单问题现象可能原因排查步骤前端页面白屏或加载失败1. 构建失败。2. 环境变量未正确加载。3. Supabase服务未启动。1. 检查终端pnpm dev是否有错误。2. 检查浏览器开发者工具Console和Network标签页的错误信息。3. 确认.env.local文件已配置且Supabase Docker容器正在运行。无法登录或注册1. Supabase配置错误。2. OAuth提供商配置错误。3. 数据库表未初始化。1. 核对NEXT_PUBLIC_SUPABASE_URL和ANON_KEY。2. 在Supabase本地管理界面通常为localhost:54323检查认证日志。3. 运行数据库迁移脚本pnpm db:push具体命令参考项目文档。智能体列表为空或加载失败1. LangChain API Key无效或过期。2. 网络问题无法访问LangSmith API。3. 部署ID格式错误。1. 在LangSmith网站验证API Key是否有效。2. 在OAP服务器上尝试用curl测试LangSmith API连通性。3. 检查添加部署时输入的ID是否来自LangGraph Platform的正确位置。智能体配置界面只显示普通文本输入框1. 智能体的ConfigSchema未使用LangGraph Zod。2.x_oap_ui_config元数据缺失或格式错误。3. LangGraph部署版本过旧。1. 确认智能体代码使用z.object()定义配置并正确编译。2. 使用LangGraph CLI检查部署的配置模式langgraph describe deployment_id查看输出中是否有UI配置信息。3. 更新LangGraph相关包到最新版本并重新部署智能体。智能体调用工具失败1. MCP服务器未运行或URL错误。2. 工具权限配置问题。3. 智能体的工作流未正确处理工具调用。1. 检查MCP服务器进程是否存活端口是否被占用。2. 在OAP工具管理页面测试MCP服务器连接。3. 在LangSmith上查看该智能体的追踪Trace观察工具调用的输入输出确认工作流逻辑正确。RAG检索无结果或错误1. LangConnect服务器连接失败。2. 知识库索引未创建或为空。3. 检索参数设置不当。1. 检查LangConnect服务日志。2. 直接向LangConnect的API端点发送检索请求进行测试。3. 确认已通过LangConnect向知识库灌入了文档。4.2 生产环境部署考量如果你曾考虑将OAP用于生产以下是你必须面对的问题可扩展性OAP的前端是Next.js应用后端API路由是无服务器函数Vercel或Node.js服务器。你需要考虑如何水平扩展以应对高并发。数据库Supabase Postgres也需要进行性能优化和读写分离规划。高可用与监控你需要设置健康检查、日志聚合如ELK Stack、应用性能监控APM如Datadog以及警报。LangGraph Platform和LangConnect服务的高可用性也需要保障。安全性认证与授权Supabase的RBAC是否满足你的细粒度权限需求是否需要二次开发数据安全智能体对话记录、配置信息都存储在数据库中需要加密和访问审计。工具安全MCP工具提供了强大的能力但也带来了风险。必须严格审计每个MCP服务器并限制其权限如文件系统访问范围、网络访问权限。API密钥管理LangChain API Key、OpenAI API Key等敏感信息需要安全地存储和轮换不能硬编码在环境变量或代码中。成本自托管需要支付服务器、数据库、网络流量等费用。此外LangGraph Platform根据智能体调用次数收费LLM API调用如OpenAI也是一笔主要开销。需要精细的成本核算和用量监控。4.3 官方替代方案LangSmith Agent Builder深度解析正是由于上述运维复杂度LangChain官方才推出了Agent Builder。我们来分析一下这个替代方案的核心优势完全托管零运维你无需关心服务器、数据库、网络、安全补丁。LangChain团队负责一切基础设施的维护和扩展。无缝的LangGraph集成它与LangGraph Platform和LangSmith的集成是原生的、最深度的。智能体的创建、版本管理、部署、监控、调试都在同一个平台内完成体验流畅。可视化编排进阶Agent Builder提供了更强大的可视化工作流编辑器你可以通过拖拽节点LLM调用、条件判断、工具执行、子智能体调用来构建复杂的智能体而不仅仅是配置参数。内置的评估与测试可以方便地创建测试数据集运行批量测试并基于评估结果如正确性、延迟、成本来迭代优化你的智能体。企业级功能通常提供更完善的企业单点登录SSO、审计日志、数据隔离和合规性支持。迁移建议如果你正在评估或已在使用OAP转向Agent Builder是顺理成章的选择。迁移工作主要集中在将你现有的LangGraph智能体定义代码理解清楚。在Agent Builder中利用其界面重新“组装”或“导入”你的智能体逻辑。对于简单的配置型智能体这可能很快对于复杂的工作流可能需要一些适配。将你的工具连接MCP和知识库RAG在Agent Builder中重新配置。最大的好处是你从此摆脱了平台本身的运维负担可以更专注于智能体业务逻辑的开发。OAP作为一个开源项目其历史使命在于探索和验证了无代码智能体平台的产品形态和技术路径。它的弃用并非因为设计失败而是因为更优秀的云原生解决方案已经成熟。对于开发者而言研究OAP的代码和设计是学习如何构建AI应用平台的一次绝佳实践。而对于寻求快速构建和部署生产级智能体的团队来说拥抱像LangSmith Agent Builder这样的全托管服务无疑是更高效、更可靠的选择。技术的车轮向前我们既要理解底层的原理也要善于利用更强大的工具来释放创造力。

相关文章:

LangChain OAP开源智能体平台架构解析与无代码实践指南

1. 项目概述与核心价值如果你对AI智能体(Agent)感兴趣,但又觉得从零开始写代码、处理复杂的部署和运维是件头疼事,那么你肯定不是一个人。这正是LangChain团队当初推出Open Agent Platform(OAP)的初衷。简单…...

Perseus开源补丁:3分钟解锁《碧蓝航线》全皮肤的终极指南

Perseus开源补丁:3分钟解锁《碧蓝航线》全皮肤的终极指南 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 还在为《碧蓝航线》中那些精美的限定皮肤无法解锁而烦恼吗?Perseus开源补…...

英语前缀发音总结

第一类:绝大多数普通前缀 对重音的影响:无影响,单词重音仍落在词根上 规律说明:这类前缀不改变词根原有的重音位置。重音通常落在紧接前缀之后的第一个音节(即词根的第一音节)上,前缀本身读作非重读音节,元音常弱化为 /ə/ 或 /ɪ/。 前缀 音标 含义 示例单词 a- /ə…...

后缀重读发音总结

总规律口诀(先记住) “后缀决定重音位,重读音节元音长;非重后缀弱成/ə/或/ɪ/,重读后缀自己扛。” 一、名词后缀 (Noun Suffixes) 后缀 音标 重音影响 音节划分规则 发音影响 示例单词(音标词性中文) -er /ər/ 不改变原词重音 加一个音节,原词重音不变 后缀永远弱读 …...

-ed发音总结

— 动词过去式 -ed 的 3 条读音规律,一次搞懂很多人背单词时发现:blocked 读 /blɒkt/,末尾的 ed 发 /t/,而 played 却发 /d/,wanted 又发 /ɪd/。 这其实有非常清晰的规则,掌握一个核心原则就行了。核心原…...

alt+tab和win+tab什么区别

这两个快捷键虽然都是用来切换窗口的,但它们的设计理念和适用场景完全不同。 简单来说:Alt + Tab 是为了“快”,而 Win + Tab 是为了“全”。 以下是详细的区别对比: 核心区别对比表 表格 特性 Alt + Tab Win + Tab 主要功能 快速切换 任务管理 操作方式 需按住 Alt 不…...

AI驱动的开发环境分析工具:aide如何自动化理解项目结构与依赖

1. 项目概述:一个为开发者而生的“智能副驾”如果你是一名开发者,无论是前端、后端还是全栈,大概率都经历过这样的场景:面对一个全新的、文档可能不那么清晰的开源库或框架,你需要花上半天甚至一天的时间去阅读源码、理…...

OpenAgents:构建AI智能体协同工作空间的平台级解决方案

1. 项目概述:当AI智能体开始“组队打怪”如果你和我一样,在过去一年里被各种AI智能体(Agent)工具搞得眼花缭乱,那你肯定也遇到了这个痛点:我的Claude Code在本地终端里写代码,另一个OpenClaw在服…...

Skybridge:用React+TypeScript构建AI交互应用的全栈框架

1. 从零到一:为什么我们需要 Skybridge?如果你最近在捣鼓 ChatGPT 的 Apps SDK 或者 Anthropic 的 MCP(Model Context Protocol),想给大模型对话里塞点能交互的 UI 组件,那你大概率已经体验过那种“原始”的…...

语言模型核心概念与文本生成参数详解

1. 语言模型入门指南:六项核心概念解析刚接触自然语言处理的新手常被各种术语搞得晕头转向——概率分布、上下文窗口、温度参数这些概念就像外语一样难以理解。我在2016年第一次调试文本生成模型时,就曾因为误用采样方法导致输出一堆乱码。本文将拆解语言…...

OpenAgents开源框架:让大语言模型成为能执行真实任务的多面手AI智能体

1. 项目概述:一个能“干活”的AI智能体框架最近在AI智能体这个圈子里,OpenAgents 这个名字出现的频率越来越高。它不是一个简单的聊天机器人,也不是一个只能生成文本的模型。简单来说,OpenAgents 是一个开源的、旨在让大型语言模型…...

golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结

应使用独立的 user_preferences 表存储动态偏好,以 JSON 字段支持灵活扩展、区分“未设置”与“显式关闭”,并通过乐观锁和事务封装避免并发覆盖。如何用 Go 实现可扩展的用户订阅偏好存储直接存数据库字段不是不行,但硬编码 email_newslette…...

自助服务疲态与混合服务模式探索

1. 自助服务时代的转折点最近在梳理客户服务数据时发现一个有趣现象:我们引以为傲的智能客服系统使用率同比下降了37%,而人工服务请求量却增长了28%。这个反差让我开始重新思考行业里喊了十年的"自助服务优先"策略。三周前参加客户体验峰会时&…...

GetQzonehistory:5分钟快速备份QQ空间历史说说的完整免费方案

GetQzonehistory:5分钟快速备份QQ空间历史说说的完整免费方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心QQ空间里的青春记忆会随着时间流逝而消失&#xf…...

WinUtil:终极Windows系统优化与批量软件安装工具

WinUtil:终极Windows系统优化与批量软件安装工具 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 还在为Windows系统越用越慢而烦恼…...

TEdit地图编辑器:从零开始打造你的泰拉瑞亚梦想世界

TEdit地图编辑器:从零开始打造你的泰拉瑞亚梦想世界 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also lets you chan…...

Instagram 推独立应用 Instants,限时照片分享能否打击 Snapchat 等对手?

Instants:聚焦限时照片分享新体验Instagram 正在测试一款全新独立应用 “Instants”,于昨日在意大利和西班牙上线,支持 iOS 和安卓系统。它允许用户互相发送限时 24 小时可见且只能查看一次的照片,用户可使用应用内相机拍摄照片和…...

PyAutoGUI 第2章 键盘全功能操作教程

PyAutoGUI 键盘全功能操作教程(核心2) 说明:本教程为 PyAutoGUI 核心操作专项教程,聚焦键盘全功能操作,包含详细参数说明、实操代码、注意事项,适配新手入门,可直接复制代码调试运行。所有操作均…...

数据说话:网页应用优势凸显,开发者告别桌面应用!

我为何不再开发桌面应用程序对开发者来说,结束与桌面软件开发的关系并非易事。开发者曾深陷其中,即便这段感情早已没有未来,也不愿放手。开发者与桌面软件开发这一“初恋”的关系便是如此。开发者向桌面应用程序致歉,表示彼此再无…...

pyautogui 第一章:鼠标全功能操作(核心1)

PyAutoGUI 鼠标全功能操作教程(核心1) 说明:本教程为 PyAutoGUI 核心操作专项教程,聚焦鼠标全功能操作,包含详细参数说明、实操代码、注意事项,适配新手入门,可直接复制代码调试运行。所有操作均…...

如何高效使用Unity PSD导入器:开发者的完整实战指南

如何高效使用Unity PSD导入器:开发者的完整实战指南 【免费下载链接】UnityPsdImporter Advanced PSD importer for Unity3D 项目地址: https://gitcode.com/gh_mirrors/un/UnityPsdImporter Unity PSD导入器是一个专为Unity3D设计的强大插件,能够…...

“Token 第一股”迅策科技上市百日市值破千亿,A 轮投资人回报超 500 倍!

创投圈诞生超级回报这要从 4 个月前说起,“Token 第一股”迅策科技登陆港交所,当时股价起伏不定。没想到短短百余天后,公司市值一举突破 1000 亿港元,上市以来股价最新累计上涨高达 500%。迅策背后是一对父子,刘呈喜在…...

MyBatis中XML映射有哪些标签?

大家好,我是锋哥。MyBatis 是一个流行的持久化框架,使用 XML 映射文件来配置 SQL 语句与 Java 对象之间的映射关系。在 MyBatis 中,XML 映射文件包含多个不同的标签,每个标签都有特定的功能。以下是 MyBatis XML 映射文件中常用的…...

从零构建AI Agent:LangChain实战指南与工作坊解析

1. 项目概述:从零构建一个AI Agent工作坊最近在GitHub上看到一个挺有意思的项目,叫ashishpatel26/AIAgentWorkshop。乍一看标题,你可能觉得这又是一个关于AI Agent的普通教程或者代码集合。但当我深入进去,发现它其实是一个精心设…...

Svelte 设计模式:组合式 API 中的高阶模式与最佳实践

一、前言Svelte 设计模式:组合式 API 中的高阶模式与最佳实践。本文深入源码层面,剖析核心设计原理,帮你从"会用"升级到"精通"。二、核心原理深度剖析2.1 数据结构设计// Svelte 核心数据结构与算法 // 理解 Svelte 的底…...

微软智能体开发实战:基于Semantic Kernel与AutoGen的示例代码库解析

1. 项目概述:一个面向微软智能体生态的实战代码库最近在探索AI智能体(Agent)开发时,发现了一个非常实用的开源项目:rwjdk/MicrosoftAgentFrameworkSamples。这个项目本质上是一个由社区维护的示例代码集合,…...

EFCore 7.0与MySQL的实战技巧

在使用Entity Framework Core 7.0(以下简称EFCore 7.0)与Pomelo 7.0结合MySQL 8.0进行数据库操作时,我们经常会遇到一些特别的挑战。今天我们将深入探讨如何在EFCore中执行原始SQL查询,并解决常见的问题。 背景介绍 EFCore为开发者提供了一个强大的工具集来进行数据库操作…...

【解决】认证中心无法区别同一应用的不同app问题,实现多终端会话独立管理。

文章目录 引言 I 平台会话机制: 平台授码、应用刷新token机制 核心接口涉及 II 需求 背景 一、涉及的前端改造 二、涉及的后端改造 现状: III 登录设备授权 引言 建议一个应用只对应一个app,比如可以将写码和设备安装功能聚和到一个app,这样认证中心无需做任何的改动! 本…...

基于AWS Agent-Squad框架构建多智能体协作系统的实践指南

1. 项目概述:当AI智能体组成“特工小队” 如果你最近在关注AI应用开发的前沿,特别是多智能体协作这个方向,那么 awslabs/agent-squad 这个项目绝对值得你花时间深入研究。简单来说,这是一个由AWS实验室(AWS Labs&…...

豆包 LeetCode 1872.石子游戏 VIII TypeScript实现

LeetCode 1872 石子游戏 VIII TypeScript 实现题目大意给定数组 stones ,两人轮流进行操作:- 每次选择至少前 k 个石子(k≥2) - 拿走前 k 个石子,得分 前 k 个石子总和 - 拿走后,后面石子向前拼接&#x…...