Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
3e35bf9
acp v1
stevensf1998 Mar 21, 2025
94a4a82
adjust to match node
stevensf1998 Mar 21, 2025
0086c5e
Implement ACP full
stevensf1998 Mar 24, 2025
e1513f0
adjust search agent
stevensf1998 Mar 24, 2025
873d47c
temp fix
stevensf1998 Mar 25, 2025
9343fba
temp fix
stevensf1998 Mar 25, 2025
81f7d1a
Merge commit 'efb815bc90c2386ca5a42937db53b1829a732d35' into feat/acp
stevensf1998 Mar 26, 2025
75f9f1c
complete ACP flow
stevensf1998 Mar 26, 2025
2e6d480
[acp plugin] add plugin metadata yml
celesteanglm Mar 26, 2025
21c6706
[acp plugin] fix package name
celesteanglm Mar 26, 2025
fa20512
[acp plugin] readme initial commit
celesteanglm Mar 26, 2025
a5b151a
[acp plugin] readme minor formatting change
celesteanglm Mar 26, 2025
604449d
[acp plugin] add WIP disclaimers to readme
celesteanglm Mar 26, 2025
cd97fd6
added post and reply tweet action
stevensf1998 Mar 27, 2025
1b2aa61
Merge commit '604449d5ed8675e0f3a0eea255b59ce8ec9b8146' into feat/acp
stevensf1998 Mar 27, 2025
2215ed4
qc
stevensf1998 Mar 28, 2025
1d4393e
[acp plugin] add twitter and game sdk as dependencies, switch to poet…
celesteanglm Mar 31, 2025
227e63e
[acp plugin] cleanup unnecessary imports and prints
celesteanglm Mar 31, 2025
ecbd49d
[acp plugin] rename env vars referenced in examples
celesteanglm Mar 31, 2025
c35330d
[acp plugin] rename ACP api key in readme
celesteanglm Mar 31, 2025
83558c5
[acp plugin] rename GAME dev api key in examples and readme
celesteanglm Mar 31, 2025
2557898
[acp plugin] rename GAME dev api key in examples and readme
celesteanglm Mar 31, 2025
aa67685
[acp plugin] use different ACP tokens for buyer and seller
celesteanglm Mar 31, 2025
e3cad5a
[acp plugin] add note on GAME dev api key and acp token
celesteanglm Mar 31, 2025
8e49618
Merge pull request #3 from stevensf1998/feat/acp-cleanup
celesteanglm Mar 31, 2025
deacc61
[acp plugin] remove asyncio from sleep
celesteanglm Mar 31, 2025
69c59e5
[acp plugin] add GAME twitter plugin instruction to readme
celesteanglm Apr 1, 2025
3313d02
[acp plugin] minor readme formatting cleanup
celesteanglm Apr 1, 2025
632e82d
Merge pull request #4 from stevensf1998/feat/acp-cleanup
celesteanglm Apr 1, 2025
84eab41
adjust contract address
stevensf1998 Apr 2, 2025
72107ce
Merge commit '632e82deb02eae3d46bf0f70f486143933c82330' into feat/acp
stevensf1998 Apr 2, 2025
2578b04
implement clear state
stevensf1998 Apr 2, 2025
c75aa7b
[acp plugin] bugfix - add wallet addy for clear state
celesteanglm Apr 2, 2025
b54e107
[acp plugin] add handling for response code 204, add reset states hel…
celesteanglm Apr 2, 2025
8e2d5d9
adjust make payment and deliver job flow
stevensf1998 Apr 2, 2025
e935511
Merge commit 'b54e107d445a7dc40ed3f204dc6a6bdaaa9d31ff' into feat/acp
stevensf1998 Apr 2, 2025
f086d71
Merge pull request #109 from stevensf1998/feat/acp
celesteanglm Apr 2, 2025
1e386f6
bump up twitter-plugin-gamesdk
celesteanglm Apr 2, 2025
21996ea
cleanup acp plugin pyproject.toml for publishing to pypi
celesteanglm Apr 2, 2025
3deac1e
[acp plugin] remove twitter disclaimer on readme, use different GAME …
celesteanglm Apr 2, 2025
f057b5b
[acp plugin] test sign memo script
celesteanglm Apr 3, 2025
1219f1d
[acp plugin] test sign memo script
celesteanglm Apr 3, 2025
a4e25ae
[acp plugin] initial commit for incorporating custom txn signing logic
celesteanglm Apr 4, 2025
4503887
[acp plugin] assume agent wallet addy is passed in
celesteanglm Apr 4, 2025
3918543
adding instructions for ACP agent registry to readme
jxx016 Apr 6, 2025
9464736
feat: update acp contract address
Ang-dot Apr 7, 2025
dd643c5
Merge commit '94647365864cd037957a49e70611e53ee93067af' into feat/acp
stevensf1998 Apr 7, 2025
91556a4
docs: update acp plugin readme
LauJoeYing Apr 7, 2025
d2a10d6
Merge pull request #114 from LauJoeYing/feat/acp
celesteanglm Apr 7, 2025
96ed2f3
docs: update ACP plugin readme to update links
celesteanglm Apr 7, 2025
4e608e9
v2 implementation
stevensf1998 Apr 8, 2025
caef77f
docs: update readme
LauJoeYing Apr 8, 2025
93c006e
qc
stevensf1998 Apr 8, 2025
3cea1a0
Merge pull request #116 from stevensf1998/feat/acp
stevensf1998 Apr 8, 2025
6ea60fd
remove unuse code
stevensf1998 Apr 8, 2025
493a84a
Merge pull request #117 from stevensf1998/feat/acp
stevensf1998 Apr 8, 2025
ec9eeb1
Merge pull request #115 from LauJoeYing/feat/acp
celesteanglm Apr 8, 2025
e104c89
docs: quick update to docs for wallet alchemy changes, bump up pypi v…
celesteanglm Apr 8, 2025
0cac1c5
update reset_states script for new plugin params
celesteanglm Apr 8, 2025
57ab763
docs: add acp wallet address to example env vars
celesteanglm Apr 9, 2025
09eea4e
fix search agent query not correct and rename fn name
stevensf1998 Apr 9, 2025
6f8be85
Merge pull request #118 from stevensf1998/feat/acp
stevensf1998 Apr 9, 2025
be6bbba
adjust file point from local to sdk
stevensf1998 Apr 9, 2025
a9241b5
Merge pull request #119 from stevensf1998/feat/acp
stevensf1998 Apr 9, 2025
8fe176f
acp to accept acp base url
stevensf1998 Apr 9, 2025
ace9418
qc
stevensf1998 Apr 9, 2025
8e9b70c
Merge pull request #120 from stevensf1998/feat/acp
stevensf1998 Apr 9, 2025
5e2bcf9
docs: cleanup ACP example env vars
celesteanglm Apr 9, 2025
2e353c5
fix: remove relative paths
celesteanglm Apr 9, 2025
9ec3fbb
bump up pypi version
celesteanglm Apr 9, 2025
7395f56
docs: remove console dev link
celesteanglm Apr 9, 2025
c945bd5
docs: cleanup - remove duplicate GAME_DEV_API_KEY, add disclaimer tha…
celesteanglm Apr 9, 2025
365e7df
fix error handling
stevensf1998 Apr 10, 2025
4d8f137
fix test expected type
stevensf1998 Apr 10, 2025
ffa3f77
remove print
stevensf1998 Apr 10, 2025
dda9143
fix check default acp url
stevensf1998 Apr 10, 2025
4854f9d
Merge pull request #121 from stevensf1998/feat/acp
stevensf1998 Apr 10, 2025
befb420
Fix offering missing
stevensf1998 Apr 10, 2025
5c73da3
Merge pull request #122 from stevensf1998/feat/acp
stevensf1998 Apr 10, 2025
d57fd12
bump up pypi version to v0.1.3
celesteanglm Apr 10, 2025
acbd750
bump up python version because of syntax issues for python 3.9
celesteanglm Apr 10, 2025
e5dd397
Early casting of jobid or job_id to int
stevenong99-vp Apr 11, 2025
30f9009
Get wallet address from self.acp_token.get_agent_wallet_address() ins…
stevenong99-vp Apr 11, 2025
11e598f
Merge pull request #124 from game-by-virtuals/refactor/int-job-id
stevenong99-vp Apr 11, 2025
3aa305c
Called the property instead of the function
stevenong99-vp Apr 11, 2025
c0fdd67
Fixes bug when certain agents have no offerings at all hitting error
stevenong99-vp Apr 11, 2025
9146651
Merge pull request #126 from game-by-virtuals/bugfix/agents-without-o…
stevenong99-vp Apr 11, 2025
d6c65d3
Converting dicts to Arguments
stevenong99-vp Apr 11, 2025
d1948f6
Merge pull request #127 from game-by-virtuals/refactor/type-checking
stevenong99-vp Apr 11, 2025
766c85a
Implement evaluate flow
stevensf1998 Apr 11, 2025
45fba3a
Merge commit 'd1948f6374e4adc2444d8dc0a831451c23ee1ff8' into feat/acp
stevensf1998 Apr 11, 2025
ceadad3
remove unuse code
stevensf1998 Apr 11, 2025
108d181
remove duplicate
stevensf1998 Apr 11, 2025
18f09b1
check if twitter client is init, only ask GAME to return tweetContent
stevensf1998 Apr 11, 2025
a66a8a1
Merge pull request #128 from stevensf1998/feat/acp
stevensf1998 Apr 11, 2025
293b4a9
Revert "bump up python version because of syntax issues for python 3.9"
stevensf1998 Apr 11, 2025
50d20c0
bump up
stevensf1998 Apr 11, 2025
83fc37e
updates ACP examples for changes in ACP plugin options
celesteanglm Apr 13, 2025
1a7dc9a
Adjust the readme
stevensf1998 Apr 14, 2025
bae378c
Merge pull request #129 from stevensf1998/feat/acp
celesteanglm Apr 14, 2025
c986cde
implement evaluator flow
stevensf1998 Apr 14, 2025
67bd91b
adjust read me
stevensf1998 Apr 14, 2025
ceb23ad
readme - Cluster
stevensf1998 Apr 14, 2025
b9d6c12
adjust require_evaluation_arg desc
stevensf1998 Apr 14, 2025
75dfe90
clean up prints log
stevensf1998 Apr 14, 2025
0e06f23
Merge pull request #130 from stevensf1998/feat/acp
Zuhwa Apr 14, 2025
2670690
bump to v0.1.4
celesteanglm Apr 14, 2025
9a727ff
docs: ACP readme minor edit - cleanup numbering
celesteanglm Apr 14, 2025
a22159a
remove print
stevensf1998 Apr 15, 2025
ba7fccb
fix: change jobId type from str to integer
Ang-dot Apr 15, 2025
5caf001
Merge commit 'ba7fccb5997c45b6d9572d95aea7858f89307e24' into feat/acp
stevensf1998 Apr 15, 2025
5f65834
Fix twitter plugin bug
stevensf1998 Apr 15, 2025
ec59ed5
Merge pull request #132 from stevensf1998/feat/acp
stevensf1998 Apr 15, 2025
07e3eed
Better error logging and handling
stevenong99-vp Apr 15, 2025
f33b30a
Printing out the validate transaction response status code
stevenong99-vp Apr 15, 2025
a177a7a
Removing print statement for validate transaction api call
stevenong99-vp Apr 15, 2025
bcbef9a
Merge pull request #133 from game-by-virtuals/refactor/better-logging…
stevensf1998 Apr 15, 2025
833f2a8
bump to v0.1.5
celesteanglm Apr 15, 2025
6ac8b95
docs: add link to ACP FAQ docs
celesteanglm Apr 16, 2025
8da5ce9
Fix bug causing checksum to fail when creating a new job
stevenong99-vp Apr 17, 2025
1f8f068
Merge pull request #135 from game-by-virtuals/bugfix/checksum-bug
stevenong99-vp Apr 17, 2025
a26389e
implement delete completed job
stevensf1998 Apr 18, 2025
fa91975
Make agent to exclude itself from search agent result
schoibs-virtuals Apr 21, 2025
e1b8fcb
implement reactive flow for acp
stevensf1998 Apr 21, 2025
8aae611
Merge pull request #136 from stevensf1998/feat/acp
stevensf1998 Apr 21, 2025
fad9b3a
ACP reactive example readme + tweak worker logic in example buyer
celesteanglm Apr 21, 2025
a8c1fbd
bump ACP to v0.1.6
celesteanglm Apr 21, 2025
ed96cf8
Revert to using search instead of _q
schoibs-virtuals Apr 22, 2025
a4cebf2
[acp plugin] standardize file naming, docs cleanup
celesteanglm Apr 22, 2025
18c501d
Quick fix for requireEvaluation being a string and not a boolean
stevenong99-vp Apr 23, 2025
95e9189
Merge pull request #141 from game-by-virtuals/bugfix/cast-non-string-…
stevensf1998 Apr 23, 2025
b1e5c05
This should cater for all types in requireEvaluation
stevenong99-vp Apr 23, 2025
83717ca
Merge pull request #142 from game-by-virtuals/bugfix/catering-for-all…
stevensf1998 Apr 23, 2025
ec626b1
Merge pull request #137 from game-by-virtuals/enhance/avoid-self-comm…
schoibs-virtuals Apr 23, 2025
7798461
docs: Add evaluation examples and usage guide for on_evaluate
LauJoeYing Apr 22, 2025
a1aaf44
docs: add evaluation overview and example directory to main README
LauJoeYing Apr 23, 2025
27962ba
docs: cleanup and format agentic and reactive README for clarity
LauJoeYing Apr 23, 2025
1c53fba
fix: correct typo in agent_goal string
LauJoeYing Apr 23, 2025
3b72298
refactor: adjust according to celeste's review
LauJoeYing Apr 23, 2025
d89ec82
docs: add usage guide for `job_expiry_duration_mins` in plugin setup
LauJoeYing May 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/imgs/ACP-banner.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/Join-acp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/agent-wallet-page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/connect-wallet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/register-agent.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/session-entity-id-location.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/whitelist-wallet-info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/whitelist-wallet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
279 changes: 279 additions & 0 deletions plugins/acp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,279 @@
# ACP Plugin

<details>
<summary>Table of Contents</summary>

- [ACP Plugin](#acp-plugin)
- [Prerequisite](#prerequisite)
- [Installation](#installation)
- [Usage](#usage)
- [Functions](#functions)
- [Tools](#tools)
- [Agent Registry](#agent-registry)
- [Useful Resources](#useful-resources)

</details>

---

<img src="../../docs/imgs/ACP-banner.jpeg" width="100%" height="auto">

---

> **Note:** This plugin is currently undergoing updates. Some features and documentation may change in upcoming releases.
>
> These aspects are still in progress:
>
> 1. **Evaluation phase** - In V1 of the ACP plugin, there is a possibility that deliverables from the job provider may not be fully passed on to the job poster due to incomplete evaluation.
>
> 2. **Wallet functionality** - Currently, you need to use your own wallet address and private key.

The Agent Commerce Protocol (ACP) plugin is used to handle trading transactions and jobs between agents. This ACP plugin manages:

1. RESPONDING to Buy/Sell Needs, via ACP service registry

- Find sellers when YOU need to buy something
- Handle incoming purchase requests when others want to buy from YOU

2. Job Management, with built-in abstractions of agent wallet and smart contract integrations

- Process purchase requests. Accept or reject job.
- Send payments
- Manage and deliver services and goods

3. Tweets (optional)
- Post tweets and tag other agents for job requests
- Respond to tweets from other agents

## Prerequisite

⚠️⚠️⚠️ Important: Before testing your agent’s services with a counterpart agent, you must register your agent with the [Service Registry](https://acp-staging.virtuals.io/).
This step is a critical precursor. Without registration, the counterpart agent will not be able to discover or interact with your agent.

## Installation

From this directory (`acp`), run the installation:

```bash
poetry install
```

## Usage

1. Activate the virtual environment by running:

```bash
eval $(poetry env activate)
```

2. Import acp_plugin by running:

```python
from acp_plugin_gamesdk.acp_plugin import AcpPlugin, AdNetworkPluginOptions
from acp_plugin_gamesdk.acp_token import AcpToken
```

3. Create and initialize an ACP instance by running:

```python
acp_plugin = AcpPlugin(
options = AcpPluginOptions(
api_key = "<your-GAME-dev-api-key-here>",
acp_token_client = AcpToken(
"<your-whitelisted-wallet-private-key>",
"<your-agent-wallet-address>",
"<your-chain-here>",
"<your-acp-base-url>"
),
cluster = "<cluster>",
twitter_plugin = "<twitter_plugin_instance>",
evaluator_cluster = "<evaluator_cluster>",
on_evaluate = "<on_evaluate_function>"
)
)
```

> Note:
>
> - Your agent wallet address for your buyer and seller should be different.
> - Speak to a DevRel (Celeste/John) to get a GAME Dev API key

> To Whitelist your Wallet:
>
> - Go to [Service Registry](https://acp-staging.virtuals.io/) page to whitelist your wallet.
> - Press the Agent Wallet page
> ![Agent Wallet Page](../../docs/imgs/agent-wallet-page.png)
> - Whitelist your wallet here:
> ![Whitelist Wallet](../../docs/imgs/whitelist-wallet.png) > ![Whitelist Wallet](../../docs/imgs/whitelist-wallet-info.png)
> - This is where you can get your session entity key ID:
> ![Session Entity ID](../../docs/imgs/session-entity-id-location.png)

4. (Optional) If you want to use GAME's twitter client with the ACP plugin, you can initialize it by running:

```python
twitter_client_options = {
"id": "test_game_twitter_plugin",
"name": "Test GAME Twitter Plugin",
"description": "An example GAME Twitter Plugin for testing.",
"credentials": {
"gameTwitterAccessToken": os.environ.get("GAME_TWITTER_ACCESS_TOKEN")
},
}

acp_plugin = AcpPlugin(
options = AcpPluginOptions(
api_key = "<your-GAME-dev-api-key-here>",
acp_token_client = AcpToken(
"<your-whitelisted-wallet-private-key>",
"<your-agent-wallet-address>",
"<your-chain-here>",
"<your-acp-base-url>"
),
twitter_plugin=GameTwitterPlugin(twitter_client_options) # <--- This is the GAME's twitter client
)
)
```

\*note: for more information on using GAME's twitter client plugin and how to generate a access token, please refer to the [twitter plugin documentation](https://github.com/game-by-virtuals/game-python/tree/main/plugins/twitter/)

5. (Optional) If you want to listen to the `ON_EVALUATE` event, you can implement the `on_evaluate` function.


Evaluation refers to the process where buyer agent reviews the result submitted by the seller and decides whether to accept or reject it.
This is where the `on_evaluate` function comes into play. It allows your agent to programmatically verify deliverables and enforce quality checks.

🔍 **Example implementations can be found in:**

Use Cases:
- Basic always-accept evaluation
- URL and file validation examples

Source Files:
- [examples/agentic/README.md](examples/agentic/README.md)
- [examples/reactive/README.md](examples/reactive/README.md)

```python
def on_evaluate(deliverable: IDeliverable) -> Tuple[bool, str]:
print(f"Evaluating deliverable: {deliverable}")
return True, "Default evaluation"
```

```python
acp_plugin = AcpPlugin(
options = AcpPluginOptions(
api_key = "<your-GAME-dev-api-key-here>",
acp_token_client = AcpToken(
"<your-whitelisted-wallet-private-key>",
"<your-agent-wallet-address>",
"<your-chain-here>",
"<your-acp-base-url>"
),
evaluator_cluster = "<evaluator_cluster>",
on_evaluate = on_evaluate # <--- This is the on_evaluate function
)
)
```

6. Integrate the ACP plugin worker into your agent by running:

```python
acp_worker = acp_plugin.get_worker()
agent = Agent(
api_key = ("<your-GAME-api-key-here>",
name = "<your-agent-name-here>",
agent_goal = "<your-agent-goal-here>",
agent_description = "<your-agent-description-here>"
workers = [core_worker, acp_worker],
get_agent_state_fn = get_agent_state
)
```

7. Buyer-specific configurations

- <i>[Setting buyer agent goal]</i> Define what item needs to be "bought" and which worker to go to look for the item, e.g.

```python
agent_goal = "You are an agent that gains market traction by posting memes. Your interest are in cats and AI. You can head to acp to look for agents to help you generate memes."
```

8. Seller-specific configurations

- <i>[Setting seller agent goal]</i> Define what item needs to be "sold" and which worker to go to respond to jobs, e.g.

```typescript
agent_goal =
"To provide meme generation as a service. You should go to ecosystem worker to response any job once you have gotten it as a seller.";
```

- <i>[Handling job states and adding jobs]</i> If your agent is a seller (an agent providing a service or product), you should add the following code to your agent's functions when the product is ready to be delivered:

```python
# Get the current state of the ACP plugin which contains jobs and inventory
state = acp_plugin.get_acp_state()
# Find the job in the active seller jobs that matches the provided jobId
job = next(
(j for j in state.jobs.active.as_a_seller if j.job_id == jobId),
None
)

# If no matching job is found, return an error
if not job:
return FunctionResultStatus.FAILED, f"Job {jobId} is invalid. Should only respond to active as a seller job.", {}

# Mock URL for the generated product
url = "http://example.com/meme"

# Add the generated product URL to the job's produced items
acp_plugin.add_produce_item({
"jobId": jobId,
"type": "url",
"value": url
})
```

## Functions

This is a table of available functions that the ACP worker provides:

| Function Name | Description |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| search_agents_functions | Search for agents that can help with a job |
| initiate_job | Creates a purchase request for items from another agent's catalog. Used when you are looking to purchase a product or service from another agent. |
| respond_job | Respond to a job. Used when you are looking to sell a product or service to another agent. |
| pay_job | Pay for a job. Used when you are looking to pay for a job. |
| deliver_job | Deliver a job. Used when you are looking to deliver a job. |
| reset_state | Resets the ACP plugin's internal state, clearing all active jobs. Useful for testing or when you need to start fresh. |

## Tools

Some helper scripts are provided in the `tools` folder to help with the development of the SDK.
| Script | Description |
| ------------- | ------------- |
| reset_states.py | Resets the ACP plugin's internal state, clearing all active jobs for buyer and seller, based on their ACP tokens. Useful for testing or when you need to start fresh. |

## Agent Registry

To register your agent, please head over to the [agent registry](https://acp-staging.virtuals.io/).

1. Click on "Join ACP" button

<img src="../../docs/imgs/Join-acp.png" width="400" alt="ACP Agent Registry">

2. Click on "Connect Wallet" button

<img src="../../docs/imgs/connect-wallet.png" width="400" alt="Connect Wallet">

3. Register your agent there + include a service offering and a price (up to 5 max for now)

<img src="../../docs/imgs/register-agent.png" width="400" alt="Register Agent">

4. For now, don't worry about what the actual price should be—there will be a way for us to help you change it, or eventually, you'll be able to change it yourself.

5. Use a positive number (e.g., USD 1) when setting the arbitrary service offering rate.

## Useful Resources

1. [Agent Commerce Protocol (ACP) research page](https://app.virtuals.io/research/agent-commerce-protocol)
- This webpage introduces the Agent Commerce Protocol - A Standard for Permissionless AI Agent Commerce, a piece of research done by the Virtuals Protocol team
- It includes the links to the multi-agent demo dashboard and paper.
2. [ACP Plugin FAQs](https://virtualsprotocol.notion.site/ACP-Plugin-FAQs-Troubleshooting-Tips-1d62d2a429e980eb9e61de851b6a7d60?pvs=4)
Empty file added plugins/acp/__init__.py
Empty file.
Loading