<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: zfy0701</title>
    <description>The latest articles on DEV Community by zfy0701 (@zfy0701).</description>
    <link>https://dev.to/zfy0701</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4088666%2F7ac79517-118d-47e7-b67a-54f50ab7bbd6.jpg</url>
      <title>DEV Community: zfy0701</title>
      <link>https://dev.to/zfy0701</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zfy0701"/>
    <language>en</language>
    <item>
      <title>AgentConnect vs. Claude Tag: comparing the two ways to bring agents into team chat</title>
      <dc:creator>zfy0701</dc:creator>
      <pubDate>Tue, 06 Oct 2026 05:15:11 +0000</pubDate>
      <link>https://dev.to/agentconnect/agentconnect-vs-claude-tag-comparing-the-two-ways-to-bring-agents-into-team-chat-npa</link>
      <guid>https://dev.to/agentconnect/agentconnect-vs-claude-tag-comparing-the-two-ways-to-bring-agents-into-team-chat-npa</guid>
      <description>&lt;p&gt;Since we launched, the question we get more than any other is how AgentConnect differs from Claude Tag. It's a fair question, and worth answering properly.&lt;/p&gt;

&lt;p&gt;We started building AgentConnect before Claude Tag was announced. Arriving independently at the same idea — that an agent belongs in the shared conversation where a team actually works, not in a private chat window one person can see — was, if anything, reassuring. Great minds think alike: when a team at Anthropic builds toward the same pattern you're building toward, it's decent evidence the pattern is right.&lt;/p&gt;

&lt;p&gt;But agreeing on the pattern isn't the same as building the same product. Underneath that shared starting point, the two differ on questions that matter quite a lot in practice: which agent runs, where it can be triggered from, how many agents work together, and who operates the infrastructure. This post walks through those differences honestly, based on Anthropic's &lt;a href="https://www.anthropic.com/news/introducing-claude-tag" rel="noopener noreferrer"&gt;Claude Tag announcement&lt;/a&gt;, its &lt;a href="https://claude.com/docs/claude-tag/overview" rel="noopener noreferrer"&gt;current product documentation&lt;/a&gt;, and &lt;a href="https://docs.agentconnect.md/" rel="noopener noreferrer"&gt;AgentConnect's public documentation&lt;/a&gt;, checked on September 22, 2026. Both products are moving fast — Claude Tag is still in beta — so check the primary sources if you're reading this later.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Claude Tag&lt;/th&gt;
&lt;th&gt;AgentConnect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Built by&lt;/td&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;Open-source project (&lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;Apache 2.0&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model / runtime&lt;/td&gt;
&lt;td&gt;Supported Claude models, including Opus and Sonnet, subject to organization policy&lt;/td&gt;
&lt;td&gt;Any ACP-compatible runtime — Claude Code, Codex, Grok Build, DeepSeek, Pi, others&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where it works&lt;/td&gt;
&lt;td&gt;Slack (beta), with plans to expand; subscriptions to individual GitHub pull requests&lt;/td&gt;
&lt;td&gt;Slack, Telegram, Discord, Lark/Feishu, plus GitHub, GitLab, and Gitea triggers and Linear issue assignment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent collaboration&lt;/td&gt;
&lt;td&gt;Shared Claude in each channel; identities with scoped tools and memory&lt;/td&gt;
&lt;td&gt;Agents with separate runtimes, tools, and permissions that can call one another&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;Anthropic-hosted SaaS&lt;/td&gt;
&lt;td&gt;Self-hosted (Docker Compose or Kubernetes) or AgentConnect Cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access control&lt;/td&gt;
&lt;td&gt;Admin-scoped channel/tool identities, org and channel spend limits&lt;/td&gt;
&lt;td&gt;Separate agent access and session visibility, synced with GitHub/Slack roles, per-agent repo and tool scoping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Availability&lt;/td&gt;
&lt;td&gt;Beta, Claude Enterprise and Team customers only&lt;/td&gt;
&lt;td&gt;Open source today; hosted Cloud available&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If your team is already fully on Slack and Claude Enterprise or Team, and you want one well-integrated Claude that learns your channels, Claude Tag is a short path to that. If you want to choose runtimes from different vendors, work across more than Slack, configure repository-wide event triggers or issue assignments, or keep the whole stack in infrastructure you control, that's the problem AgentConnect is built around.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Claude Tag is
&lt;/h2&gt;

&lt;p&gt;Claude Tag, announced by Anthropic in June 2026, brings Claude into a Slack channel as a standing team member. An admin grants it access to specific channels, tools, data, and codebases; from there, anyone in the channel can tag &lt;code&gt;@Claude&lt;/code&gt; and delegate a task while they do something else. A few things define how it works, per Anthropic's own description:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It's multiplayer.&lt;/strong&gt; There's one Claude per channel, shared by everyone in it — not a private session per person. Anyone can see what it's doing and pick up where the last person left off.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It learns over time.&lt;/strong&gt; Claude builds context from the channels it's in, and can pull in context from other channels and data sources it's been granted access to (it doesn't report from private channels).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It takes initiative.&lt;/strong&gt; With "ambient" mode on, Claude proactively surfaces relevant updates and follows up on threads that have gone quiet, without being asked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It works asynchronously.&lt;/strong&gt; You hand it a task and move on; it can also schedule and pursue work autonomously over hours or days.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Access is scoped per admin-defined "Claude identity" — a model set up for sales work doesn't share memory or data access with one set up for engineering. Admins set organization- and channel-level spend limits and can audit everything Claude has done and who asked for it.&lt;/p&gt;

&lt;p&gt;Claude Tag replaces the previous Claude in Slack app and is in beta for Claude Enterprise and Team customers, starting on Slack with Anthropic's stated intent to expand to more places over time. Its &lt;a href="https://claude.com/docs/claude-tag/users/models" rel="noopener noreferrer"&gt;model choices&lt;/a&gt; include Opus and Sonnet, subject to Anthropic's available models and organization policy. Users can switch models within a thread or set a channel default, where permitted. Claude Tag can also &lt;a href="https://claude.com/docs/claude-tag/users/proactivity" rel="noopener noreferrer"&gt;subscribe to an individual GitHub pull request&lt;/a&gt; and respond to comments, failed checks, or merges on that PR.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AgentConnect is
&lt;/h2&gt;

&lt;p&gt;AgentConnect is an open-source platform (Apache 2.0) for the same underlying job — letting a team delegate work to agents in the conversations and tools they already use — built around three choices that Claude Tag, being a single-vendor Slack feature, doesn't need to make: which agent, which channel, and who hosts it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Any ACP-compatible agent.&lt;/strong&gt; Configure agents to run Claude Code, Codex, Grok Build, DeepSeek, Pi, or any other agent that speaks the &lt;a href="https://agentclientprotocol.com/get-started/introduction" rel="noopener noreferrer"&gt;Agent Client Protocol&lt;/a&gt;. Choose the runtime and model per agent across supported providers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More than one place to work.&lt;/strong&gt; Connect agents to Slack, Telegram, Discord, and Lark/Feishu, and trigger them directly from GitHub, GitLab, and Gitea pull requests and issues, or from a Linear issue assignment — in addition to webhooks and schedules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specialized agents that collaborate.&lt;/strong&gt; Give each agent its own role, runtime, model, workspace, memory, tools, and skills, and let agents &lt;a href="https://docs.agentconnect.md/docs/multi-agent-work-modes" rel="noopener noreferrer"&gt;call one another&lt;/a&gt; as part of a shared workflow. For example, a support agent can ask a payments specialist to inspect an incident, then use the findings to respond in the shared conversation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boundaries that separate access from visibility.&lt;/strong&gt; Decide who can use an agent, who can see its sessions, and which repositories, tools, and other agents it can reach — synced with your existing GitHub and Slack roles rather than managed as a separate system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-hosted or hosted.&lt;/strong&gt; Run the whole stack — including agent execution and workspaces — in infrastructure you operate using Docker Compose or Kubernetes, or use AgentConnect Cloud's console while still pointing it at daemons you run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We build AgentConnect, so take the framing with that in mind — but every claim above is drawn directly from the &lt;a href="https://docs.agentconnect.md/" rel="noopener noreferrer"&gt;public documentation&lt;/a&gt; linked throughout, not from how we'd like it to be read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the two overlap
&lt;/h2&gt;

&lt;p&gt;Both products are built around the same basic shift: an agent that lives in a shared conversation rather than a private chat window, that teammates can see and pick up after each other on, and that an admin can scope down to specific tools and data. Both let an agent work asynchronously and report back where the team is already looking. If your team hasn't tried this pattern yet, either product will feel like a meaningfully different way of working than a personal chatbot tab.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where they differ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Model and runtime choice.&lt;/strong&gt; Claude Tag lets teams choose among supported Claude models, including Opus and Sonnet, within their organization's policy. AgentConnect lets you choose both the runtime and model per agent across providers, and run different runtimes side by side. This matters if you already have a runtime preference, want to compare providers on the same workflow, or don't want a single vendor's roadmap to be your team's roadmap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where agents can be triggered from.&lt;/strong&gt; Claude Tag's user-facing interface is Slack. Its &lt;a href="https://claude.com/docs/claude-tag/users/proactivity" rel="noopener noreferrer"&gt;PR subscriptions&lt;/a&gt; wake on activity on an individual GitHub pull request, but do not provide repository-wide triggers such as every newly opened PR. AgentConnect connects the same agent roster to Slack, Telegram, Discord, and Lark, and — separately — starts agents from configured GitHub, GitLab, and Gitea pull request and issue events, and from Linear issue assignment. The difference is the available entry points and event scope for starting work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How agents collaborate.&lt;/strong&gt; Claude Tag shares one Claude within each channel, and administrators can configure &lt;a href="https://www.anthropic.com/news/introducing-claude-tag" rel="noopener noreferrer"&gt;separate identities with scoped memory and tools&lt;/a&gt; for different uses. AgentConnect lets teams bring several specialized agents into the same conversation or configure &lt;a href="https://docs.agentconnect.md/docs/multi-agent-work-modes" rel="noopener noreferrer"&gt;agent-to-agent calls&lt;/a&gt; across separately configured runtimes, tools, and permissions. That flexibility adds configuration and coordination; teams whose work fits a shared Claude in each channel may prefer the simpler setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Access control shape.&lt;/strong&gt; Claude Tag scopes a Claude "identity" to a set of channels and tools, with organization- and channel-level spend limits and an audit log. AgentConnect separates who can use an agent from who can see its sessions, and separately scopes which repositories, tools, and other agents each agent can reach — synced with roles your team already manages in GitHub and Slack, rather than a parallel permission system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment and openness.&lt;/strong&gt; Claude Tag is a hosted feature of Claude Enterprise and Team — there's no self-hosted option, and the source isn't open. AgentConnect is Apache-2.0 licensed; agent execution and workspaces stay in the environment you operate whether you self-host the full stack or use AgentConnect Cloud's console.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Claude Tag has the edge
&lt;/h2&gt;

&lt;p&gt;If your team is already standardized on Slack and Claude Enterprise or Team, Claude Tag is close to zero setup — no infrastructure to run, no daemon to install, and it's the most tightly integrated route to Anthropic's own models and ambient behavior tuned specifically for them. For a team that has no interest in running infrastructure, wants one well-supported agent rather than a roster to configure, and works entirely inside Slack, that's a legitimate and simpler answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AgentConnect has the edge
&lt;/h2&gt;

&lt;p&gt;AgentConnect is built for teams that don't want to make Claude Tag's implicit choices for them: teams that want to compare or mix agents and models, that work across more than Slack, that trigger agents from pull requests, issues, or Linear tickets as often as from chat, that need agents on different runtimes to call one another with distinct tools and permissions, or that need to keep agent execution inside infrastructure they control for compliance or data-residency reasons. None of that requires giving up the core pattern — an agent working in a shared, visible conversation — that made Claude Tag worth building in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;Both are worth trying against your team's actual workflows rather than deciding from a comparison alone. AgentConnect is open source and self-hostable today, with a hosted Cloud console if you'd rather not run the daemon yourself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub → &lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;https://github.com/agentconnect-md/agentconnect&lt;/a&gt; — if you find this useful, a star helps others find it too.&lt;/li&gt;
&lt;li&gt;Website → &lt;a href="https://agentconnect.md" rel="noopener noreferrer"&gt;https://agentconnect.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation → &lt;a href="https://docs.agentconnect.md" rel="noopener noreferrer"&gt;https://docs.agentconnect.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Reusable, testable decisions for agent orchestration with Jev</title>
      <dc:creator>zfy0701</dc:creator>
      <pubDate>Tue, 29 Sep 2026 11:11:52 +0000</pubDate>
      <link>https://dev.to/agentconnect/reusable-testable-decisions-for-agent-orchestration-with-jev-14mh</link>
      <guid>https://dev.to/agentconnect/reusable-testable-decisions-for-agent-orchestration-with-jev-14mh</guid>
      <description>&lt;p&gt;Choose when agents act, which agent handles the task, and which model to use.&lt;/p&gt;

&lt;p&gt;A support channel has questions, bug reports, follow-ups, and the occasional “thanks, that worked.” With several agents available, your team needs to decide which messages deserve a response and who should handle them. The same judgment comes up when assigning an issue, choosing a reviewer, or picking a model for a new task.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;AgentConnect&lt;/a&gt; now supports &lt;a href="https://docs.typesafe.ai/introduction" rel="noopener noreferrer"&gt;Jev&lt;/a&gt;, TypeSafe’s judgment model, as a general decision engine for your agents. You define a question and the criteria for answering it. Jev evaluates the context, and AgentConnect uses the answer according to the rules you configure.&lt;/p&gt;

&lt;p&gt;We call these reusable questions &lt;strong&gt;Decisions&lt;/strong&gt;. A Decision can return Yes or No, choose a category you define, or score something on your scale. For example: does this message need a reply, is this a technical or billing question, or how complex is this task? You can reuse the same Decision in several places, with each place choosing what to do with its answer.&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/ekwz18yjf3ljkc4vxzqd.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fekwz18yjf3ljkc4vxzqd.png" alt="The Decision editor with a Support category question, its criteria, and an example result showing each answer's probability." width="800" height="464"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;For a support agent, you can configure a “Needs reply” Decision to trigger on requests for help and skip greetings and acknowledgments. It considers the earlier conversation as well as the latest message. You can add it from the channel row in the agent’s &lt;strong&gt;Integrations&lt;/strong&gt; tab and choose which answers should trigger a response.&lt;/p&gt;

&lt;p&gt;A category Decision can limit responses to technical questions, as in this example:&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/mgunn23zkaynyfzfcjpf.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmgunn23zkaynyfzfcjpf.png" alt="A channel rule triggers the support agent when the technical category reaches 30 percent, with a sample message showing Would trigger." width="800" height="811"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;With shared-bot routing in Slack, a “Support category” Decision can send new conversations to different agents. Technical questions can go to an engineering agent, and billing questions to a support agent. Your team defines the categories and who handles each one. You can also chain Decisions: check the category first, then judge the customer’s frustration before bringing in a specialist.&lt;/p&gt;

&lt;p&gt;We use this in the &lt;strong&gt;Ask AI&lt;/strong&gt; panel on our &lt;a href="https://www.agentconnect.md/docs/getting-started" rel="noopener noreferrer"&gt;documentation site&lt;/a&gt;, too. It connects to an agent through the &lt;a href="https://www.agentconnect.md/docs/connect-automate/agent-chat-api#decision-gate" rel="noopener noreferrer"&gt;agent chat API&lt;/a&gt;, with a Decision that judges whether a visitor’s question is about AgentConnect. When the Decision declines a question, the panel explains what it can help with. You can use the same setup for a documentation assistant or support widget on your own site.&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/rlnaworo9tn8v56byhdw.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frlnaworo9tn8v56byhdw.png" alt="The docs Ask AI panel declines requests for a pancake recipe and a poem, then answers a question about agents in AgentConnect." width="800" height="982"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The docs assistant declines two unrelated requests, then answers a question about AgentConnect.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That same approach works across other parts of your team’s work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Issue triage and code review.&lt;/strong&gt; In GitHub, GitLab, or Gitea, choose which watching agents handle an issue or pull request (merge request on GitLab). A question about the review focus can select a security reviewer for authentication changes or an architecture reviewer for a data model change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime and model selection.&lt;/strong&gt; Choose an agent’s runtime and model when a new session starts. Map task complexity scores to your preferred models, or use the “PR author” example for cross-model review: have Codex review a PR written by Claude, and Claude review one written by Codex. Existing sessions keep their original selection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  &lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/hqkpr68mscd0rb4vop6u.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhqkpr68mscd0rb4vop6u.png" alt="Runtime rules use the PR author Decision to select a review model, with a fallback model when no rule matches." width="800" height="471"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Agents can also ask Decisions themselves while working. Attach a Decision under &lt;strong&gt;Tools &amp;amp; Skills → Decisions&lt;/strong&gt;, and the agent can supply context and use the answer—for example, classify a ticket before choosing how to handle it. Its existing permissions still determine which actions it can take.&lt;/p&gt;

&lt;p&gt;To create your first Decision, open a Playground conversation with one agent and describe what you want to judge. The request below asks for the same judgment as the built-in Needs reply example, and the same flow works for any question your team needs:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create a Decision called Support requests. Use Jev to answer Yes when someone asks for help, and No for greetings, thanks, or casual conversation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  &lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/so9ol3olgk4stac5jvpt.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fso9ol3olgk4stac5jvpt.png" alt="Playground showing a Support requests Decision summary and the createDecision approval card, with proposed arguments and Deny and Approve and run buttons." width="800" height="728"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Review the proposed Decision and its arguments before choosing Approve and run.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The agent drafts the Decision and submits it for your approval. Review its name, model, question, and criteria in the proposed arguments, then choose &lt;strong&gt;Approve and run&lt;/strong&gt; to save it or &lt;strong&gt;Deny&lt;/strong&gt; to reject it. Nothing is applied until you approve. Once saved, open the Decision from the &lt;strong&gt;Decisions&lt;/strong&gt; page and use &lt;strong&gt;Try with an example&lt;/strong&gt; to test it against a sample conversation. You can inspect the answer and probabilities, adjust the criteria, and try again. The channel and routing editors also let you preview what your rules would do with a sample message. You can create Decisions manually or start with examples such as Needs reply, Support category, PR focus, and Task complexity.&lt;/p&gt;

&lt;p&gt;Agents running on AgentConnect Cloud can evaluate Decisions using organization credits. For your own daemons, add a TypeSafe (Jev) API key under &lt;strong&gt;Infra → Provider keys&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Explore the &lt;a href="https://www.agentconnect.md/docs/getting-started" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;, and &lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;star AgentConnect on GitHub&lt;/a&gt; to support the project.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>opensource</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Introducing Linear support</title>
      <dc:creator>zfy0701</dc:creator>
      <pubDate>Fri, 18 Sep 2026 11:59:17 +0000</pubDate>
      <link>https://dev.to/agentconnect/introducing-linear-support-b40</link>
      <guid>https://dev.to/agentconnect/introducing-linear-support-b40</guid>
      <description>&lt;p&gt;AgentConnect now supports Linear. Bring Claude Code, Codex, and your other agents into the issues where your team tracks its work.&lt;/p&gt;

&lt;p&gt;Open an issue and choose AgentConnect from the Assignee menu. Your agent picks up the issue description and starts working. Its plan, tool calls, and progress stream back into Linear.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzt03t6pu74bm0na2oqnz.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzt03t6pu74bm0na2oqnz.gif" alt="Assign an issue to AgentConnect and follow its progress in Linear." width="600" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your agent can post results as issue comments and update the issue’s status.&lt;/p&gt;

&lt;p&gt;You can reply in the same session to add context, ask a follow-up, or stop the work from Linear.&lt;/p&gt;

&lt;p&gt;One agent can work across multiple Linear teams, and one workspace can have several agents with different tools and instructions.&lt;/p&gt;

&lt;p&gt;For setup and configuration, see the &lt;a href="https://docs.agentconnect.md/docs/linear" rel="noopener noreferrer"&gt;Linear integration guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.agentconnect.md/" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Introducing Gitea support</title>
      <dc:creator>zfy0701</dc:creator>
      <pubDate>Tue, 15 Sep 2026 13:04:27 +0000</pubDate>
      <link>https://dev.to/agentconnect/introducing-gitea-support-4pa1</link>
      <guid>https://dev.to/agentconnect/introducing-gitea-support-4pa1</guid>
      <description>&lt;p&gt;AgentConnect now supports Gitea (GitHub and GitLab are already supported). Bring Claude Code, Codex, and your other agents into issues and pull requests on gitea.com or a self-hosted Gitea instance.&lt;/p&gt;

&lt;p&gt;Choose which repositories an agent should follow and when it should start: on new issues or pull requests, on updates, or when mentioned. Several agents can work in the same repository. Mention an agent by name to give it a task, or request the bot as a pull request reviewer.&lt;/p&gt;

&lt;p&gt;Agents reply in the issue or pull request. For code review, they can comment on specific lines, approve a pull request, or request changes. A commit status on the pull request shows the agent’s run state and links to its session.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsiwj260etwuic15dctre.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsiwj260etwuic15dctre.png" alt="An agent requests changes on a Gitea pull request and leaves a comment on the affected line." width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gitea 1.23 or later is required. For setup and configuration, see the &lt;a href="https://docs.agentconnect.md/docs/gitea" rel="noopener noreferrer"&gt;Gitea integration guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.agentconnect.md/" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gitea</category>
      <category>ai</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>Grep beats LSP? Why coding agents ignore your fancier tools</title>
      <dc:creator>zfy0701</dc:creator>
      <pubDate>Mon, 31 Aug 2026 04:28:09 +0000</pubDate>
      <link>https://dev.to/agentconnect/grep-beats-lsp-why-coding-agents-ignore-your-fancier-tools-2gbo</link>
      <guid>https://dev.to/agentconnect/grep-beats-lsp-why-coding-agents-ignore-your-fancier-tools-2gbo</guid>
      <description>&lt;p&gt;Why would a coding agent ignore a retrieval interface that returns more precise results?&lt;/p&gt;

&lt;p&gt;I explored this question in a small study comparing lexical search with &lt;code&gt;grep&lt;/code&gt; against LSP-backed semantic navigation. I expected semantic navigation to reduce noise and save tokens. Instead, agents often stayed with &lt;code&gt;grep&lt;/code&gt;. When I forced them to use the semantic path first, task success sometimes fell.&lt;/p&gt;

&lt;p&gt;This is a question of LLM-friendliness. A tool is not friendly to a model merely because its results are precise. It must return enough context for the next step and present that context in an interface and output shape the model can use directly. Familiarity may also matter: the model may have learned similar action paths during training. The interface properties can be evaluated directly. Training support is a hypothesis consistent with these results, not something this study proves.&lt;/p&gt;

&lt;p&gt;The result is not a general argument against LSP. The protocol includes capabilities far beyond code navigation, and this study tested only a small subset. Instead, the results point to a broader engineering problem: a model does not use tools in isolation. It uses them through a harness that defines the available actions, their names, their inputs, and the context returned to the model.&lt;/p&gt;

&lt;p&gt;In this post, I describe how code retrieval affected both code-finding and editing tasks, why &lt;code&gt;grep&lt;/code&gt; had an advantage in some conditions, and what this means for agent platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8wc3x45y30j0sbubmw8g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8wc3x45y30j0sbubmw8g.png" alt="Agent capability equals model times native harness" width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A model and its familiar tool loop act as one capability surface.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparing two code retrieval interfaces
&lt;/h2&gt;

&lt;p&gt;I compared two ways for an agent to retrieve code context. &lt;code&gt;grep&lt;/code&gt; performs lexical search: it finds matching text. The tested LSP-backed tools perform semantic navigation through references, definitions, and document symbols, allowing them to distinguish a real function call from the same word in a comment.&lt;/p&gt;

&lt;p&gt;The pilot covered three Claude models, several Python and TypeScript repositories, and multiple task types. I measured token use only when both approaches completed the task successfully. This controls for a common evaluation error: a failed run can appear efficient simply because it stopped early.&lt;/p&gt;

&lt;p&gt;On simple code-location tasks, all three models chose the semantic tool only 0% to 6% of the time when both tools were available. Forcing a semantic-first path reduced success from 100% to 89% in that arm.&lt;/p&gt;

&lt;p&gt;Reference-completeness tasks produced a different result. When asked to find every caller, the models chose semantic navigation 45% to 57% of the time. The LSP-backed path reached 1.00 precision, compared with 0.76 for &lt;code&gt;grep&lt;/code&gt;, by removing false matches. However, recall stayed near 0.66 in both arms. Semantic navigation did not find more true calls. The remaining limit came from how thoroughly the agent worked, not from retrieval precision. For the stronger models, the precision gain also came with higher token use rather than a saving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The model doesn't blindly prefer grep — it routes by task&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Share of semantic (LSP) tool calls when both grep and LSP are available and the agent chooses freely.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Legend: Opus 4.8 (blue), Sonnet 4.6 (magenta), Haiku 4.5 (green).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc8f9z1t3j1vdl63x7z4p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc8f9z1t3j1vdl63x7z4p.png" alt="Semantic tool use by task: near zero on localization and rename, but 45% to 57% on reference-completeness" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Same models, same free choice — the routing flips with the task. On localization and rename the agent almost always reaches for grep; on reference-shaped work it reaches for the LSP about half the time, unprompted. The action distribution is task-shaped, not a blind habit.&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Opus 4.8&lt;/th&gt;
&lt;th&gt;Sonnet 4.6&lt;/th&gt;
&lt;th&gt;Haiku 4.5&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Localization&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;td&gt;4%&lt;/td&gt;
&lt;td&gt;6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reference-completeness&lt;/td&gt;
&lt;td&gt;45%&lt;/td&gt;
&lt;td&gt;50%&lt;/td&gt;
&lt;td&gt;57%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-file rename&lt;/td&gt;
&lt;td&gt;3%&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The codebase was also important. On a clean TypeScript repository, LSP-backed navigation produced no F1 gain and used 16% more tokens. On a noisy TypeScript repository, it improved F1 by 0.246 and used 12% fewer tokens. The useful predictor was lexical noise, not whether the language had strong static types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Codebase noise determines the value of semantic navigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Accuracy gain from semantic retrieval on reference-completeness (ΔF1 = LSP − grep). Bar colour encodes how noisy &lt;code&gt;grep&lt;/code&gt; is on that repo; &lt;em&gt;prec&lt;/em&gt; = grep’s precision there.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Legend: blue means grep is clean here; magenta means grep is noisy here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpbibdyg2fn1m68jdt032.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpbibdyg2fn1m68jdt032.png" alt="Delta F1 from LSP: remeda TypeScript clean plus 0.000, hono TypeScript noisy plus 0.246, and requests Python noisy plus 0.072" width="799" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Two repositories in the same language, opposite verdicts. On clean &lt;code&gt;remeda&lt;/code&gt; the LSP adds nothing — &lt;code&gt;grep&lt;/code&gt; already resolves every reference correctly, so semantic retrieval is pure overhead. On noisy &lt;code&gt;hono&lt;/code&gt; it adds +0.246 F1. The predictor is how badly &lt;code&gt;grep&lt;/code&gt;'s precision degrades on that codebase, not whether the language is statically typed.&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Repo&lt;/th&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;grep precision&lt;/th&gt;
&lt;th&gt;ΔF1 (LSP − grep)&lt;/th&gt;
&lt;th&gt;Token cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;remeda&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;+0.000&lt;/td&gt;
&lt;td&gt;+16%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;hono&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;0.51&lt;/td&gt;
&lt;td&gt;+0.246&lt;/td&gt;
&lt;td&gt;−12%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;requests&lt;/td&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;0.76&lt;/td&gt;
&lt;td&gt;+0.072&lt;/td&gt;
&lt;td&gt;+19%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These results are conditional rather than categorical. The agents did not simply “always use grep.” Their routing changed with the task, and the value of LSP-backed navigation changed with the repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool interfaces change agent behavior
&lt;/h2&gt;

&lt;p&gt;The tested LSP-backed tools initially returned only a location: a file path, line, and column. The agent then had to open the file to inspect the code. &lt;code&gt;grep&lt;/code&gt;, by contrast, usually returned the matching line immediately: &lt;code&gt;src/auth.ts:42: return validateToken(token)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I changed the semantic-navigation response to include source text in a similar shape. The semantic backend and the set of references stayed the same; only the information returned to the model changed. Pass@1 on the rename tasks rose from 0.67 to 0.83, while follow-up file reads fell from 15.2 to 3.2 per episode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Returning source context improves semantic navigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Multi-file rename, Opus 4.8, pyright with a pre-warmed index. Same semantic backend in both LSP arms — only the &lt;em&gt;output shape&lt;/em&gt; differs.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Legend: grep (blue), LSP — locations only (magenta), LSP + inline context (green).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ikg6sm2xtqupan98dcx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ikg6sm2xtqupan98dcx.png" alt="Pass at 1 and follow-up file reads for grep, LSP locations only, and LSP with inline context" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Returning locations forces the agent to go read each site; returning the line inline does not. Attaching ±2 lines of source to every reference cut follow-up file reads 15.2 → 3.2 — below grep's own 4.3 — and lifted pass@1 from 0.67 to 0.83. The retrieval backend never changed; only the shape of what came back.&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Arm&lt;/th&gt;
&lt;th&gt;pass@1&lt;/th&gt;
&lt;th&gt;Site recall&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;th&gt;Follow-up reads&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;grep&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.000&lt;/td&gt;
&lt;td&gt;2,451&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LSP — locations only&lt;/td&gt;
&lt;td&gt;0.67&lt;/td&gt;
&lt;td&gt;0.930&lt;/td&gt;
&lt;td&gt;4,131&lt;/td&gt;
&lt;td&gt;15.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LSP + inline context&lt;/td&gt;
&lt;td&gt;0.83&lt;/td&gt;
&lt;td&gt;0.958&lt;/td&gt;
&lt;td&gt;3,336&lt;/td&gt;
&lt;td&gt;3.2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This result illustrates a principle that Anthropic also emphasizes in &lt;a href="https://www.anthropic.com/engineering/writing-tools-for-agents" rel="noopener noreferrer"&gt;Writing effective tools for agents&lt;/a&gt;: tools are interfaces for non-deterministic agents, so the context they return is part of the design. A semantically correct tool can still create a poor agent workflow if each result requires several extra actions to interpret.&lt;/p&gt;

&lt;p&gt;The output change does not prove that post-training data caused the improvement. It may also have helped simply because each response contained more useful information. However, the result is consistent with a broader hypothesis: models learn concrete action patterns, not “tool use” in the abstract. A familiar loop—prompt, tool call, readable result, next action—can be part of the capability observed in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why lexical search had an advantage
&lt;/h2&gt;

&lt;p&gt;Interface familiarity is only part of the explanation. Lexical search also had a real structural advantage for some tasks.&lt;/p&gt;

&lt;p&gt;A semantic reference is only one kind of text match. A rename may also need to update comments, docstrings, configuration, or strings. &lt;code&gt;find_references&lt;/code&gt; will not return those by design, while &lt;code&gt;grep&lt;/code&gt; can.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;semantic references ⊂ textual occurrences&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For text-wide edits, &lt;code&gt;grep&lt;/code&gt; can be the better retrieval tool even for a model with perfect training on LSP-backed navigation.&lt;/p&gt;

&lt;p&gt;This gives us two explanations for the observed behavior:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Structure:&lt;/strong&gt; some tasks need textual completeness, which the tested semantic-navigation methods do not provide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distribution:&lt;/strong&gt; the model may have more practice with familiar tools and result shapes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first explanation follows directly from what the tools retrieve. The second is a hypothesis consistent with the routing and output-format results, but this study did not manipulate training data and therefore cannot prove it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcmzua2gltu3nt3gxrng0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcmzua2gltu3nt3gxrng0.png" alt="The structural and distributional causes behind grep's result" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Structure explains when grep is better. Distribution explains why familiar paths still win.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The harness is part of the system
&lt;/h2&gt;

&lt;p&gt;Here, I use &lt;em&gt;harness&lt;/em&gt; to mean the runtime around a model: the instructions placed in context, the tools made available, their input schemas, the shape of their results and errors, and the loop that decides what the model sees next.&lt;/p&gt;

&lt;p&gt;This surrounding system can materially change behavior. Anthropic’s work on &lt;a href="https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents" rel="noopener noreferrer"&gt;effective harnesses for long-running agents&lt;/a&gt; shows the same idea at a longer time scale: the model alone is not enough to make reliable progress across sessions. Environment setup, progress artifacts, and verification routines affect what the agent can accomplish.&lt;/p&gt;

&lt;p&gt;The same principle applies within a single tool loop. When post-training includes agent trajectories, the harness defines the prompts, tool calls, results, and recovery paths in those examples. A model trained through repeated use of &lt;code&gt;read&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;edit&lt;/code&gt;, and &lt;code&gt;bash&lt;/code&gt; may learn policies that depend on those interfaces. Moving the same model into a different tool layer can therefore change its effective capability.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;agent capability = model × harness&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is why benchmark results for a model do not always transfer unchanged to a different runtime. Supporting the same model is not necessarily the same as reproducing the same agent. Tool selection, signatures, output formats, and error behavior can all affect the policy the model follows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preserving native runtimes with ACP
&lt;/h2&gt;

&lt;p&gt;This is one reason my team and I built &lt;a href="https://docs.agentconnect.md/docs/getting-started" rel="noopener noreferrer"&gt;AgentConnect&lt;/a&gt; around native coding-agent runtimes. AgentConnect does not place Claude or Codex models inside a shared, generic tool loop. It runs runtimes such as Claude Code and Codex on the user’s own machine, where each runtime keeps its native tools and normal prompt-to-tool workflow.&lt;/p&gt;

&lt;p&gt;AgentConnect communicates with these runtimes through the open &lt;a href="https://agentclientprotocol.com/get-started/architecture" rel="noopener noreferrer"&gt;Agent Client Protocol&lt;/a&gt; (ACP). ACP standardizes the boundary between a client and a coding agent, including session setup, prompts, streaming updates, tool-call updates, cancellation, and permission requests. It does not require every runtime to expose the same internal tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmjekorq14sui5eyowy7i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmjekorq14sui5eyowy7i.png" alt="AgentConnect connects native coding agents through ACP" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One open boundary. Each agent stays on its home turf.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This separates two concerns. At the outside boundary, a common protocol lets AgentConnect provide team channels, triggers, schedules, session history, collaboration, and control across multiple agents. Inside that boundary, Claude Code can continue to work like Claude Code, and Codex can continue to work like Codex.&lt;/p&gt;

&lt;p&gt;The goal is not vendor lock-in. ACP provides an open boundary across runtimes. Our design principle is to preserve the tool surface each model already uses well, then add coordination around it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical guidance for adding tools
&lt;/h2&gt;

&lt;p&gt;These findings do not mean that teams should avoid LSP, MCP, or new agent skills. The study found a clear precision gain from LSP-backed navigation in noisy code, and a small response-format change removed most follow-up reads. The practical lesson is to evaluate a new retrieval interface as part of the full agent loop.&lt;/p&gt;

&lt;p&gt;My recommendation is to start with the native tool surface, then apply the following checks when adding a new capability:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Test real tasks at equal accuracy.&lt;/strong&gt; Do not celebrate lower token use if success also fell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure whether the agent calls it.&lt;/strong&gt; Availability is not adoption.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Return enough context for the next decision.&lt;/strong&gt; A result like &lt;code&gt;path:line:content&lt;/code&gt; may work better than a bare location object.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep a native fallback.&lt;/strong&gt; Semantic and lexical search solve different problems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route by the task and the codebase.&lt;/strong&gt; A noisy repository may benefit from semantic navigation. A text-wide search may still need &lt;code&gt;grep&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reinforce the new trajectory when it matters.&lt;/strong&gt; A prompt can introduce a tool, but it may not create a reliable policy for using it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As Anthropic notes in &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;Building effective agents&lt;/a&gt;, successful agent systems often rely on simple, composable patterns. More tools do not automatically produce a more capable agent; tools must be distinct, understandable, and useful within the model’s workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The study shows why “better retrieval” cannot be evaluated outside the full agent system. An interface can be more precise and still use more tokens. It can return correct locations and still create unnecessary reads. A small change in output shape can make the same semantic result much easier for the model to use.&lt;/p&gt;

&lt;p&gt;For teams building agent platforms, the implication is straightforward: evaluate the model and harness together. Preserve the interfaces that already support reliable behavior, and test changes against real tasks before assuming that a more sophisticated abstraction will help.&lt;/p&gt;

&lt;p&gt;For the full experimental setup, task definitions, and results, see &lt;a href="https://github.com/agentconnect-md/lsp-vs-grep-token-study" rel="noopener noreferrer"&gt;Does a Language Server Save Tokens for Coding Agents?&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is the product principle behind AgentConnect: use an open protocol to connect agents, while keeping each model together with its native runtime and tool loop.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;Star AgentConnect on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.agentconnect.md/docs/getting-started" rel="noopener noreferrer"&gt;Get started with AgentConnect&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;This is a preliminary pilot with small task sets, a few repositories, three Claude models, and two to three rollouts per cell. I tested LSP-backed navigation through references, definitions, and document symbols; I did not test &lt;code&gt;textDocument/rename&lt;/code&gt;, diagnostics, or code actions. A rename-capable LSP might perform differently on the refactoring tasks where &lt;code&gt;grep&lt;/code&gt; did best. The edit tasks were local and are not standard SWE-bench scores. These findings are useful signals, not a final verdict across all models, tools, and codebases.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>AgentConnect — the open-source, multi-agent alternative to Claude Tag</title>
      <dc:creator>zfy0701</dc:creator>
      <pubDate>Wed, 26 Aug 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/agentconnect/agentconnect-the-open-source-multi-agent-alternative-to-claude-tag-20cn</link>
      <guid>https://dev.to/agentconnect/agentconnect-the-open-source-multi-agent-alternative-to-claude-tag-20cn</guid>
      <description>&lt;p&gt;AI agents have gotten genuinely good at the work itself—writing code, chasing down bugs, reviewing pull requests. The hard part is teamwork: whose machine is the agent running on? How does anyone else chime in? Who can see how far the work has gotten? And how do multiple agents work with each other?&lt;/p&gt;

&lt;p&gt;Today, we’re introducing &lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;AgentConnect&lt;/a&gt;: an open-source platform where teams and multiple AI agents work together across Slack, Telegram, Discord, GitHub, and GitLab.&lt;/p&gt;

&lt;p&gt;AgentConnect lets you bring Claude Code, Codex, and other ACP-compatible agents into the tools your team already uses. Give each agent a role, configure what it needs, and start work from a conversation, code review, webhook, or schedule.&lt;/p&gt;

&lt;p&gt;Here are a few highlights:&lt;/p&gt;

&lt;h2&gt;
  
  
  🤝 Multiple agents, one team
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Run multiple ACP-compatible agents side by side.&lt;/li&gt;
&lt;li&gt;Let agents collaborate through shared conversations and agent-to-agent calls.&lt;/li&gt;
&lt;li&gt;Configure models, workspaces, memory, MCP servers, skills, and sandbox policies per agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8n3hwuplnr61hf10hzue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8n3hwuplnr61hf10hzue.png" alt="Multiple ACP-compatible agents configured with distinct roles, workspaces, memory, tools, skills, and sandbox policies." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 Work where your team already works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Trigger work from code reviews in GitHub or GitLab, webhooks, or schedules.&lt;/li&gt;
&lt;li&gt;Connect agents to Slack, Telegram, and Discord.&lt;/li&gt;
&lt;li&gt;Continue conversations across platforms—even between Slack and Telegram.&lt;/li&gt;
&lt;li&gt;Configure and follow your agents from one console.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frow4p2v1y0dvdlg63mse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frow4p2v1y0dvdlg63mse.png" alt="AgentConnect connects agents with team conversations in Slack, Telegram, Discord, GitHub, and GitLab workflows." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 Fine-grained access control
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Control agent access separately from session visibility.&lt;/li&gt;
&lt;li&gt;Sync permissions with GitHub and Slack.&lt;/li&gt;
&lt;li&gt;Decide which repositories, tools, and other agents each agent may access.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feyhkn9h0smndsjnoe4n3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feyhkn9h0smndsjnoe4n3.png" alt="Agent and session access configured separately, with permissions synchronized from Slack and GitHub." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🏠 Open source and self-hosted
&lt;/h2&gt;

&lt;p&gt;AgentConnect is licensed under Apache 2.0 and can be deployed with Docker Compose or Kubernetes. Agent execution and workspaces stay in the environment you operate, while one console helps your team manage agents, integrations, access, and sessions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8u0vaas53lckad6xkv0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8u0vaas53lckad6xkv0h.png" alt="The open-source AgentConnect stack running in an environment operated by the team." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Both the open-source and hosted versions of AgentConnect are available today. We’d be grateful to hear what you build with it and how your team approaches multi-agent collaboration. And if you like what you see, give AgentConnect a star on GitHub.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub → &lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;https://github.com/agentconnect-md/agentconnect&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website → &lt;a href="https://agentconnect.md" rel="noopener noreferrer"&gt;https://agentconnect.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation → &lt;a href="https://docs.agentconnect.md" rel="noopener noreferrer"&gt;https://docs.agentconnect.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Video → &lt;a href="https://www.youtube.com/watch?v=KA7xHF5JbJc" rel="noopener noreferrer"&gt;Watch the two-minute introduction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>slack</category>
      <category>codereview</category>
    </item>
    <item>
      <title>Why we built AgentConnect</title>
      <dc:creator>zfy0701</dc:creator>
      <pubDate>Tue, 25 Aug 2026 17:39:24 +0000</pubDate>
      <link>https://dev.to/agentconnect/why-we-built-agentconnect-4bfb</link>
      <guid>https://dev.to/agentconnect/why-we-built-agentconnect-4bfb</guid>
      <description>&lt;h2&gt;
  
  
  It started with writing code
&lt;/h2&gt;

&lt;p&gt;Like most teams, we started simple: everyone ran Claude Code or Codex in their own terminal and used it to write code.&lt;/p&gt;

&lt;p&gt;The agents kept getting better, so we started giving them other jobs. A production error? Let an agent do the first pass of analysis. An upstream dependency shipped a new release? Let an agent upgrade our binaries. Daily health checks. First-pass review on incoming PRs. A customer question in the chat? Let an agent draft the answer.&lt;/p&gt;

&lt;p&gt;Somewhere along the way, our agents crossed the line from “coding tool” to something much closer to a working member of the team.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An agent is not “an API call to a model.” The model may run at a provider — the agent itself is a real process that checks out your repos, runs commands, and holds your credentials.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Where that process runs, who can see it, and who can direct it — that’s where the real questions start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the personal-terminal model breaks down
&lt;/h2&gt;

&lt;p&gt;The problem showed up quickly. Our agents were doing team work, but they still lived like personal tools — in one person’s terminal. Teammates couldn’t see what an agent was doing, couldn’t take over a session, couldn’t review its output, and whatever context it had built up stayed on one laptop.&lt;/p&gt;

&lt;p&gt;So everyone wrote ad-hoc glue for their own use case: message channels, cron jobs, credential handling, context stitching. Then one day we compared notes — we were all writing nearly identical code.&lt;/p&gt;

&lt;p&gt;Most teams using agents hit this stage sooner or later: the agent capability is ready-made; what’s missing is the layer that connects it to how a team actually works. And everyone keeps rebuilding that layer from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three requirements we couldn't compromise on
&lt;/h2&gt;

&lt;p&gt;We looked hard at the existing tools — personal assistants like OpenClaw, agent workspaces like Raft, and Claude Tag. Each is good at what it aims for. But we kept coming back to three requirements, and nothing satisfied all three at once:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Team-level collaboration and permissions.&lt;/strong&gt; Multiple people and multiple agents in shared conversations — with per-member visibility and separate trust boundaries where needed. The agent analyzing production errors and the agent answering customer questions shouldn’t have to run on the same machine or share the same privileges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Work stays where work already happens.&lt;/strong&gt; Our alerts, CI notifications, customers, and integrations live in Slack and Discord. A separate workspace for agent collaboration — however well designed — means a second IM and a migration. We wanted agents to join our channels, not the other way around.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control over runtimes and infrastructure.&lt;/strong&gt; Which model, which runtime, which machine — those choices should stay ours. And the platform itself should be open source, so we can extend it for our own use cases instead of waiting on a vendor.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So we built AgentConnect: an open-source platform for teams to run and manage agents together. The principle behind it: &lt;strong&gt;we don’t invent a new place for collaboration — we bring the agents to where it already happens.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What that looks like in practice
&lt;/h2&gt;

&lt;p&gt;Here’s the kind of workflow this enables — and the reason we say “AI team” rather than “AI tool”:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A customer reports a payment failure in the &lt;code&gt;#customers&lt;/code&gt; channel.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;support-agent&lt;/code&gt;, running on Claude Code, triages the problem and hands the incident off in the same thread.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;payments-agent&lt;/code&gt;, running on Codex on a different machine, reproduces the bug and opens a pull request.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;support-agent&lt;/code&gt; closes the loop in the original thread.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The workflow remains visible in one thread from start to finish, including the handoff and the machine boundary.&lt;/p&gt;

&lt;p&gt;AgentConnect provides the connective tissue: identity, routing, permissions, placement, triggers, and delivery. Each agent has a stable, named identity, backed by the runtime you choose — Claude Code, Codex, or any ACP-compatible runtime. Agents live in Slack, Discord, Telegram, and Lark; work can also start from GitHub or GitLab events, generic webhooks, and schedules. Permissions decide which members — and which agents — can see what. Memory, when enabled, lets an agent retain context across sessions. And through OpenConnector, an open-source connector gateway, agents can act on third-party services without putting provider credentials in the agent process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Execution stays on your infrastructure
&lt;/h2&gt;

&lt;p&gt;Agent execution and workspaces stay on infrastructure you control. The Control Plane never sits on the live message path and never stores message content; callback-based ingress may pass through an optional, non-persisting relay.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Established sessions keep running at the edge during a Control Plane outage; new assignments and orchestration resume when it reconnects.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Where this is going
&lt;/h2&gt;

&lt;p&gt;We believe the next phase is helping teams carry context forward without flattening access boundaries. An authorized agent can retain and surface relevant decisions from the channels, repositories, and systems it is allowed to access, so teams don’t have to reconstruct the same context every time. That layer should be open source and provider-neutral — a team’s context shouldn’t be entrusted to any single vendor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If your team is at the “everyone is writing their own agent glue” stage — we turned that glue into a platform. Open source under Apache 2.0, self-hostable today.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/agentconnect-md/agentconnect" rel="noopener noreferrer"&gt;GitHub — a star helps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.agentconnect.md/docs/getting-started" rel="noopener noreferrer"&gt;Getting started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://app.agentconnect.md/waitlist" rel="noopener noreferrer"&gt;Hosted Cloud waitlist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>slack</category>
      <category>codereview</category>
    </item>
  </channel>
</rss>
