<?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: Andrew Mackay</title>
    <description>The latest articles on DEV Community by Andrew Mackay (@armack).</description>
    <link>https://dev.to/armack</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%2F3977682%2Ff7972f6e-a755-4912-b935-000163f88d18.png</url>
      <title>DEV Community: Andrew Mackay</title>
      <link>https://dev.to/armack</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/armack"/>
    <language>en</language>
    <item>
      <title>I Tested AACP Against Four Agent Frameworks. Here Is What I Found.</title>
      <dc:creator>Andrew Mackay</dc:creator>
      <pubDate>Wed, 17 Jun 2026 18:48:53 +0000</pubDate>
      <link>https://dev.to/armack/i-tested-aacp-against-four-agent-frameworks-here-is-what-i-found-2pk3</link>
      <guid>https://dev.to/armack/i-tested-aacp-against-four-agent-frameworks-here-is-what-i-found-2pk3</guid>
      <description>&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;A few weeks ago I published an article about building AACP, a typed&lt;br&gt;
coordination protocol for multi-agent LLM systems. The premise was&lt;br&gt;
simple: agents currently coordinate in natural language, which is&lt;br&gt;
verbose, non-deterministic, and produces no reliable audit trail.&lt;br&gt;
AACP replaces that with typed, pipe-delimited packets.&lt;/p&gt;

&lt;p&gt;The first article measured token reduction on a single payroll workflow.&lt;br&gt;
The finding was a 22.9 percent reduction on Claude and 23.7 percent on&lt;br&gt;
GPT-4o. Interesting, but limited to one framework and one workflow type.&lt;/p&gt;

&lt;p&gt;So I ran a proper benchmark. Same workflow, same data, same model, four&lt;br&gt;
frameworks. 59 coordination hops each. Here is what I found.&lt;/p&gt;


&lt;h2&gt;
  
  
  The benchmark
&lt;/h2&gt;

&lt;p&gt;The test case is a five-workflow department day: JML onboarding,&lt;br&gt;
payroll, sales lead qualification, customer service resolution, and&lt;br&gt;
month-end close. Three iterations of most workflows. 59 total&lt;br&gt;
coordination hops.&lt;/p&gt;

&lt;p&gt;For each framework I ran two versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Without AACP: the orchestrator writes natural language instructions
to specialist agents in whatever style that framework uses by default&lt;/li&gt;
&lt;li&gt;With AACP: the orchestrator sends typed packets, rule-based encoder,
zero LLM cost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same agents. Same mock data. Same gpt-4o-mini model throughout.&lt;/p&gt;


&lt;h2&gt;
  
  
  The results
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Framework      Hops    Coord. calls    Total saving
────────────────────────────────────────────────────
LangChain        59      59 → 0          18%
CrewAI           59      59 → 0          30%
AutoGen          59      59 → 0          55%
Pydantic AI      59      59 → 0          85%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;In every case, all 59 coordination LLM calls were eliminated for known&lt;br&gt;
workflows. The difference is in how much the agent cost dropped alongside&lt;br&gt;
the coordination cost.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why the numbers are so different
&lt;/h2&gt;

&lt;p&gt;This is the part I found genuinely interesting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LangChain at 18%&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;LangChain's default coordination is task-based. The orchestrator writes&lt;br&gt;
a description of what to do, relatively concise. AACP packets are more&lt;br&gt;
compact, so there is a token saving on the coordination side, and the&lt;br&gt;
agents process them slightly more efficiently. The 18% reflects a modest&lt;br&gt;
improvement in a framework that was already reasonably tight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CrewAI at 30%&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CrewAI assigns tasks to agents with explicit role and goal context baked&lt;br&gt;
into each message. The natural language instructions are more verbose&lt;br&gt;
than LangChain's. More verbosity in the baseline means a larger&lt;br&gt;
proportional saving when you replace it with a compact packet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AutoGen at 55%&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AutoGen uses a GroupChat model where agents exchange conversational&lt;br&gt;
messages. Without AACP, the orchestrator writes something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hi HR Agent, I need you to retrieve all active employee salary&lt;br&gt;
records for the period ending March 2026. Please include each&lt;br&gt;
employee's department, cost centre, base salary, any changes applied&lt;br&gt;
this month, and their pension contribution rate. Return the data as&lt;br&gt;
a JSON array. Let me know if you need any clarification."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the coordination overhead AACP eliminates. The conversational&lt;br&gt;
preamble, the clarification offer, the verbose field list -- all of it&lt;br&gt;
goes away. The agent receives a packet and acts on it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pydantic AI at 85%&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This one required a different framing to understand.&lt;/p&gt;

&lt;p&gt;Pydantic AI already types the result layer. Agents return validated&lt;br&gt;
Pydantic models, not free-form text. That is genuinely good -- the&lt;br&gt;
output of every agent call is structured and reliable.&lt;/p&gt;

&lt;p&gt;But the instruction layer is still natural language. The orchestrator&lt;br&gt;
still writes English to tell agents what to do. The result is typed;&lt;br&gt;
the instruction is not.&lt;/p&gt;

&lt;p&gt;AACP completes the picture. With AACP, the orchestrator sends a typed&lt;br&gt;
packet. The agent processes it and returns a typed Pydantic model. Both&lt;br&gt;
layers are now deterministic and validated.&lt;/p&gt;

&lt;p&gt;The 85% saving is partly because Pydantic AI's natural language&lt;br&gt;
coordination, while not conversational like AutoGen, is still verbose&lt;br&gt;
enough that compact AACP packets drive a significant agent cost&lt;br&gt;
reduction. But the more important point is that the full stack --&lt;br&gt;
instructions and results -- is now typed end to end.&lt;/p&gt;


&lt;h2&gt;
  
  
  The pattern
&lt;/h2&gt;

&lt;p&gt;The saving is not random. It scales with how verbose the framework's&lt;br&gt;
default coordination layer is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;More conversational default → larger AACP saving
Less conversational default → smaller AACP saving
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes sense. AACP is most valuable exactly where coordination&lt;br&gt;
overhead is highest. The frameworks that encourage rich, natural&lt;br&gt;
language agent-to-agent communication benefit most from a typed&lt;br&gt;
replacement.&lt;/p&gt;


&lt;h2&gt;
  
  
  What the cost numbers actually mean
&lt;/h2&gt;

&lt;p&gt;At gpt-4o-mini scale the absolute dollar differences are small. A 59-hop&lt;br&gt;
department day costs fractions of a cent either way. The cost argument&lt;br&gt;
becomes significant at volume -- workflows running hundreds or thousands&lt;br&gt;
of times per day, across enterprise pipelines where coordination is a&lt;br&gt;
meaningful fraction of total cost.&lt;/p&gt;

&lt;p&gt;The more immediately useful properties are determinism and auditability.&lt;br&gt;
Natural language coordination varies on every run. The same intent&lt;br&gt;
produces different messages. Validation before transmission is&lt;br&gt;
impossible. Audit trails require natural language processing to extract&lt;br&gt;
meaning.&lt;/p&gt;

&lt;p&gt;AACP packets are identical across runs. They validate against a schema&lt;br&gt;
before transmission. Every packet is a machine-readable audit record&lt;br&gt;
at zero additional cost.&lt;/p&gt;


&lt;h2&gt;
  
  
  The typed-framework case
&lt;/h2&gt;

&lt;p&gt;The Pydantic AI result points at something broader. As agent frameworks&lt;br&gt;
mature, more of them will move toward typed results. Pydantic AI is&lt;br&gt;
ahead of the curve here, but structured outputs are increasingly common&lt;br&gt;
across all frameworks.&lt;/p&gt;

&lt;p&gt;The instruction side has not followed at the same pace. Orchestrators&lt;br&gt;
still write natural language to coordinate agents, even when those&lt;br&gt;
agents return typed results. That is a gap AACP is designed to fill.&lt;/p&gt;


&lt;h2&gt;
  
  
  What is available now
&lt;/h2&gt;

&lt;p&gt;Four framework integrations, all benchmarked at 59 hops:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;aacp-langchain    &lt;span class="c"&gt;# 18% saving&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;aacp-crewai       &lt;span class="c"&gt;# 30% saving&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;aacp-autogen      &lt;span class="c"&gt;# 55% saving (Python 3.11)&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;aacp-pydantic-ai  &lt;span class="c"&gt;# 85% saving&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;aacp              &lt;span class="c"&gt;# core SDK, encoders, RuleRegistry&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;241 pre-validated community rules for common business workflows at&lt;br&gt;
registry.aacp.dev. IETF Internet-Draft draft-mackay-aacp-03.&lt;br&gt;
Full spec at aacp.dev.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I would like to know
&lt;/h2&gt;

&lt;p&gt;These benchmarks used mock data on a single model. I am interested in&lt;br&gt;
whether the results hold in production environments with real data,&lt;br&gt;
longer workflows, and different model combinations.&lt;/p&gt;

&lt;p&gt;Specifically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the determinism property matter in practice or is variation in
coordination messages genuinely harmless?&lt;/li&gt;
&lt;li&gt;Where does the typed packet format break down -- what coordination
patterns cannot be expressed in the AACP vocabulary?&lt;/li&gt;
&lt;li&gt;Does the Pydantic AI result -- completing the typed stack -- reflect
something you have felt as a gap in your own systems?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are running multi-agent workflows in production, I would&lt;br&gt;
genuinely like to hear what you find.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full spec: &lt;a href="https://aacp.dev" rel="noopener noreferrer"&gt;aacp.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;IETF Draft: &lt;a href="https://datatracker.ietf.org/doc/draft-mackay-aacp/" rel="noopener noreferrer"&gt;draft-mackay-aacp-03&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Python SDK: &lt;a href="https://github.com/MackayAndrew/aacp" rel="noopener noreferrer"&gt;github.com/MackayAndrew/aacp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;First article: &lt;a href="https://aacp.dev/blog/coordination-protocol-for-multi-agent-llm-systems" rel="noopener noreferrer"&gt;I built a coordination protocol for multi-agent LLM systems&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>agents</category>
      <category>llm</category>
      <category>opensource</category>
      <category>python</category>
    </item>
    <item>
      <title>I Built a Coordination Protocol for Multi-Agent LLM Systems</title>
      <dc:creator>Andrew Mackay</dc:creator>
      <pubDate>Wed, 10 Jun 2026 12:28:28 +0000</pubDate>
      <link>https://dev.to/armack/i-built-a-coordination-protocol-for-multi-agent-llm-systems-3ggh</link>
      <guid>https://dev.to/armack/i-built-a-coordination-protocol-for-multi-agent-llm-systems-3ggh</guid>
      <description>&lt;h2&gt;
  
  
  The honest origin
&lt;/h2&gt;

&lt;p&gt;This started as a simple observation, not a grand plan.&lt;/p&gt;

&lt;p&gt;I was building multi-agent workflows and noticed that every time one agent&lt;br&gt;
needed to instruct another, it wrote a natural language message. Something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Please retrieve the employee salary records for the period ending March 2026.&lt;br&gt;
I need all active employees, their departments, cost centres, base salary,&lt;br&gt;
any changes made this month, and pension contribution rates. Return as JSON array."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That varies in wording every time the workflow runs. It contains pleasantries the receiving agent does not need. And when something goes wrong, there is no clean audit trail, just a log file full of slightly different English sentences.&lt;/p&gt;

&lt;p&gt;I started wondering whether this was actually the right approach, or just the default one.&lt;/p&gt;
&lt;h2&gt;
  
  
  The first question
&lt;/h2&gt;

&lt;p&gt;The obvious question was whether you could compress those instructions. Replace verbose English with something more structured. I ran some benchmarks using live API usage_metadata and found consistent results: across a four-hop payroll workflow, coordination token usage dropped by 22.9 percent on Claude Sonnet 4.5 and 23.7 percent on GPT-4o versus equivalent English instructions.&lt;/p&gt;

&lt;p&gt;That felt like a result worth building on. So I defined a packet format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FETCH|HR|return:HR-Agent|p:1|aacp:1.1|res:emp_salary|period:2026-03|filter:status=active|fmt:json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Typed. Pipe-delimited. Self-describing. Produced identically on every run by a rule-based encoder at zero LLM cost. I called it AACP (Agent Action Compression Protocol) and published a Python SDK with encoders for common business workflows:&lt;br&gt;
payroll, IT provisioning, invoice processing, contract review.&lt;/p&gt;

&lt;p&gt;For known workflow types, the encoder produces the packet deterministically.&lt;br&gt;
For novel instructions, a four-tier fallback routes to LLM encoding once, logs the result, and serves it from cache on every subsequent call. An amortisation benchmark across 240 encoding operations showed 91.6 percent cost saving versus per-call LLM encoding, with 6 LLM calls required across the full run.&lt;/p&gt;

&lt;p&gt;I filed an IETF Internet-Draft, stood up a site at aacp.dev, and started&lt;br&gt;
getting feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I got wrong about the value
&lt;/h2&gt;

&lt;p&gt;The token reduction is real and measurable. But when I started running the&lt;br&gt;
protocol through more complex workflows and getting feedback from engineers, it became clear that token reduction was not the most interesting thing about it.&lt;/p&gt;

&lt;p&gt;The more interesting thing was determinism.&lt;/p&gt;

&lt;p&gt;When an agent coordinates using AACP packets rather than natural language, the coordination layer becomes predictable. The same workflow produces the same packets on every run. You can validate a packet against the schema before sending it. You can log every coordination hop as a structured record without post-processing. You can replay a workflow and know the coordination instructions were identical to the original run.&lt;/p&gt;

&lt;p&gt;Natural language coordination cannot offer any of those things reliably.&lt;/p&gt;

&lt;p&gt;This matters more in some environments than others. For a simple two-agent&lt;br&gt;
prototype, the difference is minimal. But for workflows that run repeatedly at scale, or where auditability matters, or where multiple frameworks and models need to interoperate, the coordination content layer starts to look like a genuine gap in the current stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it actually fits
&lt;/h2&gt;

&lt;p&gt;To be direct about the architecture: AACP operates between the routing layer and the task execution layer.&lt;/p&gt;

&lt;p&gt;MCP (Anthropic) handles agent access to external tools. A2A (Google) handles agent discovery and task routing. Both are excellent at what they do. Neither specifies what agents say to each other inside coordination messages. That is the layer AACP addresses.&lt;/p&gt;

&lt;p&gt;This means AACP is complementary to both, not competitive with either. A packet can travel inside an MCP payload or be routed by A2A. The protocol is transport-agnostic and model-agnostic by design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest about where it helps most
&lt;/h2&gt;

&lt;p&gt;AACP is most useful in specific conditions. It is worth being direct about this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repetitive structured workflows&lt;/strong&gt; benefit most. Payroll runs monthly. IT&lt;br&gt;
provisioning follows the same steps for every new hire. Invoice processing&lt;br&gt;
applies the same logic every time. For these workflows, a rule-based encoder produces coordination packets at zero LLM cost on every run, indefinitely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compliance-sensitive pipelines&lt;/strong&gt; have a different but equally concrete benefit. When you need to demonstrate what instruction was sent to which agent, when, and in what form, typed packets are a significantly cleaner audit record than parsed natural language. The audit agent in the lab runs without LLM calls, it logs structured records from the packets themselves at zero cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-model and multi-framework systems&lt;/strong&gt; face an interoperability challenge that AACP directly addresses. The same packet format validated identically across Claude Sonnet 4.5, GPT-4o, GPT-4.1, and GPT-4.1-mini in lab tests without model-specific prompt tuning. When agents run on different models or were built with different frameworks, a shared coordination vocabulary reduces translation overhead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For enterprises specifically&lt;/strong&gt;, the token reduction argument is secondary. What matters is auditability, determinism, and the ability to adopt a vendor-neutral coordination format that works regardless of which model or framework is running underneath. The coordination layer does not change when you swap from one LLM provider to another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For simpler systems&lt;/strong&gt;, the case is weaker. Two agents doing open-ended&lt;br&gt;
research have small coordination overhead relative to their task work. AACP&lt;br&gt;
adds the most value where workflows are repetitive, structured, and run at volume.&lt;/p&gt;

&lt;h2&gt;
  
  
  The framework integration results
&lt;/h2&gt;

&lt;p&gt;After publishing the core SDK, I built integrations for LangChain and CrewAI to test the protocol in real framework contexts.&lt;/p&gt;

&lt;p&gt;The methodology was straightforward: run the same five-workflow department day scenario (JML onboarding, payroll, sales qualification, customer service resolution, and month-end close) with and without AACP, using identical agents, identical data, and identical models. 59 coordination hops per run.&lt;/p&gt;

&lt;p&gt;In a standard LangChain implementation, every agent-to-agent coordination hop involves an LLM generating the instruction. Across 59 hops that means 59 LLM calls before any task work begins. With AACP, that drops to zero for known workflows. Total workflow cost reduction: 18 percent.&lt;/p&gt;

&lt;p&gt;CrewAI showed a 30 percent reduction across the same 59-hop scenario. The&lt;br&gt;
larger saving reflects that CrewAI's default natural language task descriptions are more verbose, so the per-hop saving is higher. In both frameworks, coordination messages became deterministic, schema-validated, and machine-readable audit records.&lt;/p&gt;

&lt;h2&gt;
  
  
  The QBR lab
&lt;/h2&gt;

&lt;p&gt;The most recent addition is a Quarterly Business Review workflow that connects to real services. Five agents coordinate via AACP packets to fetch sprint metrics from Jira, extract decisions and action items from Notion, retrieve budget actuals from Google Sheets, consolidate everything into a single view, and draft an executive summary for human review.&lt;/p&gt;

&lt;p&gt;The important design decision: the human review gate is explicit. The protocol coordinates the data gathering and consolidation. The recommendation in the output is clearly labelled as AI-assisted, not AI-decided. Deciding whether to continue, pause, or scale a project requires reading the room in ways the system cannot do. That boundary is intentional.&lt;/p&gt;

&lt;p&gt;The same workflow runs at daily, weekly, monthly, and quarterly cadence by&lt;br&gt;
changing a single field in the coordination packet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;The full stack as of today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python SDK (&lt;code&gt;pip install aacp&lt;/code&gt;) with 8 workflow encoders across 6 domains&lt;/li&gt;
&lt;li&gt;TypeScript SDK (&lt;code&gt;npm install aacp-ts&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;LangChain integration (&lt;code&gt;pip install aacp-langchain&lt;/code&gt;) -- 18% saving, 59 hops&lt;/li&gt;
&lt;li&gt;CrewAI integration (&lt;code&gt;pip install aacp-crewai&lt;/code&gt;) -- 30% saving, 59 hops&lt;/li&gt;
&lt;li&gt;241 pre-validated community rules across 7 domains at registry.aacp.dev&lt;/li&gt;
&lt;li&gt;VS Code extension (Dispatch) for packet building and validation&lt;/li&gt;
&lt;li&gt;QBR lab with live Jira, Notion and Google Sheets connections&lt;/li&gt;
&lt;li&gt;IETF Internet-Draft: draft-mackay-aacp-02&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is MIT licensed and on GitHub at github.com/MackayAndrew.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I think this could become
&lt;/h2&gt;

&lt;p&gt;The most interesting long-term possibility is a shared coordination vocabulary that agent frameworks can adopt independently of each other. A packet format that any agent understands, regardless of whether it is running on Claude, GPT, or an open model, and regardless of whether it was built with LangChain, CrewAI, AutoGen, or a custom framework.&lt;/p&gt;

&lt;p&gt;That is a reasonable description of what AACP already is, for the domains and task types it covers today. The question is whether it scales to a broader set of workflow types, and whether the community of people building multi-agent systems finds it useful enough to adopt.&lt;/p&gt;

&lt;p&gt;That is what I am trying to find out.&lt;/p&gt;

&lt;p&gt;If you are building multi-agent systems and the determinism or auditability&lt;br&gt;
properties are relevant to your use case, the SDK is published and the spec&lt;br&gt;
is at aacp.dev. I would genuinely like to hear whether it is useful and where it falls short.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spec and documentation: &lt;a href="https://aacp.dev" rel="noopener noreferrer"&gt;aacp.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;IETF Draft: &lt;a href="https://datatracker.ietf.org/doc/draft-mackay-aacp/" rel="noopener noreferrer"&gt;draft-mackay-aacp-02&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Python SDK: &lt;a href="https://github.com/MackayAndrew/aacp" rel="noopener noreferrer"&gt;github.com/MackayAndrew/aacp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LangChain integration: &lt;a href="https://github.com/MackayAndrew/aacp-langchain" rel="noopener noreferrer"&gt;github.com/MackayAndrew/aacp-langchain&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CrewAI integration: &lt;a href="https://github.com/MackayAndrew/aacp-crewai" rel="noopener noreferrer"&gt;github.com/MackayAndrew/aacp-crewai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Community rules: &lt;a href="https://registry.aacp.dev" rel="noopener noreferrer"&gt;registry.aacp.dev&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>agents</category>
      <category>llm</category>
      <category>python</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
