Conduct AI

io.github.sseshachala由 GitHub 账号 sseshachala 发布v0.6.10更新于 Oct 24, 2026

List agents, trigger workflows, and enforce team AI policies with ConductGuard.

概览

AI 生成的概览

Conduct AI 的本地 MCP 服务器,让助手列出并触发 AI 代理,并在执行前检查团队 AI 策略规则。

可以做什么
  • 列出代理、项目与 playbook,并对已安装代理触发测试运行
  • 在执行前检查某个工具调用及其输入是否会被团队策略拦截
  • 从 API 获取最新 ConductGuard 策略并保存到本地
  • 返回团队名称、用户邮箱、生效规则数量与策略版本
  • 通过 PreToolUse 钩子执行策略,对工具调用进行拦截、警告或审计,并上报审计事件
适用场景
适合使用 Conduct AI 代理、希望助手浏览、安装和测试这些代理的团队;也适合使用 ConductGuard 的组织,让 Claude Code、Cursor 或 Copilot 在敏感操作前对照集中管理的 AI 使用策略自查。
运行要求
以 Python 包形式本地运行(Python 3.9–3.12),通过 pip 安装;MCP 条目由 conduct guard sync 注册或手动添加。需要 Conduct AI 账号、服务器地址、工作区或团队 ID,以及代理令牌或成员令牌,可通过参数传入或由 conduct login 保存到本地配置文件。需要访问 Conduct AI API 的网络连接。
安装前请注意
需要代理或成员令牌(cond_agt_ 前缀),明文仅显示一次,会保存在本地配置并作为命令行参数传入。sync 命令会写入钩子脚本并修改 AI 工具的设置文件,钩子会把每次工具调用事件发送到 Conduct AI API。相关命令可创建和删除项目及其代理,测试触发会运行真实的代理工作流。在 advisory 模式下违规只记录而不拦截。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Conduct AI,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

conduct-cli

Official CLI for Conduct AI — install AI agents, manage projects, run end-to-end tests, and enforce team AI policies with ConductGuard.

Runs on Linux, macOS, and Windows. Python 3.9–3.12.

[Conduct CLI demo — whoami, switch workspaces with Guard policy sync, and run an agent]

Install

bash
pip install conduct-cli

Quick start

bash
# Authenticate (one-time)conduct login \  --server https://api.conductai.ai \  --token cond_agt_xxx \  --workspace <workspace-id>
# Browse available agentsconduct playbooks
# Create a project and install all agents in one shotconduct install-all --project DevOps --repo owner/repo
# List installed agentsconduct agents
# Run a test trigger on any agentconduct test "PR Reviewer"conduct test --all

Commands

CommandDescription
conduct loginSave connection config to ~/.conduct/config.json
conduct projectsList all projects
conduct create project <name>Create a project
conduct delete project <name>Delete a project and all its agents
conduct reset project <name>Delete all agents in a project (clean slate)
conduct playbooksBrowse available playbooks
conduct playbooks <slug>Show required inputs for a playbook
conduct install <slug>Install one agent from a playbook
conduct install-allInstall all 12 playbooks into a project
conduct agentsList all installed agents
conduct test <name>Fire test trigger on an agent and stream results
conduct test --allTest every playbook-based agent

Authentication

Generate an agent token from Settings → Agents → Issue token in the Conduct AI dashboard. Tokens start with cond_agt_ and are stored as SHA-256 hashes — the plaintext is shown only once.

bash
conduct login --server https://api.conductai.ai --token cond_agt_xxx --workspace <id>

Install all agents

bash
# Installs all 12 playbooks into a project, pointed at your GitHub repoconduct install-all --project DevOps --repo myorg/myrepo

If the project doesn't exist it's created automatically. Use --input key=value to override any playbook input.

Test agents

bash
# Test a single agent (fires synthetic test payload, streams run events)conduct test "Autopilot Quick"
# Test all playbook-based agents in sequenceconduct test --all

Exit code is 0 if all pass, 1 if any fail — works in CI.


ConductGuard

ConductGuard is AI tool fleet management — your security team sets policies once and they're enforced automatically across every developer's Claude Code, Cursor, and Windsurf session.

How it works

Admin configures policies and budgets in the Guard dashboard    └─ developers are workspace members automatically — no invite step needed
Developer runs: conduct guard sync    ├─ pulls latest policy to ~/.conductguard/policy.json    ├─ writes PreToolUse hook → ~/.conductguard/hook.py    ├─ registers hook → ~/.claude/settings.json    └─ registers conductguard-mcp → ~/.claude/settings.json (mcpServers) + Codex
Every Claude Code tool call:    ├─ PreToolUse hook fires (hook.py) → checks policy → block / warn / audit    └─ Event posted async to ConductGuard API → visible in Activity feed

Developer setup

bash
pip install conduct-cli
# Authenticate (already done if you use Conduct)conduct login --server https://api.conductai.ai --api-key <api-key>
# Sync Guard — installs hook + MCP, pulls policiesconduct guard sync

That's it. Policy enforcement is active from the next tool call.

Guard commands

CommandDescription
conduct guard syncPull latest policy, write hook to ~/.conductguard/hook.py, register hook + MCP
conduct guard statusShow today's spend, session count, and violations
conduct guard audit [--since 7d]Print recent guard events in a table
conduct verify [--evidence FILE] [--strict] [--format json]Map guard events to OWASP Agentic Top 10; exit 1 in CI if blocked events (--strict)
conduct guard discoverScan local environment for AI agents; report Guard coverage %
conduct guard discover --registerRegister discovered agents under Guard

Advisory mode

When advisory mode is enabled by your security admin, all policy violations are logged as "audited" instead of blocked — the developer sees a note but the tool call proceeds. The hook still posts every event to the audit log.

To check if advisory mode is active:

bash
conduct guard sync   # shows "· advisory" badge if activeconduct guard status

conduct verify

bash
# Map last 24h of guard events to OWASP Agentic Top 10conduct verify
# Use a saved evidence fileconduct verify --evidence ./conduct-evidence.json
# CI mode — exit 1 if any blocked eventsconduct verify --strict
# JSON output for downstream toolingconduct verify --format json

OWASP mapping: no-rm-rf → A04 Excessive Agency, no-sudo → A09 Privilege Escalation, policy_signature_invalid → A07 Insufficient Monitoring, etc. All 10 categories covered.

How the PreToolUse hook works

When you run conduct guard sync, the CLI writes a Python script to ~/.conductguard/hook.py and registers it as a PreToolUse hook in ~/.claude/settings.json:

json
{  "hooks": {    "PreToolUse": [      {        "matcher": ".*",        "hooks": [{ "type": "command", "command": "python3 ~/.conductguard/hook.py" }]      }    ]  }}

Before every tool call, Claude Code runs the hook. The hook:

  1. Reads tool_name and tool_input from stdin (JSON)
  2. Loads ~/.conductguard/policy.json (the team ruleset)
  3. Matches the call against each rule (match_tool, match_pattern, match_path_pattern)
  4. Takes the rule's action:
    • block — prints the policy message, exits with code 2 (Claude Code aborts the tool call)
    • warn — prints the message, exits 0 (tool call proceeds, developer is notified)
    • audit — posts an event silently, exits 0
  5. Posts an audit event to POST /guard/events asynchronously (fire-and-forget, never slows the tool call)

How conductguard-mcp works

conduct guard sync also registers an MCP server entry in ~/.claude/settings.json:

json
{  "mcpServers": {    "conductguard": {      "command": "conductguard-mcp",      "args": ["--team", "<team-id>", "--token", "<member-token>"]    }  }}

Claude Code starts conductguard-mcp as a subprocess on launch and keeps it running. It communicates via JSON-RPC 2.0 over stdin/stdout (MCP stdio transport).

The MCP server exposes three tools that Claude can call proactively:

ToolDescription
guard_statusReturns team name, your email, number of active rules, and policy version
guard_checkChecks whether a specific tool + input would be blocked before Claude acts
guard_syncFetches the latest policy from the ConductGuard API and saves it locally

guard_check example — Claude can self-check before a sensitive action:

guard_check(tool_name="bash", tool_input={"command": "rm -rf /tmp/build"})→ ALLOWED — no policy rule matches 'bash'.
guard_check(tool_name="bash", tool_input={"command": "curl http://internal-api/secrets"})→ BLOCKED — External network calls to internal endpoints are not permitted. [rule: no-internal-curl]

guard_sync example — after your security team pushes new rules:

guard_sync()→ Policy synced — 12 rule(s) active (version: 2026-05-31T14:22:00Z).

Policy file format

Policy is stored at ~/.conductguard/policy.json and synced from the server:

json
{  "team_id": "uuid",  "version": "2026-05-31T14:22:00Z",  "rules": [    {      "rule_id": "no-rm-rf",      "match_tool": "bash",      "match_pattern": "rm\\s+-rf",      "match_path_pattern": null,      "action": "block",      "message": "Recursive deletes are not permitted. Use trash or targeted rm."    },    {      "rule_id": "audit-prod-writes",      "match_tool": "edit,write",      "match_path_pattern": "/prod/",      "match_pattern": null,      "action": "warn",      "message": "Writing to prod directory — make sure this is intentional."    }  ]}

Keeping policy up to date

Run conduct guard sync after your security team updates rules in the ConductGuard dashboard. The sync command pulls the latest policy, rewrites the hook, and re-registers the MCP entry in any newly detected AI tool configs.

bash
# Add to a daily cron or run manually after policy changesconduct guard sync

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "conduct": {      "command": "conduct-mcp",      "args": []    },    "conductguard": {      "command": "conductguard-mcp",      "args": ["--team", "<workspace-id>", "--token", "<member-token>"]    }  }}

Run conduct login first — conduct-mcp reads credentials from ~/.conduct/config.json. Get your agent token from Settings → Agents → Issue token in the Conduct AI dashboard.


VS Code + GitHub Copilot

Install from the MCP registry directly in VS Code:

bash
code --add-mcp '{"name":"conduct","command":"conduct-mcp","args":[]}'code --add-mcp '{"name":"conductguard","command":"conductguard-mcp","args":["--team","<workspace-id>","--token","<member-token>"]}'

Or add to .vscode/mcp.json in your repo:

json
{  "servers": {    "conduct": {      "type": "stdio",      "command": "conduct-mcp",      "args": []    },    "conductguard": {      "type": "stdio",      "command": "conductguard-mcp",      "args": ["--team", "<workspace-id>", "--token", "<member-token>"]    }  }}

Once wired, GitHub Copilot can list your agents, trigger workflows, and check Guard policies — the same tools available in Claude Code and Cursor.

Prerequisites: pip install conduct-cli + conduct login


Links

来源:README.md,提交 dfa8d1d

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.6.10最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。