Welcome to the openJiuwen community! As an open-source Agent platform, openJiuwen is dedicated to providing flexible, powerful, and easy-to-use AI Agent development and runtime capabilities. We encourage developers to participate in the community in a variety of ways, including but not limited to code contributions, documentation improvements, issue reports, and feature suggestions.
- Before You Start
- Types of Contributions
- Code Contribution Workflow
- Development Guidelines
- Submission Workflow
- Code Review
- Community Communication
openJiuwen adopts a layered architecture that covers the full lifecycle of an AI Agent—from development and runtime to deployment and operations. It consists of DeepAgents, Agent Studio, Agent Framework, Agent Distributed Runtime, and Agent System Service.
- DeepAgents: Provides complex agents for different scenarios, such as JiuwenSwarm, JiuwenSymbiosis, and DeepSearch, ready to use out of the box.
- Agent Studio: A one-stop AI Agent development platform offering low-code / no-code visual development. It supports Agent development, workflow orchestration, prompt tuning, online debugging, and resource management, helping developers quickly build and debug agents and workflows.
- Agent Framework: The core framework and execution engine of openJiuwen, providing developers with easy-to-use, multi-scenario interfaces for Agent development, orchestration, and invocation. It covers key capabilities such as complex task planning, loop execution, tool and skill invocation, context management, the memory subsystem, multi-agent collaboration, Agent self-evolution, and compute-affinity scheduling—comprehensively supporting the engineering implementation of everything from a single Agent to multi-Agent collaboration.
- Agent Distributed Runtime: Provides a distributed Agent runtime foundation that supports both low-code and high-code agent deployment modes, enabling one-click Agent publishing/deployment and unified full-lifecycle management. It natively includes core capabilities such as multi-tenant resource isolation, elastic service scaling, unified registration and discovery, and high-speed cross-cluster interconnection—comprehensively supporting the stable operation of large-scale multi-Agent clusters and business scale-out.
- Agent System Service: The underlying system service of AgentOS. It has built-in system-level security isolation sandboxes, globally unified persistent memory storage, native CLI system tools, a standardized Agent file system, a cross-Agent communication bus, and other low-level core capabilities—supporting secure operation of agents across the platform, unified resource scheduling, and efficient multi-Agent collaboration.
openJiuwen adopts a modular repository design, building the AI Agent development ecosystem layer by layer. Each repository can evolve independently or be combined with others, covering the full chain from agent applications, skill distribution, and visual orchestration to framework development and service-based runtime.
| Module | Repository | Description |
|---|---|---|
| Deep Agents | jiuwenswarm | A multi-agent collaboration framework and official flagship application, supporting complex task collaboration and Skill self-evolution. |
| jiuwensymbiosis | An Agent framework for embodied intelligence, supporting configuration-agnostic capability reuse and safety control. | |
| deepsearch | A knowledge-augmented deep retrieval and research Agent for search, reasoning, and report-generation scenarios. | |
| SkillHub | skillhub | A Skill hosting and distribution platform, supporting Skill publishing, version management, search and download, shared reuse, and private deployment. |
| Agent Studio | agent-studio | A one-stop visual Agent development platform, supporting Agent editing, workflow orchestration, resource configuration, prompt tuning, and online debugging. |
| Agent Framework | agent-gateway | A unified access gateway providing channel management, message processing, scheduled tasks, heartbeat, and more. Currently Opening Soon. |
| agent-core | The Python Agent SDK, providing core capabilities such as Agent orchestration, runtime, models, tools, retrieval, and evaluation. | |
| agent-core-java | The Java Agent SDK, providing the Java ecosystem with Agent development capabilities consistent with the Python SDK. | |
| agent-memory | A long-term memory system for agents, supporting memory extraction, compression, hybrid retrieval, knowledge accumulation, and autonomous evolution. | |
| Agent Distributed Runtime | agent-runtime | The Python Agent Runtime, responsible for service-based Agent operation, session management, and lifecycle management. |
| agent-runtime-java | The Java Agent Runtime, providing service-based Agent operation and deployment capabilities based on Spring Boot. | |
| agent-protocol | An Agent interoperability protocol SDK, providing the MCP SDK, A2A SDK, and A2X Registry. |
openJiuwen is an open-source community that relies entirely on the community to provide a friendly development and collaboration environment. Before contributing, please read and follow the openJiuwen Community Code of Conduct.
Important: You must first sign the openJiuwen community "Contributor License Agreement" (CLA) before you can contribute to the openJiuwen community.
A SIG (Special Interest Group) is the technical organizational unit of the openJiuwen community. For how to participate in a SIG, refer to the SIG Governance Charter.
The openJiuwen community welcomes many forms of contributions:
You can review existing code, make changes, report issues, or contribute original code. We encourage developers to participate in code feedback and contributions in various ways.
- Documentation contributions: To contribute documentation, refer to the Documentation Contribution Guide
- Compliance issues: If you find a compliance issue, refer to Open Source Compliance Issue Management
- Security issues: If you find a security/vulnerability issue, refer to:
-
Install Git
- For Git installation, environment configuration, and usage, refer to GitHub's Git documentation
-
Configure Your SSH Public Key
- To register an SSH public key, refer to GitHub's guide on adding a new SSH key to your account
-
Find a Repository That Interests You
- Find a repository you're interested in on the openJiuwen code hosting platform
- Open the home page of the corresponding repository
- Click the Fork button in the upper-right corner and follow the instructions to create a personal cloud fork
-
Create a local working directory
mkdir ${your_working_dir} cd ${your_working_dir}
-
Clone the remote repository
- Copy the remote repository address (
$remote_link) from the repository page - Run the clone command locally:
git clone $remote_link - Copy the remote repository address (
-
Create a branch
Update your local branch:
git remote add origin $remote_link git fetch origin git checkout main git pull --rebaseCreate a local development branch based on the remote main branch:
git branch myfeature origin/main git checkout myfeature
Then edit and modify code on the
myfeaturebranch.
openJiuwen is licensed under the Apache License 2.0 (Apache-2.0).
Important: Code submitted by users must be original and must not infringe on the intellectual property rights of others.
- When contributing code, follow the License and Copyright Guidelines
- If newly contributed code involves the introduction of third-party open-source software or snippet references, strictly follow the requirements in the License and Special License Review Guide
- openJiuwen reserves the right to modify/delete content contributed by developers as needed until it complies with the corresponding guidelines
Please follow the openJiuwen coding standards during code development and review, and be sure to keep the code style consistent.
- Python coding standard: PEP 8
- JavaScript coding standard: openJiuwen JavaScript Coding Style Guide
Commit messages follow Conventional Commits. Adopting this convention improves the readability of commit history and makes it easier for automated tools to generate changelogs.
Format:
<type>(<scope>): <subject>
Notes:
- Write commit messages in English.
- Use
git rebaseto consolidate multiple scattered commits into a single atomic commit, ensuring a clear and traceable main-branch history.
Types:
feat:A new featurefix:A bug fixdocs:Documentation-only changesstyle:Changes that do not affect the meaning of the code (whitespace, formatting, etc.)refactor:A code change that neither fixes a bug nor adds a featureperf:A code change that improves performancetest:Adding missing tests or correcting existing testsci:Changes to CI configuration files and scriptschore:Changes to the build process or auxiliary tools and libraries
Scope: Optional; indicates the affected area, such as model, agent, workflow, etc.
Examples:
feat(model): add user authentication module
fix(front): resolve button click event issue
docs(guide): update contribution guidelines
style(agent): adjust code formatting to match style guide
refactor(workflow): simplify component structure
perf(runtime): optimize runtime performance
test(endpoint): add unit tests for API endpoints
ci: configure GitHub CI pipeline
chore: update dependencies to latest versionsComplex commit format: For commits that require detailed explanations, use the multi-line format:
feat(core): add configuration management feature
Add configuration management module to support dynamic settings loading.
This feature includes:
- Configuration file parser
- Environment variable support
- Settings validation logic
Refs: #12345
git add .
git commit -sm "feat: xxx" # Include your signoff email in the commit messageYou may continue editing, building, and testing on top of a previous commit. Use commit --amend to keep adding to a commit.
When you're ready for review (or just want an off-site backup of your work), push your branch to your fork:
git push -f origin myfeature- Visit your fork's repository page
- Click the Create Pull Request button
- Select your feature branch to generate the PR
- For detailed steps, refer to GitHub's Creating a pull request documentation
A PR description should include:
- The purpose and background of the change
- A detailed description of the change
- Testing status
- Related issue number (using the
#I12345format)
- Open the home page of the corresponding repository
- Select the Issues tab in the upper-left corner
- Click the New Issue button on the right
- Follow the instructions to create a dedicated task, used to run the CI gate for the associated code (feature development / bug fix)
When creating a PR or editing an existing PR, enter #I + the five-digit issue ID (for example, #I12345) in the description box to link the issue to the PR.
Once the gate finishes running, it will automatically comment the gate results on all PRs associated with the issue.
- A minimum number of reviewers must be met
- All review issues must be resolved before merging
- Merging your own Pull Request is prohibited
- Before merging a PR, ensure the associated pipeline tasks have run successfully and passed all checks
openJiuwen uses Continuous Integration (CI) to detect code issues in a timely manner, ensuring reliable code quality and stable functionality:
- Code gate: After a developer submits a code merge request to openJiuwen, a gate check is triggered—such as static checks, code compilation, and functional testing. Code can only be merged after passing the gate.
- Daily builds: openJiuwen's CI pipeline runs automatically every day to detect issues in static checks, compilation, functionality, and more ahead of time, so problems can be fixed promptly and code quality is ensured.
If you encounter problems while using openJiuwen, please join the mailing group to participate in discussions. This is the proper way to participate in openJiuwen community discussions—refer to Subscribe to the Mailing List.
- Read the docs: openJiuwen Documentation Center
- Submit an issue: Create an issue on the Issues page of the corresponding repository
- Join the discussion: Communicate with community members through the mailing list
This product serves only as a workflow orchestration tool and does not include AI model capabilities. When connecting an AI model for a specific business scenario, users must independently bear the relevant compliance obligations, such as those under the EU AI Act.
Thank you for your interest in and contributions to the openJiuwen community! We look forward to your participation in advancing AI Agent technology together. 🎉



