diff --git a/examples/README.md b/examples/README.md index e69de29bb2d..f218fa356b1 100644 --- a/examples/README.md +++ b/examples/README.md @@ -0,0 +1,25 @@ +# Examples + +This directory contains examples of how to use AGNext. + +First, you need to install AGNext and development dependencies by running the +following command: + +```bash +pip install -e '.[dev]' +``` + +To run an example, just run the corresponding Python script. For example, to run the `coder_reviewer.py` example, run: + +```bash +python coder_reviewer.py +``` + +To enable logging, turn on verbose mode by setting `--verbose` flag: + +```bash +python coder_reviewer.py --verbose +``` + +By default the log file is saved in the same directory with the same filename +as the script, e.g., "coder_reviewer.log". diff --git a/examples/assistant.py b/examples/assistant.py index d325b02a4f4..a3b1afebbed 100644 --- a/examples/assistant.py +++ b/examples/assistant.py @@ -238,4 +238,6 @@ async def main() -> None: if args.verbose: logging.basicConfig(level=logging.WARNING) logging.getLogger("agnext").setLevel(logging.DEBUG) + handler = logging.FileHandler("assistant.log") + logging.getLogger("agnext").addHandler(handler) asyncio.run(main()) diff --git a/examples/chess_game.py b/examples/chess_game.py index 3e4c61fee68..230d46d0ef7 100644 --- a/examples/chess_game.py +++ b/examples/chess_game.py @@ -210,5 +210,7 @@ async def main() -> None: if args.verbose: logging.basicConfig(level=logging.WARNING) logging.getLogger("agnext").setLevel(logging.DEBUG) + handler = logging.FileHandler("chess_game.log") + logging.getLogger("agnext").addHandler(handler) asyncio.run(main()) diff --git a/examples/futures.py b/examples/inner_outter.py similarity index 79% rename from examples/futures.py rename to examples/inner_outter.py index 7e7cac1ed03..5de492dee6e 100644 --- a/examples/futures.py +++ b/examples/inner_outter.py @@ -1,4 +1,6 @@ +import argparse import asyncio +import logging from dataclasses import dataclass from agnext.application import SingleThreadedAgentRuntime @@ -47,4 +49,12 @@ async def main() -> None: if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Inner-Outter agent example.") + parser.add_argument("--verbose", action="store_true", help="Enable verbose logging.") + args = parser.parse_args() + if args.verbose: + logging.basicConfig(level=logging.WARNING) + logging.getLogger("agnext").setLevel(logging.DEBUG) + handler = logging.FileHandler("inner_outter.log") + logging.getLogger("agnext").addHandler(handler) asyncio.run(main()) diff --git a/examples/orchestrator.py b/examples/orchestrator.py index 8eb8bf011d0..43111d0b12f 100644 --- a/examples/orchestrator.py +++ b/examples/orchestrator.py @@ -158,6 +158,7 @@ async def run(message: str, user: str, scenario: Callable[[AgentRuntime], Orches if __name__ == "__main__": parser = argparse.ArgumentParser(description="Run a orchestrator demo.") choices = {"software_development": software_development} + parser.add_argument("--verbose", action="store_true", help="Enable verbose logging.") parser.add_argument( "--scenario", choices=list(choices.keys()), @@ -171,4 +172,9 @@ async def run(message: str, user: str, scenario: Callable[[AgentRuntime], Orches ) parser.add_argument("--message", help="The message to send.", required=True) args = parser.parse_args() + if args.verbose: + logging.basicConfig(level=logging.WARNING) + logging.getLogger("agnext").setLevel(logging.DEBUG) + handler = logging.FileHandler("inner_outter.log") + logging.getLogger("agnext").addHandler(handler) asyncio.run(run(args.message, args.user, choices[args.scenario])) diff --git a/pyproject.toml b/pyproject.toml index 0e93dee8707..8abfc9d3063 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,7 +50,7 @@ line-length = 120 fix = true exclude = ["build", "dist", "my_project/__init__.py", "my_project/main.py"] target-version = "py310" -include = ["src/**", "examples/**"] +include = ["src/**", "examples/*.py"] [tool.ruff.format] docstring-code-format = true