From fda0adb6f9b6494b8662a0aa4d257f50cbc73ad5 Mon Sep 17 00:00:00 2001 From: Sim Pi Agent Date: Wed, 11 Nov 2026 18:55:23 +0000 Subject: [PATCH 1/2] feat(library): Best AI Agents for GitHub Pull Requests, Issue Triage, and Code Review --- .../index.mdx | 218 ++++++++++++++++++ .../cover.jpg | Bin 0 -> 30802 bytes 2 files changed, 218 insertions(+) create mode 100644 apps/sim/content/library/github-ai-agents-pull-requests-issues-code-review/index.mdx create mode 100644 apps/sim/public/library/github-ai-agents-pull-requests-issues-code-review/cover.jpg diff --git a/apps/sim/content/library/github-ai-agents-pull-requests-issues-code-review/index.mdx b/apps/sim/content/library/github-ai-agents-pull-requests-issues-code-review/index.mdx new file mode 100644 index 00000000000..6d30a917112 --- /dev/null +++ b/apps/sim/content/library/github-ai-agents-pull-requests-issues-code-review/index.mdx @@ -0,0 +1,218 @@ +--- +slug: github-ai-agents-pull-requests-issues-code-review +title: 'Best AI Agents for GitHub Pull Requests, Issue Triage, and Code Review' +description: 'Compare AI agents for GitHub pull requests, issue triage, and code review, then learn how to build governed GitHub automation in Sim.' +seoTitle: 'AI Agents for GitHub PRs, Issues, and Review' +date: 2026-11-11 +updated: 2026-11-11 +authors: + - andrew +readingTime: 11 +tags: [GitHub, Code Review, AI Agents, Developer Tools, Sim] +ogImage: /library/github-ai-agents-pull-requests-issues-code-review/cover.jpg +draft: false +faq: + - q: "What is the best AI workflow tool for GitHub automation?" + a: "Sim fits teams that need governed GitHub automation with model calls, GitHub actions, explicit approval, conditional routing, self-hosting, and cross-system steps in one workflow." + - q: "Which agent platforms integrate best with GitHub?" + a: "Sim, GitHub Copilot cloud agent, GitHub Agentic Workflows, PR-Agent, n8n, Zapier, and Make fit different GitHub jobs, from governed multi-step workflows to repository-native coding and focused pull-request review." + - q: "What is the best AI agent for automated code review in pull requests?" + a: "Sim fits customizable pull-request review that needs governance, while PR-Agent focuses on pull-request assistance and GitHub Copilot cloud agent focuses on repository-native coding work." + - q: "Can an AI agent open a GitHub pull request automatically?" + a: "Sim can orchestrate an approved sequence that creates a branch, writes and commits changes, pushes the branch, and opens a GitHub pull request with test evidence and a reviewable description." + - q: "Can an AI agent triage and label GitHub issues automatically?" + a: "Sim can classify GitHub issues against an allowed label set, check confidence and duplicate candidates, route uncertain cases to a maintainer, and apply approved labels automatically." + - q: "Can an AI agent comment on GitHub issues and pull requests automatically?" + a: "Sim can post GitHub comments after structured output, policy checks, and any required human approval have completed successfully." + - q: "Should an AI agent be allowed to merge its own pull request?" + a: "GitHub AI agents should not be allowed to authorize their own merges because independent reviews, required checks, branch protection, and rulesets provide the final safety boundary." + - q: "How does human approval work for GitHub actions in Sim?" + a: "Sim’s Human in the Loop block pauses the run and collects an approve or reject field, after which a downstream Condition must route approved runs to the GitHub write action and rejected runs to a no-write path." + - q: "Does Sim support self-hosted GitHub AI agents?" + a: "Sim’s core can be self-hosted for GitHub agent workflows. Enterprise code in apps/sim/ee is separately licensed and requires an Enterprise subscription for production use." + - q: "Can Sim use local models for GitHub code review?" + a: "Sim can use Ollama, vLLM, LM Studio, or LiteLLM on any self-hosted deployment, so teams can review GitHub changes with local models without requiring Sim Enterprise." + - q: "Is n8n open source for GitHub automation?" + a: "n8n is source-available under the Sustainable Use License rather than OSI-approved open source, although teams can self-host it subject to that license." + - q: "Is Sim a good n8n alternative for GitHub automation?" + a: "Sim fits teams comparing n8n alternatives for GitHub automation when they prioritize self-hosting, model flexibility, local models, and explicit agent approval paths." + - q: "Is Sim a good Zapier alternative for GitHub automation?" + a: "Sim fits teams comparing Zapier alternatives when GitHub automation needs self-hosting, multi-step model reasoning, structured validation, or approval before GitHub writes." + - q: "Is Sim a good Make alternative for GitHub automation?" + a: "Sim fits teams comparing Make alternatives when GitHub automation needs agent-specific controls, flexible model selection, local models, or self-hosting." + - q: "What is the difference between GitHub Copilot coding agent and Sim?" + a: "GitHub Copilot cloud agent, formerly coding agent, is a GitHub-native coding worker, while Sim is the open-source AI workspace for orchestrating governed agents across GitHub and other systems." + - q: "What is the difference between PR-Agent and Sim?" + a: "PR-Agent is a specialized pull-request assistant, while Sim is a broader AI workspace for combining pull-request review with issue triage, approvals, notifications, databases, and other workflow steps." + - q: "Do I need GitHub MCP to automate pull requests and issues?" + a: "GitHub MCP is not required for every Sim workflow because direct GitHub integration actions can handle supported operations, while MCP is useful when an agent needs broader tool discovery or repository interaction." + - q: "How do you prevent prompt injection in a GitHub agent?" + a: "Sim workflows should treat issues, comments, pull-request descriptions, diffs, and repository files as untrusted data and prevent that content from changing tool permissions, revealing credentials, or bypassing approval." + - q: "What should a GitHub AI agent log?" + a: "Sim should log the triggering event, model and version, structured output, policy result, approval response, GitHub action result, and correlation identifier while redacting secrets and unnecessary source content." + - q: "Can a GitHub AI agent replace human code review?" + a: "GitHub AI agents should supplement rather than replace human review because tests, static analysis, CODEOWNERS, security controls, and accountable reviewers remain necessary for safe merges." +--- + +## TL;DR + +Sim fits teams that need one governed workflow to triage GitHub issues, review pull requests, post comments, open pull requests, and pause for human approval. [GitHub Copilot cloud agent](https://docs.github.com/en/copilot/concepts/agents/coding-agent/about-coding-agent), formerly called GitHub Copilot coding agent, fits repository-native coding tasks, while [PR-Agent](https://github.com/qodo-ai/pr-agent) focuses on pull-request assistance. [n8n](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.github), [Zapier](https://zapier.com/apps/github/integrations), and [Make](https://www.make.com/integrations/github) provide broader automation options. + +A reliable GitHub agent should separate analysis from write access. Let the model classify or review first, validate its structured output, require approval for consequential changes, and only then allow a GitHub action to comment, label, commit, or open a pull request. Sim supports that pattern in the workflow builder while preserving run history and, for Enterprise deployments, audit logs. + +## What is the best AI workflow tool for GitHub automation? + +The right AI tool for GitHub automation depends on the job. Sim fits governed workflows where model choice, self-hosting, approval steps, and coordination across GitHub and other systems matter. + +- **Governed multi-step GitHub workflows: Sim.** The [Sim GitHub integration](https://www.sim.ai/integrations/github) can combine GitHub events and actions with model calls, Conditions, and Human in the Loop approval. +- **Repository-native coding work: GitHub Copilot cloud agent.** [GitHub documents](https://docs.github.com/en/copilot/how-tos/copilot-on-github/use-copilot-agents/kick-off-a-task) how the agent can start from an issue or prompt, make code changes, and create a pull request for review. +- **Focused pull-request assistance: PR-Agent.** The [MIT-licensed PR-Agent repository](https://github.com/qodo-ai/pr-agent) describes commands for pull-request review, summaries, and code suggestions. +- **Repository-defined agent automation: GitHub Agentic Workflows.** [GitHub Agentic Workflows](https://github.github.com/gh-aw/) runs from repository events or schedules through GitHub Actions, with configured permissions and review before merge. +- **General self-hosted automation: n8n.** The [n8n GitHub node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.github) supports issue, pull-request, file, and repository operations. Its self-hosted community software uses the [Sustainable Use License](https://docs.n8n.io/n8n-community-license), a source-available fair-code license. +- **Hosted app automation: Zapier.** [Zapier's GitHub integration](https://zapier.com/apps/github/integrations) exposes GitHub triggers and actions for workflows across its hosted app catalog. +- **Visual scenario automation: Make.** [Make's GitHub integration](https://www.make.com/integrations/github) provides GitHub triggers and actions inside visual scenarios. + +Sim's core is Apache 2.0. Code in `apps/sim/ee` uses the separate [Sim Enterprise License](https://github.com/simstudioai/sim/blob/main/apps/sim/ee/LICENSE), which permits development, testing, and internal non-production use but requires an active Sim Enterprise subscription for production use. Teams can self-host Sim's core and use provider keys or local models such as Ollama, vLLM, LM Studio, or LiteLLM. + +## Which agent platforms integrate with GitHub for pull requests and issues? + +As of November 2026, these options fit distinct GitHub automation jobs. + +| Option | Best fit | Trigger and action model | Approval approach | Deployment | +|---|---|---|---|---| +| **Sim** | Governed issue, review, and pull-request workflows spanning multiple tools | GitHub events start workflows, and scoped GitHub actions perform reads or writes | Human in the Loop collects a decision, then a Condition routes approved and rejected paths | Sim's core can be self-hosted; enterprise code is separately licensed | +| **[GitHub Agentic Workflows](https://github.github.com/gh-aw/)** | Repository-defined agents running through GitHub Actions | [Standard Actions events and schedules](https://github.github.com/gh-aw/reference/triggers/) start repository workflows | Configured permissions, review, and repository rules constrain changes | Runs through GitHub Actions | +| **[GitHub Copilot cloud agent](https://docs.github.com/en/copilot/concepts/agents/coding-agent/about-coding-agent)** | Coding work that should produce reviewable repository changes | An issue or prompt starts an agent session that can create code changes and a pull request | A human reviews the changes and GitHub rules control merge | GitHub-hosted service | +| **[PR-Agent](https://github.com/qodo-ai/pr-agent)** | Pull-request summaries, reviews, and suggestions | Pull-request events and commands invoke focused assistance | GitHub review and branch protections remain the approval boundary | Self-hostable MIT-licensed software | +| **[n8n](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.github)** | General automation connecting GitHub with business systems | GitHub triggers and node operations connect to a wider workflow | A workflow can place an approval step before GitHub writes | Self-hosted community and paid hosted options | +| **[Zapier](https://zapier.com/apps/github/integrations)** | Straightforward GitHub-to-SaaS automations | Supported GitHub events start Zaps and later steps perform actions | A separate approval step or connected application can gate actions | Hosted service | +| **[Make](https://www.make.com/integrations/github)** | Visual GitHub scenarios with routing and cross-app modules | Watched events and webhooks start scenarios that run modules | A scenario can route through approval before a GitHub write module | Hosted service | + +[GitHub protected branches](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches) and rulesets should remain the final merge boundary regardless of which platform creates a pull request. An application-level approval controls whether an agent may attempt an action, while GitHub controls whether the resulting branch can merge. + +## How do you build a GitHub AI agent in Sim? + +Build a GitHub AI agent in Sim by combining a GitHub event, limited repository context, a model step, structured routing, an optional approval pause, and a narrowly scoped GitHub write action. + +### Trigger an agent from a GitHub issue or pull request + +Receive only the GitHub events the workflow needs, then normalize repository, issue, pull-request, actor, and content fields before calling a model. Examples include a newly opened issue, a pull-request update, or a specific label or comment command. + +Ignore bot-authored events and attach an idempotency key based on the GitHub delivery or object identifier. This prevents a retry from creating duplicate labels, comments, or pull requests. + +Use the [Sim GitHub integration](https://www.sim.ai/integrations/github) for supported triggers and actions. If the workflow needs GitHub MCP for broader tool discovery, read [How to Use the GitHub MCP Server With AI Agents](https://www.sim.ai/library/github-mcp-server-ai-agents) before adding another credential path. + +### Give the agent limited repository context + +Retrieve only the issue, diff, files, checks, and repository guidance needed for the current decision. + +For issue triage, useful context includes the issue title and body, existing labels, repository label definitions, contribution guidance, and a small set of similar issues. For pull-request review, include the base and head references, changed files, diff hunks, test results, review instructions, and relevant local code rather than the entire repository. + +Treat issue text, pull-request descriptions, comments, and source files as untrusted input. Repository content can contain prompt-injection instructions, so the system prompt should forbid repository text from changing permissions, exposing credentials, or authorizing new tools. + +### Require structured output + +Require structured model output and reject responses that do not match the workflow's schema. + +An issue-triage schema can contain proposed labels, confidence, duplicate candidates, a short explanation, and an escalation flag. A code-review schema can contain file path, line range, severity, category, evidence, suggested change, and confidence. A pull-request schema can contain branch name, title, body, changed-file manifest, test evidence, and rollback notes. + +A Guardrails block reports whether checks passed or failed. It does not stop the workflow by itself, so route its result through a downstream Condition before any GitHub write action. For more patterns, see [AI Agent Output Controls](https://www.sim.ai/library/ai-agent-output-controls-guardrails-structured-outputs-streaming). + +### Require approval before GitHub writes + +Place Human in the Loop immediately before consequential GitHub write actions, then route its approve or reject field through a downstream Condition. + +The Human in the Loop block pauses the run and resumes with submitted form fields. It does not independently enforce approval. The next Condition must send approved runs to the GitHub action and rejected runs to a no-write path. + +A useful approval form includes the proposed operation, repository, affected issue or pull request, generated text or patch summary, test evidence, risk level, and links to relevant GitHub objects. Low-risk actions such as adding an allowlisted label may run after confidence checks, while commits, pull-request creation, requested changes, and merge-related actions should use stricter policies. [AI Agent Builders for Human Approval Workflows](https://www.sim.ai/library/best-ai-agent-builders-for-human-approval-workflows) compares broader approval designs. + +## How do you build an AI agent for GitHub issue triage and labeling? + +Sim can triage GitHub issues by classifying each issue against a controlled label list, checking confidence and duplicate signals, and applying labels only after the selected policy passes. + +A practical issue workflow is: + +1. Receive a newly opened or edited issue. +2. Drop bot-generated events and duplicate deliveries. +3. Retrieve the repository's allowed labels and a small set of potentially similar issues. +4. Ask the model for labels, confidence, duplicate candidates, and an escalation decision in structured form. +5. Reject labels that are not in the repository's allowlist. +6. Route high-confidence, low-risk classifications to the GitHub label action. +7. Route ambiguous security, billing, legal, or production-impact issues to a human. +8. Post a concise comment only when it gives the reporter useful next steps. +9. Record the model output, route taken, approver response, and GitHub result. + +The model should never invent labels or close an issue solely because its title resembles another issue. Duplicate detection should include evidence and should normally ask a maintainer to confirm before closure. + +## How do you automate code review in pull requests? + +Sim fits teams that need customizable pull-request review with explicit validation and approval. PR-Agent fits teams that want a specialized pull-request assistant, while GitHub Copilot cloud agent fits repository-native coding tasks. + +A useful automated reviewer should prioritize findings that are specific, evidenced, and actionable. It should avoid posting stylistic comments that duplicate linters or formatters. + +A reliable review workflow is: + +1. Trigger when a pull request opens or its head commit changes. +2. Fetch changed files, relevant diff hunks, test and check results, and repository review policy. +3. Exclude generated files, lockfiles, vendored code, and paths outside the review policy. +4. Ask the model for structured findings with file, line range, severity, evidence, and suggested remediation. +5. Validate that every referenced file and line exists in the current diff. +6. Suppress low-confidence findings and deduplicate similar comments. +7. Require approval for blocking reviews or high-severity claims. +8. Post a summary and only the comments that passed validation. +9. Re-run on the new head commit rather than commenting against stale code. + +Automated review should supplement tests, static analysis, security scanners, CODEOWNERS, and human review rather than replace them. GitHub branch rules should decide which checks and reviews are required for merge. + +## How can an AI agent open pull requests automatically? + +Sim can open a pull request after an approved workflow creates a branch, writes or commits the intended changes, and supplies a reviewable title and body. + +A pull request requires more than generated prose. The workflow needs an authenticated path to create a branch, make file changes, commit them, push the branch, and open the pull request against the intended base branch. + +Before the write sequence, validate: + +- The repository and base branch are allowlisted. +- The branch name is unique and derived from a trusted identifier. +- The changed-file manifest matches the approved scope. +- Generated changes do not touch protected paths or secrets. +- Required tests or checks completed with recorded results. +- The pull-request body identifies the agent, explains the change, reports test evidence, and provides rollback guidance. +- The workflow cannot merge its own pull request or weaken GitHub rulesets. + +Use a GitHub App or narrowly scoped credential rather than a personal token with broad repository access. Separate read credentials from write credentials when the deployment permits it, and make the write credential available only to the final approved action. + +## How do you keep a GitHub AI agent from merging unsafe code? + +Combine workflow-level approval with GitHub rulesets, required checks, protected branches, and least-privilege credentials so the agent cannot authorize its own merge. + +The strongest control boundary lives in GitHub because it remains effective even if the model, prompt, or workflow route behaves incorrectly. Require independent reviews for sensitive repositories, prevent force pushes, restrict bypass permissions, and ensure the agent identity cannot edit the protections that constrain it. + +Do not treat a Wait block as an approval mechanism. Wait resumes after a configured amount of time and does not resume in response to an external approval event. Use Human in the Loop followed by a Condition for an explicit decision. + +## How do you audit an AI agent that acts on GitHub? + +Sim provides workflow run history, while Sim Enterprise adds audit logs for organization-level governance and investigation. + +A useful audit record connects the incoming GitHub event to the model input, model and version, structured output, policy result, approval response, credential identity, GitHub API result, and final issue or pull-request URL. Redact secrets and unnecessary source content instead of copying them into logs. + +GitHub's issue history, pull-request timeline, commits, reviews, checks, and Actions logs provide the repository-side record. Preserve stable correlation identifiers in both systems so an investigator can trace a comment or commit back to the agent run that produced it. + +## What are the key deployment and billing differences? + +As of November 2026, licensing, deployment, and usage measurement differ across these tools: + +- **Sim:** Sim's core is Apache 2.0 and can be self-hosted. Code in `apps/sim/ee` uses the separate [Sim Enterprise License](https://github.com/simstudioai/sim/blob/main/apps/sim/ee/LICENSE), and self-hosted deployments can use provider keys or local-model infrastructure. +- **GitHub Agentic Workflows:** Workflows run through GitHub Actions and can use the runner and model configuration supported by the workflow. +- **GitHub Copilot cloud agent:** The agent is a proprietary GitHub service tied to GitHub Copilot access rather than a self-hosted control plane. +- **PR-Agent:** The [repository is MIT licensed](https://github.com/qodo-ai/pr-agent/blob/main/LICENSE) and supports self-hosted deployment with the operator's model-provider credentials. +- **n8n:** n8n supports self-hosting under its Sustainable Use License. [n8n Cloud pricing](https://n8n.io/pricing/) measures usage by monthly workflow executions. +- **Zapier:** Zapier is a hosted service, and its [pricing uses a task-based model](https://zapier.com/pricing). +- **Make:** Make is a hosted service, and its [pricing uses credits](https://www.make.com/pricing) for scenario activity. + +## Which related guide should you read next? + +- Read [How to Use the GitHub MCP Server With AI Agents](https://www.sim.ai/library/github-mcp-server-ai-agents) when the main task is connecting and securing GitHub MCP. +- Read [AI Coding Agents vs AI Workflow Agents](https://www.sim.ai/library/ai-coding-agents-vs-ai-workflow-agents) when deciding whether the job requires autonomous code changes or cross-system orchestration. +- Read [Best AI Agent Platforms and Builders in 2026](https://www.sim.ai/library/best-ai-agent-platforms-2026) for a broader agent-platform comparison. +- Read [AI Agent Builders for Human Approval Workflows](https://www.sim.ai/library/best-ai-agent-builders-for-human-approval-workflows) when approval design is the primary requirement. diff --git a/apps/sim/public/library/github-ai-agents-pull-requests-issues-code-review/cover.jpg b/apps/sim/public/library/github-ai-agents-pull-requests-issues-code-review/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..926ade22c90ae8a32085fe4d111857e7242c75c5 GIT binary patch literal 30802 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 literal 0 HcmV?d00001 From f7b217c75f29919ef7357496f299d29eda9d578d Mon Sep 17 00:00:00 2001 From: Sim Pi Agent Date: Wed, 11 Nov 2026 19:13:58 +0000 Subject: [PATCH 2/2] Pi Babysit: address PR #9884 feedback --- .../index.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/sim/content/library/github-ai-agents-pull-requests-issues-code-review/index.mdx b/apps/sim/content/library/github-ai-agents-pull-requests-issues-code-review/index.mdx index 6d30a917112..c84c7cfa1ea 100644 --- a/apps/sim/content/library/github-ai-agents-pull-requests-issues-code-review/index.mdx +++ b/apps/sim/content/library/github-ai-agents-pull-requests-issues-code-review/index.mdx @@ -44,8 +44,8 @@ faq: a: "GitHub Copilot cloud agent, formerly coding agent, is a GitHub-native coding worker, while Sim is the open-source AI workspace for orchestrating governed agents across GitHub and other systems." - q: "What is the difference between PR-Agent and Sim?" a: "PR-Agent is a specialized pull-request assistant, while Sim is a broader AI workspace for combining pull-request review with issue triage, approvals, notifications, databases, and other workflow steps." - - q: "Do I need GitHub MCP to automate pull requests and issues?" - a: "GitHub MCP is not required for every Sim workflow because direct GitHub integration actions can handle supported operations, while MCP is useful when an agent needs broader tool discovery or repository interaction." + - q: "Do I need GitHub Model Context Protocol (MCP) to automate pull requests and issues?" + a: "GitHub Model Context Protocol (MCP) is not required for every Sim workflow because direct GitHub integration actions can handle supported operations. MCP lets agents discover and call GitHub tools when they need broader repository interaction." - q: "How do you prevent prompt injection in a GitHub agent?" a: "Sim workflows should treat issues, comments, pull-request descriptions, diffs, and repository files as untrusted data and prevent that content from changing tool permissions, revealing credentials, or bypassing approval." - q: "What should a GitHub AI agent log?" @@ -100,7 +100,7 @@ Receive only the GitHub events the workflow needs, then normalize repository, is Ignore bot-authored events and attach an idempotency key based on the GitHub delivery or object identifier. This prevents a retry from creating duplicate labels, comments, or pull requests. -Use the [Sim GitHub integration](https://www.sim.ai/integrations/github) for supported triggers and actions. If the workflow needs GitHub MCP for broader tool discovery, read [How to Use the GitHub MCP Server With AI Agents](https://www.sim.ai/library/github-mcp-server-ai-agents) before adding another credential path. +Use the [Sim GitHub integration](https://www.sim.ai/integrations/github) for supported triggers and actions. GitHub Model Context Protocol (MCP) lets agents discover and call GitHub tools for broader repository interaction. If the workflow needs MCP, read [How to Use the GitHub MCP Server With AI Agents](https://www.sim.ai/library/github-mcp-server-ai-agents) before adding another credential path. ### Give the agent limited repository context @@ -212,7 +212,7 @@ As of November 2026, licensing, deployment, and usage measurement differ across ## Which related guide should you read next? -- Read [How to Use the GitHub MCP Server With AI Agents](https://www.sim.ai/library/github-mcp-server-ai-agents) when the main task is connecting and securing GitHub MCP. +- Read [How to Use the GitHub MCP Server With AI Agents](https://www.sim.ai/library/github-mcp-server-ai-agents) when the main task is connecting and securing GitHub Model Context Protocol (MCP), which lets agents discover and call GitHub tools. - Read [AI Coding Agents vs AI Workflow Agents](https://www.sim.ai/library/ai-coding-agents-vs-ai-workflow-agents) when deciding whether the job requires autonomous code changes or cross-system orchestration. - Read [Best AI Agent Platforms and Builders in 2026](https://www.sim.ai/library/best-ai-agent-platforms-2026) for a broader agent-platform comparison. - Read [AI Agent Builders for Human Approval Workflows](https://www.sim.ai/library/best-ai-agent-builders-for-human-approval-workflows) when approval design is the primary requirement.