mirror of
https://github.com/temporal-community/temporal-ai-agent.git
synced 2026-03-15 22:18:09 +01:00
* initial mcp * food ordering with mcp * prompt eng * splitting out goals and updating docs * a diff so I can get tests from codex * a diff so I can get tests from codex * oops, missing files * tests, file formatting * readme and setup updates * setup.md link fixes * readme change * readme change * readme change * stripe food setup script * single agent mode default * prompt engineering for better multi agent performance * performance should be greatly improved * Update goals/finance.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update activities/tool_activities.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * co-pilot PR suggested this change, and now fixed it * stronger wording around json format response * formatting * moved docs to dir * moved image assets under docs * cleanup env example, stripe guidance * cleanup --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
106 lines
4.4 KiB
Markdown
106 lines
4.4 KiB
Markdown
# Contributing to the Temporal AI Agent Project
|
|
|
|
This document provides guidelines for contributing to `temporal-ai-agent`. All setup and installation instructions can be found in [setup.md](./setup.md).
|
|
|
|
## Getting Started
|
|
|
|
### Code Style & Formatting
|
|
We use `black` for code formatting and `isort` for import sorting to maintain a consistent codebase.
|
|
- **Format code:**
|
|
```bash
|
|
poetry run poe format
|
|
```
|
|
Or manually:
|
|
```bash
|
|
poetry run black .
|
|
poetry run isort .
|
|
```
|
|
Please format your code before committing.
|
|
|
|
### Linting & Type Checking
|
|
We use `mypy` for static type checking and other linters configured via `poe the poet`.
|
|
- **Run linters and type checks:**
|
|
```bash
|
|
poetry run poe lint
|
|
```
|
|
Or manually for type checking:
|
|
```bash
|
|
poetry run mypy --check-untyped-defs --namespace-packages .
|
|
```
|
|
Ensure all linting and type checks pass before submitting a pull request.
|
|
|
|
## Testing
|
|
Comprehensive testing is crucial for this project. We use `pytest` and Temporal's testing framework.
|
|
- **Install test dependencies** (if not already done with `poetry install --with dev`):
|
|
```bash
|
|
poetry install --with dev
|
|
```
|
|
- **Run all tests:**
|
|
```bash
|
|
poetry run pytest
|
|
```
|
|
- **Run tests with time-skipping (recommended for faster execution, especially in CI):**
|
|
```bash
|
|
poetry run pytest --workflow-environment=time-skipping
|
|
```
|
|
|
|
For detailed information on test categories, running specific tests, test environments, coverage, and troubleshooting, please refer to:
|
|
- [testing.md](./testing.md) (Quick Start and overview)
|
|
- [tests/README.md](../tests/README.md) (Comprehensive guide, patterns, and best practices)
|
|
|
|
**Ensure all tests pass before submitting a pull request.**
|
|
|
|
## Making Changes
|
|
|
|
### Adding New Tools or Goals
|
|
If you're looking to extend the agent's capabilities:
|
|
1. Create your tool implementation in the `tools/` directory.
|
|
2. Register your tool and associate it with relevant goals.
|
|
For detailed instructions, please see:
|
|
- [Agent Customization in AGENTS.md](../AGENTS.md#agent-customization)
|
|
- [Adding Goals and Tools Guide](./adding-goals-and-tools.md)
|
|
|
|
### General Code Changes
|
|
- Follow the existing code style and patterns.
|
|
- Ensure any new code is well-documented with comments.
|
|
- Write new tests for new functionality or bug fixes.
|
|
- Update existing tests if necessary.
|
|
|
|
## Submitting Contributions
|
|
|
|
### Pull Requests
|
|
When you're ready to submit your changes:
|
|
1. Push your branch to the remote repository.
|
|
2. Open a Pull Request (PR) against the `main` branch.
|
|
3. **Describe your changes:** Clearly explain what you changed and why. Reference any related issues.
|
|
4. **Ensure tests pass:** All CI checks, including tests and linters, must pass. The command `poetry run pytest --workflow-environment=time-skipping` is a good one to run locally.
|
|
5. **Request review:** Request a review from one or more maintainers.
|
|
|
|
## Reporting Bugs
|
|
If you encounter a bug, please:
|
|
1. **Search existing issues:** Check if the bug has already been reported.
|
|
2. **Open a new issue:** If not, create a new issue.
|
|
- Provide a clear and descriptive title.
|
|
- Include steps to reproduce the bug.
|
|
- Describe the expected behavior and what actually happened.
|
|
- Provide details about your environment (OS, Python version, Temporal server version, etc.).
|
|
- Include any relevant logs or screenshots.
|
|
|
|
## Suggesting Enhancements
|
|
We welcome suggestions for new features or improvements!
|
|
1. **Search existing issues/discussions:** See if your idea has already been discussed.
|
|
2. **Open a new issue:**
|
|
- Use a clear and descriptive title.
|
|
- Provide a detailed explanation of the enhancement and its benefits.
|
|
- Explain the use case or problem it solves.
|
|
- Include any potential implementation ideas if you have them.
|
|
|
|
## Key Resources
|
|
- **Project Overview**: [README.md](../README.md)
|
|
- **Detailed Contribution & Development Guide**: [AGENTS.md](../AGENTS.md)
|
|
- **Setup Instructions**: [setup.md](./setup.md)
|
|
- **Comprehensive Testing Guide**: [testing.md](./testing.md) and [tests/README.md](../tests/README.md)
|
|
- **System Architecture**: [architecture.md](./architecture.md)
|
|
- **Architecture Decisions**: [architecture-decisions.md](./architecture-decisions.md)
|
|
- **Customizing Agent Tools and Goals**: [adding-goals-and-tools.md](./adding-goals-and-tools.md)
|
|
- **To-Do List / Future Enhancements**: [todo.md](./todo.md) |