ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# gym demo
|
||||
|
||||
Example of gym operation.
|
||||
@@ -0,0 +1,2 @@
|
||||
# coding: utf-8
|
||||
# Copyright (c) 2025 inclusionAI.
|
||||
@@ -0,0 +1,34 @@
|
||||
# coding: utf-8
|
||||
# Copyright (c) 2025 inclusionAI.
|
||||
|
||||
from typing import Any, Dict, Union, List
|
||||
|
||||
from examples.common.tools.common import Tools
|
||||
from aworld.config.conf import AgentConfig, ConfigDict
|
||||
from aworld.agents.llm_agent import Agent
|
||||
from aworld.core.common import Observation, ActionModel
|
||||
|
||||
|
||||
class GymDemoAgent(Agent):
|
||||
"""Example agent"""
|
||||
|
||||
def __init__(self, conf: Union[Dict[str, Any], ConfigDict, AgentConfig], **kwargs):
|
||||
super(GymDemoAgent, self).__init__(conf=conf, **kwargs)
|
||||
|
||||
def policy(self, observation: Observation, info: Dict[str, Any] = {}, **kwargs) -> Union[
|
||||
List[ActionModel], None]:
|
||||
import numpy as np
|
||||
|
||||
env_id = observation.info.get('env_id')
|
||||
if env_id and env_id != 'CartPole-v1':
|
||||
raise ValueError("Unsupported env")
|
||||
|
||||
res = np.random.randint(2)
|
||||
action = [ActionModel(agent_name=self.id(), tool_name=Tools.GYM.value, action_name="play", params={"result": res})]
|
||||
if observation.info.get("done"):
|
||||
self._finished = True
|
||||
return action
|
||||
|
||||
async def async_policy(self, observation: Observation, info: Dict[str, Any] = {}, **kwargs) -> Union[
|
||||
List[ActionModel], None]:
|
||||
return self.policy(observation, info, **kwargs)
|
||||
@@ -0,0 +1,23 @@
|
||||
# coding: utf-8
|
||||
# Copyright (c) 2025 inclusionAI.
|
||||
import asyncio
|
||||
|
||||
from aworld.config import RunConfig
|
||||
|
||||
from aworld.config.conf import AgentConfig
|
||||
from aworld.core.task import Task
|
||||
from aworld.runner import Runners
|
||||
from tests.gym_demo.agent import GymDemoAgent as GymAgent
|
||||
|
||||
|
||||
async def main():
|
||||
agent = GymAgent(name="gym_agent", conf=AgentConfig(), tool_names=["gym"], feedback_tool_result=True)
|
||||
# It can also be used `ToolFactory` for simplification.
|
||||
task = Task(agent=agent,
|
||||
tools_conf={"gym": {"env_id": "CartPole-v1", "render_mode": "human", "render": True, "use_async": True}})
|
||||
res = await Runners.run_task(task=task, run_conf=RunConfig())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# We use it as a showcase to demonstrate the framework's scalability.
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user