Skip to content

Commit a5f042c

Browse files
authored
docs: contribution guides update to issue link (#130)
1 parent 4ad866f commit a5f042c

2 files changed

Lines changed: 12 additions & 205 deletions

File tree

‎CONTRIBUTING.md‎

Lines changed: 6 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -96,115 +96,17 @@ mvn spotless:apply
9696

9797
## Types of Contributions
9898

99-
### Adding New Chat Models
100-
101-
AgentScope currently supports the following API providers at the chat model level: **OpenAI**, **DashScope**,
102-
**Gemini**, **Anthropic**, and **Ollama**. These APIs are compatible with various service providers including vLLM,
103-
DeepSeek, SGLang, and others.
104-
105-
**⚠️ Important Notice:**
106-
107-
Adding a new chat model is not merely a model-level task. It involves multiple components including:
108-
- Message formatters
109-
- Token counters
110-
- Tools API integration
111-
112-
This is a substantial amount of work. To better focus our efforts on agent capability development and maintenance,
113-
**the official development team currently does not plan to add support for new chat model APIs**. However, when there
114-
is a strong need from the developer community, we will do our best to accommodate these requirements.
115-
116-
**If you wish to contribute a new chat model**, here are the components needed to be compatible with the
117-
existing `ReActAgent` in the repository:
118-
119-
#### Required Components:
120-
121-
1. **Chat Model Class** (under `io.agentscope.model`):
122-
```java
123-
package io.agentscope.model;
124-
125-
public class YourChatModel extends ChatModelBase {
126-
/**
127-
* The functionalities that you need to consider include:
128-
* - Tools API integration
129-
* - Both streaming and non-streaming modes (compatible with tools API)
130-
* - tool_choice argument
131-
* - reasoning models
132-
*/
133-
}
134-
```
135-
136-
2. **Formatter Class** (under `io.agentscope.formatter`):
137-
```java
138-
package io.agentscope.formatter;
139-
140-
public class YourModelFormatter extends FormatterBase {
141-
/**
142-
* Convert Msg objects into the format required by your API provider.
143-
* If your API doesn't support multi-agent scenarios (e.g. doesn't support
144-
* the name field in messages), you need to implement two separate formatter
145-
* classes for chatbot and multi-agent scenarios.
146-
*/
147-
}
148-
```
149-
150-
3. **Token Counter** (under `io.agentscope.token`, recommended):
151-
```java
152-
package io.agentscope.token;
153-
154-
public class YourTokenCounter extends TokenCounterBase {
155-
/**
156-
* Implement token counting logic for your model.
157-
* This is recommended but not strictly required.
158-
*/
159-
}
160-
```
161-
162-
### Adding New Agents
163-
164-
To achieve true modularity, the `io.agentscope.agent` package currently aims to maintain only the **`ReActAgent`** class
165-
as the core implementation. We ensure all functionalities in this class are **modular, detachable, and composable**.
166-
167-
In AgentScope, we follow an examples-first development workflow: prototype new implementations in the `agentscope-examples/`
168-
module, then abstract and modularize the functionality, and finally integrate it into the core library.
169-
170-
For specialized or domain-specific agents, we recommend contributing them to the **`agentscope-examples`** module:
99+
We welcome all kinds of contributions! Here's how to find something to work on:
171100

172-
```
173-
agentscope-examples/
174-
└── your-example/
175-
├── pom.xml
176-
├── src/main/java/
177-
│ └── io/agentscope/examples/
178-
│ └── YourAgent.java
179-
└── README.md # Explain the agent's purpose and usage
180-
```
181-
182-
### Adding New Examples
101+
### Finding Issues to Work On
183102

184-
We highly encourage contributions of new examples that showcase the capabilities of AgentScope.
185-
Please add them to the `agentscope-examples/` module with a clear README explaining the purpose and usage of the example.
103+
- **New contributors**: Check out issues labeled [good first issue](https://github.com/agentscope-ai/agentscope-java/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22) - these are great starting points for getting familiar with the codebase.
186104

187-
Our examples are organized as Maven submodules:
105+
- **Looking for more challenges**: Browse issues labeled [help wanted](https://github.com/agentscope-ai/agentscope-java/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22help%20wanted%22) - these are tasks where we'd especially appreciate community help.
188106

189-
- `agentscope-examples/quickstart/` for getting started examples
190-
- `agentscope-examples/advanced/` for advanced usage examples
191-
- `agentscope-examples/werewolf/` for game-related examples
107+
### Have a New Idea?
192108

193-
An example structure could be:
194-
195-
```
196-
agentscope-examples/
197-
└── {example_name}/
198-
├── pom.xml
199-
├── src/
200-
│ └── main/
201-
│ ├── java/
202-
│ │ └── io/agentscope/examples/{example_name}/
203-
│ │ └── Main.java
204-
│ └── resources/
205-
│ └── logback.xml
206-
└── README.md # Explain the example's purpose and usage
207-
```
109+
If you have ideas for new features, improvements, or find bugs that aren't already tracked, please [create a new issue](https://github.com/agentscope-ai/agentscope-java/issues/new) to discuss with the community and maintainers.
208110

209111

210112
## Do's and Don'ts

‎CONTRIBUTING_zh.md‎

Lines changed: 6 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -94,112 +94,17 @@ mvn spotless:apply
9494

9595
## 贡献类型
9696

97-
### 添加新的 ChatModel
97+
我们欢迎各种类型的贡献!以下是寻找贡献方向的方法:
9898

99-
AgentScope 目前内置支持以下 API 提供商:**OpenAI**、**DashScope**、**Gemini**、**Anthropic** 和 **Ollama**。
100-
其中 `OpenAIChatModel` 的实现还兼容不同的服务提供商,如 vLLM,DeepSeek、SGLang 等。
99+
### 寻找可参与的 Issue
101100

102-
**⚠️ 重要:**
101+
- **新贡献者**:查看标记为 [good first issue](https://github.com/agentscope-ai/agentscope-java/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22) 的 issue,这些是熟悉代码库的绝佳起点。
103102

104-
添加新的 ChatModel 不仅涉及模型层面的实现,还涉及到其它组件的配合,具体包括:
105-
- 消息格式化器(formatter)
106-
- Token 计数器(token counter)
107-
- Tools API 集成
103+
- **寻找更多挑战**:浏览标记为 [help wanted](https://github.com/agentscope-ai/agentscope-java/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22help%20wanted%22) 的 issue,这些是我们特别希望得到社区帮助的任务。
108104

109-
这意味着添加一个 ChatModel 需要大量的工作来确保其与 AgentScope 生态系统的其他部分无缝集成。
110-
为了更好地专注于智能体能力开发和维护,**官方开发团队目前不计划添加对新 API 的支持**。
111-
但是当开发者社区有强烈需求时,我们将尽力满足这些需求。
105+
### 有新想法?
112106

113-
**对于一个 ChatModel 类的实现**,为了与仓库中 `ReActAgent` 兼容,所需要实现的组件如下:
114-
115-
#### 必需组件:
116-
117-
1. **ChatModel 类**(位于 `io.agentscope.model` 下):
118-
```java
119-
package io.agentscope.model;
120-
121-
public class YourChatModel extends ChatModelBase {
122-
/**
123-
* 需要考虑的功能包括:
124-
* - 集成 tools API
125-
* - 支持流式和非流式模式,并与 tools API 兼容
126-
* - 支持 tool_choice 参数
127-
* - 考虑支持推理模型
128-
*/
129-
}
130-
```
131-
132-
2. **格式化器类**(位于 `io.agentscope.formatter` 下):
133-
```java
134-
package io.agentscope.formatter;
135-
136-
public class YourModelFormatter extends FormatterBase {
137-
/**
138-
* 将 Msg 对象转换为对应 API 提供商所需的格式。
139-
* 如果模型 API 不支持多智能体场景(例如不支持消息中的 name 字段),
140-
* 需要为 chatbot 和多智能体场景分别实现两个格式化器类。
141-
*/
142-
}
143-
```
144-
145-
3. **Token 计数器**(位于 `io.agentscope.token` 下,推荐):
146-
```java
147-
package io.agentscope.token;
148-
149-
public class YourTokenCounter extends TokenCounterBase {
150-
/**
151-
* 为对应模型实现 token 计数逻辑(推荐实现,非严格要求)。
152-
*/
153-
}
154-
```
155-
156-
### 添加新的智能体
157-
158-
为了确保 AgentScope 中所有的功能实现都是**模块化的、可拆卸的和可组合的**,`io.agentscope.agent` 包目前仅维护 **`ReActAgent`** 类作为核心实现。
159-
160-
在 AgentScope 中,我们遵循示例优先的开发工作流程:
161-
162-
- 在 `agentscope-examples/` 模块中初步实现新的功能
163-
- 然后将重要功能抽象和模块化,集成到核心库中
164-
165-
对于专门的或特定领域的智能体,我们建议将它们贡献到 **`agentscope-examples`** 模块:
166-
167-
```
168-
agentscope-examples/
169-
└── your-example/
170-
├── pom.xml
171-
├── src/main/java/
172-
│ └── io/agentscope/examples/
173-
│ └── YourAgent.java
174-
└── README.md # 解释智能体的目的和用法
175-
```
176-
177-
### 添加新的示例
178-
179-
我们非常鼓励贡献展示 AgentScope 功能的新示例。
180-
请将它们添加到 `agentscope-examples/` 模块,并附上清晰的 README 说明示例的目的和用法。
181-
182-
我们的示例以 Maven 子模块的形式组织:
183-
184-
- `agentscope-examples/quickstart/` 用于入门示例
185-
- `agentscope-examples/advanced/` 用于高级用法示例
186-
- `agentscope-examples/werewolf/` 用于游戏相关示例
187-
188-
示例结构如下:
189-
190-
```
191-
agentscope-examples/
192-
└── {example_name}/
193-
├── pom.xml
194-
├── src/
195-
│ └── main/
196-
│ ├── java/
197-
│ │ └── io/agentscope/examples/{example_name}/
198-
│ │ └── Main.java
199-
│ └── resources/
200-
│ └── logback.xml
201-
└── README.md # 解释示例的目的和用法
202-
```
107+
如果您有新功能、改进建议,或发现了尚未被跟踪的问题,请[创建新的 issue](https://github.com/agentscope-ai/agentscope-java/issues/new) 与社区和维护者讨论。
203108

204109

205110
## Do's and Don'ts

0 commit comments

Comments
 (0)