ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

agent-governance-toolkit 中的 AgentMesh × LangChain 集成实战:策略执行、审计日志与信任评分

agent-governance-toolkit 中的 AgentMesh × LangChain 集成实战:策略执行、审计日志与信任评分 agent-governance-toolkit 中的 AgentMesh × LangChain 集成实战策略执行、审计日志与信任评分【免费下载链接】agent-governance-toolkitAI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-governance-toolkit本文基于 agent-governance-toolkit 仓库中 LangChain 集成指南系统讲解如何为 LangChain Agent 引入 AgentMesh 的加密身份DID、工具级策略执行、合规审计与信任评分机制。读完后你可以掌握用策略包装wrapLangChain 工具、配置限流/PII/审批类策略、将信任分数接入每次执行闭环以及搭建带治理的 RAG 链路的完整方案并能定位仓库中对应的核心实现源码。为什么 LangChain Agent 需要 AgentMesh 治理LangChain 提供了强大的 Agent 编排能力工具调用、链式推理、多轮对话但从 集成指南 的出发点看它自身缺少四类生产级要素加密身份Cryptographic identityAgent 没有可验证的 DID 身份无法回答这个动作是谁的 Agent 做的工具使用的策略执行Policy enforcementLLM 决定调用哪个工具后直接执行没有前置的策略裁决点合规审计日志Audit logging工具调用、拦截事件缺乏可追溯的记录信任评分Trust scoring无法根据历史行为对 Agent 做自适应的放权/收权。AgentMesh 正是填补这四个缺口的治理层。从源码结构看这四个能力分别落在 agent-mesh 包的不同模块中能力核心实现仓库路径Agent DID 身份AgentIdentity策略引擎PolicyEngine审计日志AuditLog信任/奖惩引擎RewardEngine信任握手多 Agent 互验TrustHandshake快速开始安装与基础集成安装pip install agentmesh-platform langchain langchain-openai基础集成用治理包装 LangChain 工具下面是 集成指南 中的完整 Quick Start 示例。整体思路是创建 AgentMesh 身份 → 加载策略引擎与审计日志 → 用装饰器把每个 LangChain 工具包一层策略检查—执行—审计的闭环from langchain.agents import AgentExecutor, create_openai_functions_agent from langchain_openai import ChatOpenAI from langchain.tools import Tool from agentmesh import AgentIdentity, PolicyEngine, AuditLog # 1. 创建 AgentMesh 身份DID 能力声明 identity AgentIdentity.create( namelangchain-agent, sponsordevcompany.com, capabilities[tool:search, tool:calculator] ) # 2. 初始化治理组件 policy_engine PolicyEngine.from_file(policies/default.yaml) audit_log AuditLog(agent_ididentity.did) # 3. 治理包装器给任意 LangChain 工具函数加上策略执行与审计 def governed_tool(tool_func): Decorator to add governance to LangChain tools. def wrapper(*args, **kwargs): # 执行前策略检查 result policy_engine.check( actiontool_call, tooltool_func.__name__, paramskwargs ) if not result.allowed: # 拦截事件也要落审计 audit_log.log(blocked, tooltool_func.__name__, reasonresult.reason) raise PermissionError(fPolicy violation: {result.reason}) # 策略放行执行原工具 output tool_func(*args, **kwargs) # 执行后审计记录 audit_log.log(success, tooltool_func.__name__, outputoutput) return output return wrapper # 4. 定义带治理的工具 governed_tool def search(query: str) - str: Search the web. return fSearch results for: {query} governed_tool def calculator(expression: str) - str: Calculate a mathematical expression. # 安全求值 - 生产环境不要用 eval() # 应使用 simpleeval 这类安全解析器或经校验的 ast.literal_eval try: # 演示用途的安全实现 - 生产请替换为安全的数学解析器 # 例如配合 simpleeval: return str(simpleeval.simple_eval(expression)) import ast import operator # 仅允许白名单内的算术运算符 safe_ops { ast.Add: operator.add, ast.Sub: operator.sub, ast.Mult: operator.mul, ast.Div: operator.truediv, ast.Pow: operator.pow, } def safe_eval(node): if isinstance(node, ast.Num): return node.n elif isinstance(node, ast.BinOp): return safe_opstype(node.op), safe_eval(node.right)) else: raise ValueError(Unsafe operation) tree ast.parse(expression, modeeval) return str(safe_eval(tree.body)) except Exception as e: return fError: {str(e)} # 5. 注册为 LangChain 工具 tools [ Tool( nameSearch, funcsearch, descriptionSearch the web for information ), Tool( nameCalculator, funccalculator, descriptionCalculate mathematical expressions ), ] # 6. 创建使用受治理工具的 LangChain Agent llm ChatOpenAI(modelgpt-4) agent create_openai_functions_agent(llm, tools) agent_executor AgentExecutor(agentagent, toolstools) # 7. 运行 Agent result agent_executor.invoke({ input: What is the square root of 144? }) print(fResult: {result}) print(fAgent DID: {identity.did}) print(fAudit entries: {len(audit_log.entries)})几个关键设计点值得注意治理拦截点在工具边界而非LLM 边界。governed_tool装饰器把策略检查插在原函数执行的入口因此对 LangChain 侧完全透明——AgentExecutor 看到的仍然是普通工具函数PermissionError会作为工具调用失败被框架捕获并反馈给 LLM。PolicyEngine.from_file(policies/default.yaml)中的策略文件位于你自己的项目目录下指南示例中未附完整内容可用仓库 examples/policies/ 下的现成策略 YAML 作为起点改造。拦截blocked与成功success都写入审计。AuditLog.entries的长度可以直接用来验证治理链路是否真正生效——指南最后打印审计条数正是这个用途。calculator 的安全求值刻意不用eval()而是通过ast白名单运算符递归求值。这体现了指南最小能力 安全边界的治理思想即便是演示代码也把攻击面收窄到四个算术运算符。策略检查的实际调用链从源码结构看policy_engine.check(...)对应 PolicyEngine约 L689 起的策略裁决逻辑result.allowed/result.reason是裁决结果的标准字段audit_log.log(...)对应 AuditLog约 L465 起的落盘/追加记录逻辑agent_ididentity.did将每条审计记录绑定到具体 Agent 身份这正是可问责审计的基础。高级特性1. 工具级限流Rate Limiting指南给出了策略文件示例放置在你的项目policies/目录如policies/langchain.yaml# policies/langchain.yaml policies: - name: rate-limit-search rules: - condition: tool Search limit: 100/hour action: block含义名为Search的工具每小时最多调用 100 次超限后action: block会触发上节示例中的PermissionError拦截路径且被拦截事件会进入审计日志。限流是防止失控 Agent 循环调用付费工具的第一道闸。2. 信任评分Trust Score闭环每次 Agent 执行完成后用 RewardEngine 更新信任分并在分数跌破阈值时主动吊销凭据形成行为→评分→放权/收权的自适应治理from agentmesh import RewardEngine reward_engine RewardEngine() # 每次 agent 运行后更新信任分 score reward_engine.update_score( agent_ididentity.did, actionagent_execution, successTrue ) # 信任分跌破 500 时吊销凭据 if score.total 500: identity.revoke_credentials()注意这里的评分量纲是 0–1000 的累计分500 为临界值与仓库中 LangChain 回调集成的默认阈值一致agentmesh.integrations.langchain 的示例即以min_trust_score500为默认门槛。信任分持续下跌时应回查审计日志定位违规或工具失败原因见文末 Troubleshooting。3. 多 Agent 委托Delegation通过身份委托让 supervisor 派生出能力收窄的 worker——这是最小权限原则在 Agent 拓扑上的体现# 创建 supervisor agent拥有全部工具能力 supervisor AgentIdentity.create( namelangchain-supervisor, sponsorteamcompany.com, capabilities[tool:*] ) # 委托给 worker能力收窄到单一工具 worker1 supervisor.delegate( namelangchain-worker-1, capabilities[tool:search] ) worker2 supervisor.delegate( namelangchain-worker-2, capabilities[tool:calculator] )委托后的 worker 只能在其收窄能力范围内通过策略检查从源码结构看跨 Agent 之间的互验由 TrustHandshake 承担配合DelegationChain实现层级化的能力传递在旧版集成包中已提供完整实现见下节。实战案例带治理的 RAG 链路指南用检索增强生成RAG展示了把治理嵌入向量库查询这一敏感环节的完整做法——身份能力声明限定为[read:docs, query:vectordb]检索前先过策略检索行为本身进审计from langchain.chains import RetrievalQA from langchain.vectorstores import Chroma from langchain.embeddings import OpenAIEmbeddings # 创建受治理的 RAG agent identity AgentIdentity.create( namerag-agent, sponsorknowledge-teamcompany.com, capabilities[read:docs, query:vectordb] ) # 加载 RAG 专用策略 policy_engine PolicyEngine.from_file(policies/rag.yaml) def governed_retrieval(query: str): # 1. 策略检查 result policy_engine.check(actionquery_vectordb, params{query: query}) if not result.allowed: raise PermissionError(result.reason) # 2. 执行检索 embeddings OpenAIEmbeddings() vectorstore Chroma(embedding_functionembeddings) docs vectorstore.similarity_search(query) # 3. 审计检索行为记录查询与命中文档数 audit_log.log(retrieval, queryquery, num_docslen(docs)) return docs # 创建 RAG 链 qa_chain RetrievalQA.from_chain_type( llmChatOpenAI(), retrievergoverned_retrieval ) # 带治理地查询 answer qa_chain.run(What is AgentMesh?)这个模式的价值在于检索即访问。向量库中往往包含敏感文档将query_vectordb建模为受策略管辖的 action而非普通的函数调用意味着可以按身份、时间、查询内容维度拒绝越权检索并在事后用num_docs等字段还原每次数据访问。策略示例防 PII 泄漏与敏感工具审批指南给出两类典型策略写法可直接用于策略文件如policies/rag.yaml防止 PII 泄漏输出脱敏policies: - name: no-pii-in-output rules: - condition: output contains ssn or output contains email action: redact当输出中包含 SSN 或 email 等敏感标识时策略动作为redact脱敏而非直接阻断业务流。敏感工具需人工审批policies: - name: approve-database-queries rules: - condition: tool DatabaseQuery action: require_approval approvers: [security-teamcompany.com]数据库查询这类高危工具不是一刀切禁止而是走审批流require_approval动作会暂停执行并等待指定审批人如安全团队邮箱放行审批主体与审批动作都留痕便于合规审查。与仓库中 LangChain 集成模块的对应关系除指南中的手写装饰器模式外仓库还沉淀了两套可复用的 LangChain 集成实现可作为进阶参考新版回调集成推荐agentmesh/integrations/langchain/ 提供AgentMeshTrustCallback、TrustVerifiedTool、trust_verified_tool、InMemoryTrustStore等组件思路是把信任验证挂到 LangChain 的回调体系上在工具调用和LLM 调用两个边界自动执行信任校验与交互记录interaction recording并支持未安装 LangChain 时优雅降级。用法极简from agentmesh.integrations.langchain import AgentMeshTrustCallback callback AgentMeshTrustCallback( agent_diddid:mesh:abc123, min_trust_score500, ) chain.invoke(input, config{callbacks: [callback]})旧版独立集成包langchain-agentmeshpip install agentmesh-langchain提供了VerificationIdentityEd25519 身份、TrustGatedTool、TrustedToolExecutor、TrustCallbackHandler、TrustHandshake、DelegationChain等完整组件。需要特别注意从 其__init__.py的源码看该包已被标记为 deprecated官方建议迁移到agent-governance-toolkit-integrations[langchain]。若做新项目应优先使用新版回调集成或指南中的策略包装模式。旧包中 TrustGatedTool 的实现值得细读其构造函数签名为TrustGatedTool(tool, required_capabilitiesNone, min_trust_score0.7, description_suffix)即默认最低信任分为0.70–1 量纲can_invoke()内部委托给handshake.verify_peer(invoker_card, required_capabilities..., min_trust_score...)完成裁决验证失败时invoke()抛出PermissionError——与指南手写装饰器中检查→拒绝→放行→审计的闭环完全同构。该包还内置ToolInvocationRecord数据类按字段记录工具名、调用方 DID、时间戳、验证结果、信任分与输入/输出摘要是审计记录的现成模板。最佳实践与故障排查指南总结的五条最佳实践始终用治理装饰器包装工具Always wrap tools——不要让任何工具绕开策略检查worker agent 使用窄能力声明Use narrow capabilities——委托时收窄到单一tool:*能力为合规启用审计日志Enable audit logging监控信任分并设置告警Monitor trust scores——跌破阈值即吊销凭据策略先跑影子模式shadow mode再转为阻断——先在只记录不拦截的模式下验证规则误报率。两条常见故障的官方排查路径LangChain Agent 频繁被拦截检查策略规则是否与真实用例匹配通常是condition里的工具名/参数模式与实际调用不符信任分持续下跌回查审计日志定位策略违规policy violations或工具失败tool failures的具体条目。延伸阅读仓库内路径原始集成指南agent-mesh LangChain 集成文档同目录还有 crewai.md 与 autogpt.md 可对比阅读策略引擎文档policy-engine信任评分指南trust-scoring现成策略文件库examples/policies/旧版集成包langchain-agentmesh 包含min_trust_score、required_capabilities、audit_logging、cache_ttl等配置参数说明生产就绪性指南结论是——在具备完善的密钥管理secret management与监控的前提下该集成方案可用于生产环境治理拦截点位于本地工具边界策略评估为确定性逻辑不依赖外部网络即可工作这是其可作为 Agent 运行时最后一道闸门的适用前提。【免费下载链接】agent-governance-toolkitAI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-governance-toolkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表