Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
11 changes: 7 additions & 4 deletions plugins/acp/acp_plugin_gamesdk/acp_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from game_sdk.game.custom_types import Argument, Function, FunctionResultStatus
from twitter_plugin_gamesdk.twitter_plugin import TwitterPlugin
from virtuals_acp import IDeliverable
from virtuals_acp.models import ACPGraduationStatus, ACPOnlineStatus

from acp_plugin_gamesdk.interface import AcpJobPhasesDesc, IInventory, ACP_JOB_PHASE_MAP
from virtuals_acp.client import VirtualsACP
Expand All @@ -22,7 +23,8 @@ class AcpPluginOptions:
twitter_plugin: TwitterPlugin | None = None
cluster: Optional[str] = None
evaluator_cluster: Optional[str] = None
graduated: Optional[bool] = True
graduation_status: Optional[ACPGraduationStatus] = None
online_status: Optional[ACPOnlineStatus] = None
job_expiry_duration_mins: Optional[int] = None
keep_completed_jobs: Optional[int] = None
keep_cancelled_jobs: Optional[int] = None
Expand Down Expand Up @@ -51,7 +53,8 @@ def __init__(self, options: AcpPluginOptions):
"""
self.cluster = options.cluster
self.evaluator_cluster = options.evaluator_cluster
self.graduated = options.graduated
self.graduation_status = options.graduation_status
self.online_status = options.online_status
self.twitter_plugin = None
if options.twitter_plugin is not None:
self.twitter_plugin = options.twitter_plugin
Expand Down Expand Up @@ -220,7 +223,7 @@ def _search_agents_executable(self, reasoning: str, keyword: str) -> Tuple[Funct
if not reasoning:
return FunctionResultStatus.FAILED, "Reasoning for the search must be provided. This helps track your decision-making process for future reference.", {}

agents = self.acp_client.browse_agents(keyword, self.cluster, graduated=self.graduated)
agents = self.acp_client.browse_agents(keyword, self.cluster, graduation_status=self.graduation_status, online_status=self.online_status)

if not agents:
return FunctionResultStatus.FAILED, "No other trading agents found in the system. Please try again later when more agents are available.", {}
Expand Down Expand Up @@ -355,7 +358,7 @@ def _initiate_job_executable(self, seller_wallet_address: str, price: str, reaso
evaluator_address = self.acp_client.agent_address

if require_evaluation:
validators = self.acp_client.browse_agents(evaluator_keyword, self.evaluator_cluster, graduated=self.graduated)
validators = self.acp_client.browse_agents(evaluator_keyword, self.evaluator_cluster, graduation_status=self.graduation_status, online_status=self.online_status)

if len(validators) == 0:
return FunctionResultStatus.FAILED, "No evaluator found - try a different keyword", {}
Expand Down
6 changes: 4 additions & 2 deletions plugins/acp/examples/agentic/buyer.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from acp_plugin_gamesdk.acp_plugin import AcpPlugin, AcpPluginOptions
from virtuals_acp.client import VirtualsACP
from acp_plugin_gamesdk.env import PluginEnvSettings
from virtuals_acp.models import ACPGraduationStatus, ACPOnlineStatus
from virtuals_acp import ACPJob, ACPJobPhase
from acp_plugin_gamesdk.interface import AcpState, AcpJobPhasesDesc
from dotenv import load_dotenv
Expand Down Expand Up @@ -68,8 +69,9 @@ def buyer():
entity_id=env.BUYER_ENTITY_ID
),
twitter_plugin=TwitterPlugin(options),
cluster="<your_agent_cluster>", # example cluster
graduated=True,
cluster="<your-cluster-name>", # example cluster
graduation_status=ACPGraduationStatus.ALL, # Options: GRADUATED / NOT_GRADUATED / ALL
online_status=ACPOnlineStatus.ALL # Options: ONLINE / OFFLINE / ALL
)
)

Expand Down
8 changes: 5 additions & 3 deletions plugins/acp/examples/reactive/buyer.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from acp_plugin_gamesdk.env import PluginEnvSettings
from virtuals_acp.client import VirtualsACP
from virtuals_acp import ACPJob, ACPJobPhase
from virtuals_acp.models import ACPGraduationStatus, ACPOnlineStatus
from rich import print, box
from rich.panel import Panel
from dotenv import load_dotenv
Expand Down Expand Up @@ -154,8 +155,9 @@ def process_job(job: ACPJob):
entity_id=env.BUYER_ENTITY_ID
),
twitter_plugin=TwitterPlugin(options),
cluster="<your_agent_cluster>", #example cluster
graduated=True,
cluster="<your-cluster-name>", #example cluster
graduation_status=ACPGraduationStatus.ALL, # Options: GRADUATED / NOT_GRADUATED / ALL
online_status=ACPOnlineStatus.ALL # Options: ONLINE / OFFLINE / ALL
)
)

Expand Down Expand Up @@ -210,7 +212,7 @@ def post_tweet(content: str, reasoning: str) -> Tuple[FunctionResultStatus, str,
agent = Agent(
api_key=env.GAME_API_KEY,
name="Virtuals",
agent_goal="Finding the best meme to do tweet posting",
agent_goal="Finding agent to do tweet posting",
agent_description=f"""
Agent that gain market traction by posting meme. Your interest are in cats and AI.
You can head to acp to look for agents to help you generating meme.
Expand Down
2 changes: 1 addition & 1 deletion plugins/acp/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ game-sdk = ">=0.1.5"
python-dotenv = "^1.1.0"
dacite = "^1.9.2"
rich = ">=13.9.4,<15.0.0"
virtuals-acp = "^0.1.21"
virtuals-acp = "^0.1.22"

[build-system]
requires = ["poetry-core"]
Expand Down