用 AgentMesh 治理 CrewAI:为多智能体 Crew 构建零信任身份、范围链委派与信任评分
2026/9/17 8:12:12 网站建设 项目流程

用 AgentMesh 治理 CrewAI:为多智能体 Crew 构建零信任身份、范围链委派与信任评分

【免费下载链接】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

CrewAI 提供了协作式多智能体工作流(Crew / Agent / Task),但多个 LLM Agent 协同执行任务时,谁来验证"这个 Agent 是谁"、"它被授权做什么"、"它与同伴的信任关系是否足够",是生产部署的核心难题。Agent Governance Toolkit 中的 agent-mesh 包针对这一问题,将 AgentMesh 的加密身份(DID)、可缩窄的范围链委派(ScopeChain)、信任握手(TrustHandshake)与协作信任评分(RewardEngine)接入 CrewAI 的 Crew 执行模型。读完本文,你将掌握如何为 CrewAI 的 crew 成员签发可审计身份、以最小权限委派任务、在任务交接前执行信任校验,并理解仓库中真正落地的TrustAwareAgent/TrustAwareCrew包装器的实现细节与测试验证方式。

为什么要把 AgentMesh 接入 CrewAI?

CrewAI 本身专注于"多 Agent 协作":定义若干 Agent 与 Task,组建 Crew 后通过kickoff()顺序或层级执行。但协作框架并不内置安全语义。按 CrewAI 集成文档 的描述,AgentMesh 在此基础上补齐了四类治理能力:

  • 加密身份:每个 crew 成员持有独立的AgentIdentity(DID);
  • 范围链(Scope Chains):委派链路中子 Agent 的能力只能缩窄、不能扩张;
  • 跨 Agent 信任握手:任务交接前先验证对端 DID 的信任分是否达标;
  • 协作信任评分:根据任务完成质量、协作表现与策略合规情况持续更新每个 Agent 的 0–1000 信任分。

这正好对应仓库源码中 agent-mesh 的核心模块:AgentIdentity定义于 identity/agent_id.py,ScopeChain定义于 identity/delegation.py,策略与审计分别位于 governance/policy.py(PolicyEngine)与 governance/audit.py(AuditLog),它们都通过顶层包 agentmesh/__init__.py 统一导出,因此集成代码可以直接from agentmesh import ...

快速开始:给 Crew 成员签发身份并委派能力

安装

pip install agentmesh-platform crewai crewai-tools

基本集成

文档给出的完整示例展示了"supervisor 签发身份 → 逐级委派缩窄能力 → 挂到 CrewAI Agent"的标准流程:

from crewai import Agent, Task, Crew from agentmesh import AgentIdentity, ScopeChain, PolicyEngine # Create supervisor identity supervisor_identity = AgentIdentity.create( name="crew-supervisor", sponsor="team-lead@company.com", capabilities=["research", "writing", "review"] ) # Create scope chain scope_chain = ScopeChain(root=supervisor_identity) # Delegate to crew members researcher_identity = scope_chain.delegate( name="researcher-agent", capabilities=["research"] # Narrowed from supervisor ) writer_identity = scope_chain.delegate( name="writer-agent", capabilities=["writing"] # Narrowed from supervisor ) reviewer_identity = scope_chain.delegate( name="reviewer-agent", capabilities=["review"] # Narrowed from supervisor ) # Create CrewAI agents with AgentMesh identities researcher = Agent( role="Researcher", goal="Research the topic thoroughly", backstory="Expert researcher with 10 years experience", agentmesh_identity=researcher_identity # Attach identity ) writer = Agent( role="Writer", goal="Write engaging content", backstory="Professional content writer", agentmesh_identity=writer_identity ) reviewer = Agent( role="Reviewer", goal="Review and improve content", backstory="Senior editor with high standards", agentmesh_identity=reviewer_identity ) # Define tasks research_task = Task( description="Research the topic: AgentMesh governance for AI agents", agent=researcher ) writing_task = Task( description="Write a blog post based on the research", agent=writer ) review_task = Task( description="Review and improve the blog post", agent=reviewer ) # Create governed crew crew = Crew( agents=[researcher, writer, reviewer], tasks=[research_task, writing_task, review_task], verbose=True ) # Run with governance result = crew.kickoff() print(f"Result: {result}") print(f"Supervisor DID: {supervisor_identity.did}") print(f"Crew members: {len(scope_chain.links)}")

需要说明两点前提:

  1. 示例代码表达的是集成模式(为每个 CrewAI Agent 关联一个 AgentMesh 身份对象)。仓库中实际随包发布的 CrewAI 集成采用的是"包装器/混入"模式(见下文"仓库中的落地实现"一节),crewai是可选依赖,即使不安装 CrewAI 也能运行纯信任操作;
  2. 能力缩窄是硬性约束。从源码结构看,delegation.py 中DelegationLink的注释明确写着:"每个链接代表父级向子级授予能力,子级的能力必须是父级的子集"(The child's capabilities MUST be a subset of the parent's)。因此示例中researcher只能拿到["research"],而不能越权申请 supervisor 之外的能力;委派深度也受DEFAULT_DELEGATION_MAX_DEPTH常量约束,超出会抛出DelegationDepthError

进阶特性一:crew 成员之间的信任握手

在 writer 接受 researcher 交接的任务之前,先用TrustHandshake校验对端 DID 的信任分。文档给出的模式如下:

from agentmesh import TrustHandshake # Before writer accepts work from researcher async def governed_task_handoff(from_agent, to_agent, task): handshake = TrustHandshake() # Verify peer result = await handshake.verify( peer_did=from_agent.agentmesh_identity.did, required_score=700 ) if not result.verified: raise SecurityError(f"Untrusted peer: {result.reason}") # Accept task return to_agent.execute(task)

TrustHandshake在源码中位于 trust/handshake.py,由顶层包导出(见 agentmesh/__init__.py)。在 CrewAI 场景下,它的语义是:Crew 内部任一 Agent 在接收来自同伴的产出(研究结论、初稿等)之前,必须确认对端信任分不低于required_score,否则拒绝交接并抛出异常——这相当于把"零信任"原则落到了任务级数据流上。

进阶特性二:协作信任评分(RewardEngine)

信任分不是静态配置,而是随协作行为演化的。文档展示了如何用RewardEngine基于三个维度更新 crew 各成员的得分:

from agentmesh import RewardEngine reward_engine = RewardEngine() # Update scores based on collaboration quality def update_crew_scores(crew): for agent in crew.agents: identity = agent.agentmesh_identity # Score based on: # - Task completion quality # - Collaboration with other agents # - Policy compliance score = reward_engine.update_score( agent_id=identity.did, dimensions={ "task_quality": 0.9, "collaboration": 0.85, "policy_compliance": 1.0 } ) print(f"{agent.role}: {score.total}/1000")

RewardEngine的实现在 reward/engine.py,同目录还提供trust_decay.py(信任随时间衰减)与distribution.py/distributor.py(奖励分发),因此可以推断:生产环境中一个长期不活跃或长期违规的 Agent,其信任分会因衰减与惩罚自然降到握手阈值之下,从而被后续的信任校验自动隔离——无需人工下线。

进阶特性三:对 crew 任务执行策略强制

在任务执行前插入PolicyEngine校验,违规即拒绝执行并留痕:

policy_engine = PolicyEngine.from_file("policies/crew.yaml") # Wrap task execution with policy checks def governed_task_execution(task, agent): # Check policy before execution result = policy_engine.check( action="execute_task", agent=agent.agentmesh_identity.did, task=task.description ) if not result.allowed: raise PermissionError(f"Policy violation: {result.reason}") # Execute task output = agent.execute_task(task) # Audit audit_log.log("task_completed", agent=agent.role, task=task.description) return output

PolicyEngine定义于 governance/policy.py。该引擎是 agent-mesh 中多语言共享的策略求值核心(与 policy-engine 目录中的 Rego/Cedar 后端配套),check()返回allowed/reason,配合 governance/audit.py 中的AuditLog即可实现"先校验、再执行、后审计"的闭环。

仓库中的落地实现:TrustAwareAgent 与 TrustAwareCrew

上面三节对应文档中的集成模式;仓库实际随agent-mesh包发布、可直接 import 的 CrewAI 集成在 integrations/crewai/ 下,导出InMemoryTrustStoreInteractionRecordTrustAwareAgentTrustAwareCrewTrustStore协议(见 integrations/crewai/__init__.py)。其设计要点值得逐条对照:

TrustAwareAgent:包装器模式,CrewAI 为可选依赖

agent.py 中的TrustAwareAgent采用包装器/混入模式:构造时接收agent_did(如did:mesh:abc123)、min_trust_score(默认 500,取值 0–1000)、可选trust_store后端,其余**kwargs透传给 CrewAI 的Agent构造函数。若环境中未安装 crewai,则进入"纯信任模式"(trust-only mode),信任操作照常可用,任务执行返回 stub 结果。核心方法有三个:

  • verify_peer(peer_did)(L128):查询对端信任分是否 ≥min_trust_score,对应文档中"信任握手"的同步简化版;
  • execute_with_trust(task, context)(L140):先校验自身信任分,不足则记录一次失败交互并抛出TrustViolationError;执行成功/失败都会通过_record()写入交互历史并回调trust_store.record_interaction()更新得分;
  • delegate_with_trust(task, peer_did)(L175):仅当对端信任分达标才允许委派,返回{"status": "delegated", ...}并留痕。

每次执行/委派都会生成一条InteractionRecord(含from_didto_did、时间戳、成败、事件类型与元数据),get_trust_report()(L199)可输出该 Agent 的当前分、阈值、成功/失败计数与完整交互历史,直接可作为合规审计的原始材料。

InMemoryTrustStore:内置速率限制防"刷分"

默认的内存信任存储 InMemoryTrustStore 有两个工程细节:

  • 成功交互 +5 分、失败交互 -10 分,分数被钳制在 0–1000 区间(set_trust_score中的max(0, min(1000, score)));
  • 源码注释标注了 V33 修复:MAX_UPDATES_PER_MINUTE = 10,即每个 DID 每分钟最多接受 10 次分数更新,超出的更新被静默丢弃,防止通过"快速成功刷量"人为抬高信任分。

生产环境可替换为符合TrustStore协议(L24,要求实现get_trust_scorerecord_interaction两个方法)的持久化后端。

TrustAwareCrew:kickoff 前的全员信任闸

crew.py 中的TrustAwareCrew包装Crew

  • verify_crew_trust()(L58)逐个检查成员信任分,返回每个 DID 的score/threshold/trusted及汇总字段all_trusted
  • kickoff()(L80)先做全员验证,任一成员不达标即抛出TrustViolationError并列出全部不可信 DID;全部达标后再透传 kwargs 构造真实 CrewAICrew并执行,最终返回{"trust_report": ..., "result": ...}结构,把信任验证报告与业务结果一并交还给调用方。

这套"先验证、后启动"的行为有完整测试覆盖:tests/test_crewai_integration.py 中的TestTrustAwareAgentVerifyPeerTestTrustAwareAgentDelegationTestTrustAwareAgentExecuteTestTrustAwareCrewVerifyTestTrustAwareCrewKickoff分别验证了阈值边界(恰好等于阈值视为可信)、低信任对端被拒委派并记录失败交互、以及"未安装 crewai 时仍可正常导入并使用纯信任 stub"的降级路径(TestCrewAINotInstalled)。

独立能力层:crewai-agentmesh 包的信任门选员与能力闸

除上述集成模块外,仓库还提供一个独立组件包 agentmesh-integrations/crewai-agentmesh,聚焦"任务分派前的选员与能力匹配",核心实现在 crewai_agentmesh/trust.py:

  • AgentProfile(L20):携带didnamecapabilitiestrust_score(0–1000,默认 500)、rolestatus(active / suspended / revoked)与metadata的身份档案,提供has_capability/has_all_capabilities/has_any_capability查询;
  • CapabilityGate(L73):任务分派前的能力校验门。默认require_all=True(要求 Agent 具备任务所需的全部能力),也可放宽为任一能力匹配;Agent 状态非 active 时直接拒绝并返回原因(如 "Agent 'X' is suspended");
  • TrustTracker(L107):跨 crew 运行周期维护信任分,默认成功 +10(success_reward)、失败 -50(failure_penalty),分数钳制在 0–1000,并保留含新旧分数、任务描述与时间戳的完整变更历史;
  • TrustedCrew(L166):信任门控的选员器,min_trust_score默认 100。select_for_task(required_capabilities, min_trust)返回同时满足"active + 信任分达标 + 能力匹配"的候选,并按信任分降序排列;assign_task()返回结构化的TaskAssignmenttrust_sufficientcapability_matchallowedreason),record_task_result()回写成功/失败到 TrustTracker,get_stats()汇总总 Agent 数、active 数、可信数以及被允许/被拒绝的分派计数。

该包的 Quick Start 与测试用例可参考 README 和 tests/test_crewai_trust.py:

from crewai_agentmesh import TrustedCrew, AgentProfile # Define trusted agents agents = [ AgentProfile(did="did:mesh:researcher", name="Researcher", capabilities=["research", "analysis"], trust_score=800), AgentProfile(did="did:mesh:writer", name="Writer", capabilities=["writing", "editing"], trust_score=700), ] # Create trust-gated crew crew = TrustedCrew(agents=agents, min_trust_score=500) # Select agents for a task selected = crew.select_for_task(required_capabilities=["research"]) assert len(selected) == 1 assert selected[0].name == "Researcher"

版本提示:从包入口 crewai_agentmesh/__init__.py 的显式DeprecationWarning可知,该独立包已标记为弃用,官方建议迁移到agent-governance-toolkit-integrations[crewai]extras。新项目建议直接使用 agent-mesh 内置的 integrations/crewai 模块;AgentProfile/TrustedCrew这类"能力门 + 选员"思路仍可参考。

实战示例:内容创作 Crew

文档给出的端到端示例覆盖"supervisor 初始化 → 三个专职 Agent 委派 → 顺序流水线 → 合规报告",完整继承如下:

from crewai import Agent, Task, Crew, Process from agentmesh import AgentIdentity, ScopeChain, PolicyEngine, AuditLog # Initialize AgentMesh supervisor = AgentIdentity.create( name="content-crew-supervisor", sponsor="marketing@company.com", capabilities=["research", "writing", "seo", "social_media"] ) scope_chain = ScopeChain(root=supervisor) policy_engine = PolicyEngine.from_file("policies/content-crew.yaml") audit_log = AuditLog(agent_id=supervisor.did) # Create specialized agents seo_specialist = Agent( role="SEO Specialist", goal="Optimize content for search engines", agentmesh_identity=scope_chain.delegate( name="seo-specialist", capabilities=["research", "seo"] ) ) content_writer = Agent( role="Content Writer", goal="Write engaging, SEO-optimized content", agentmesh_identity=scope_chain.delegate( name="content-writer", capabilities=["writing"] ) ) social_media_manager = Agent( role="Social Media Manager", goal="Create social media posts", agentmesh_identity=scope_chain.delegate( name="social-media-manager", capabilities=["social_media", "writing"] ) ) # Define workflow tasks = [ Task( description="Research keywords for 'AI agent governance'", agent=seo_specialist ), Task( description="Write a 1000-word blog post about AI agent governance", agent=content_writer ), Task( description="Create 5 social media posts to promote the blog", agent=social_media_manager ), ] # Create governed crew crew = Crew( agents=[seo_specialist, content_writer, social_media_manager], tasks=tasks, process=Process.sequential, # Sequential execution verbose=True ) # Execute with governance result = crew.kickoff() # Generate compliance report print("\n=== Governance Report ===") print(f"Supervisor: {supervisor.did}") print(f"Crew size: {len(crew.agents)}") print(f"Tasks completed: {len(tasks)}") print(f"Audit entries: {len(audit_log.entries)}")

注意该示例体现的治理要点:Process.sequential保证任务按研究→写作→社媒的顺序交接,每一次交接都是信任握手与策略检查的天然插桩点;AuditLog(agent_id=supervisor.did)以 supervisor DID 为锚点记录整条链路的审计条目,supervisor.did本身即为可验证的加密身份。

策略示例:品牌安全与 API 限流

文档提供了两个 crew 级策略 YAML,分别覆盖"输出内容风险审批"与"外部调用限流"两类典型场景:

防止品牌风险——输出命中敏感主题时不直接放行,而是转入人工审批流:

policies: - name: "brand-safety" rules: - condition: "output contains 'controversial_topic'" action: "require_approval" approvers: ["legal@company.com"]

限制外部 API 调用速率——超出配额直接阻断:

policies: - name: "api-rate-limit" rules: - condition: "action == 'api_call'" limit: "1000/day" action: "block"

这两份策略文件分别落位到前面PolicyEngine.from_file("policies/crew.yaml")from_file("policies/content-crew.yaml")加载的路径,即可对 crew 的任务执行生效。

最佳实践与生产就绪性

文档最后给出的五条最佳实践,与仓库实现一一呼应:

  1. 用范围链表达 crew 层级——委派即授权边界,子 Agent 能力只能是父集的子集;
  2. 为专职 Agent 缩窄能力——示例中 SEO 专员拿不到social_media,写手拿不到seo,越权在签发时即被拒绝;
  3. 对协作启用信任握手——对应TrustHandshake.verify()TrustAwareAgent.verify_peer(),阈值建议 ≥700;
  4. 跨 crew 监控信任分——结合RewardEngine/TrustTracker的奖惩与衰减机制,让长期低质协作的 Agent 自动降级;
  5. 审计每一次任务完成——AuditLog/InteractionRecord保留 DID、时间戳、成败与事件类型,可直接导出为合规报告。

关于生产就绪性,原文档的结论是:"Production Ready: Yes, with monitoring and proper secret management."(在生产环境需配套监控与密钥管理)。此外,仓库侧的 tests/test_crewai_integration.py 已经验证了信任阈值边界、委派拦截、交互留痕与无 crewai 环境的降级行为,可作为集成改造后的回归基线。

关键文件索引

内容路径
本文对应的集成文档agent-governance-python/agent-mesh/examples/integrations/crewai.md
TrustAwareAgent / InMemoryTrustStoreagent-governance-python/agent-mesh/src/agentmesh/integrations/crewai/agent.py
TrustAwareCrewagent-governance-python/agent-mesh/src/agentmesh/integrations/crewai/crew.py
范围链与委派约束agent-governance-python/agent-mesh/src/agentmesh/identity/delegation.py
信任握手agent-governance-python/agent-mesh/src/agentmesh/trust/handshake.py
奖励引擎与信任衰减agent-governance-python/agent-mesh/src/agentmesh/reward/
策略引擎 / 审计日志governance/policy.py、governance/audit.py
集成测试agent-governance-python/agent-mesh/tests/test_crewai_integration.py
独立能力层包(已弃用)agent-governance-python/agentmesh-integrations/crewai-agentmesh/

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询