ๅบไบ Google A2A (Agent-to-Agent) ๅ่ฎฎ็ไธไธๅๅๅๆๅๅฎกๆฅ็ณป็ป๏ผ้่ฟๅคไธชไธไธๆบ่ฝไฝๅๅๅทฅไฝ๏ผๆไพๅ จ้ข็ๅๅๅฎกๆฅๆๅกใ
A professional contract analysis and review system built on Google's A2A (Agent-to-Agent) protocol, providing comprehensive contract review services through collaborative specialized agents.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็จๆทๅฑ / User Layer โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ๅๅๅฎกๆฅ่ฏทๆฑ โ โ
โ โ Contract Review Request โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๅ่ฐๅจๅฑ / Coordinator Layer โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ContractCoordinator (็ซฏๅฃ 7000) โ โ
โ โ โ โ
โ โ โข ๆฅๆถ็จๆท่ฏทๆฑ / Receive requests โ โ
โ โ โข ไปปๅกๅๅ่ฐๅบฆ / Task distribution โ โ
โ โ โข ็ปๆๆดๅ่พๅบ / Result integration โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ A2Aๅ่ฎฎๅฑ / A2A Protocol Layer โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ BaseAgent โ โ
โ โ โ โ
โ โ โข A2A้ไฟกๅ่ฎฎๅฎ็ฐ / A2A protocol implementation โ โ
โ โ โข ็ปไธไปปๅกๅค็ๆฅๅฃ / Unified task interface โ โ
โ โ โข ๅคงๆจกๅ่ฐ็จๅฐ่ฃ
/ LLM integration wrapper โ โ
โ โ โข ้่ฏฏๅค็ๆบๅถ / Error handling โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ไธไธAgentๅฑ / Specialized Agent Layer โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ ๆๆกฃๅค็Agent โ โ ๆณๅพAgent โ โ ๅไธAgent โ โ
โ โ (็ซฏๅฃ7005) โ โ (็ซฏๅฃ7002) โ โ (็ซฏๅฃ7003) โ โ
โ โDocumentAgent โ โ LegalAgent โ โBusinessAgent โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ ๆ ผๅผAgent โ โ ้ซไบฎAgent โ โ ๆดๅAgent โ โ
โ โ (็ซฏๅฃ7004) โ โ (็ซฏๅฃ7006) โ โ (็ซฏๅฃ7007) โ โ
โ โ FormatAgent โ โHighlightAgentโ โIntegrationAgtโ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- ๆๆกฃๅค็: ๆบ่ฝ่งฃๆๅๅ็ปๆ๏ผๆๅๅ ณ้ฎไฟกๆฏ
- ๆณๅพๅๆ: ๅ่งๆงๆฃๆฅ๏ผ้ฃ้ฉ่ฏๅซ๏ผๆณๅพๅปบ่ฎฎ
- ๅไธๅๆ: ่ดขๅกๆกๆฌพๅๆ๏ผๅไธไปทๅผ่ฏไผฐ
- ๆ ผๅผๆฃๆฅ: ๆๆกฃ่ง่ๆง๏ผไธไธๆง่ฏไผฐ
- ้็นๆ ๆณจ: ๅ ณ้ฎๆกๆฌพ้ซไบฎ๏ผ้ฃ้ฉ็นๆ ๆณจ
- ็ปๆๆดๅ: ็ปผๅๆฅๅ็ๆ๏ผๅณ็ญๆฏๆ
- A2Aๅ่ฎฎ: ๆ ๅๅๆบ่ฝไฝ้ด้ไฟก
- ๅนถ่กๅค็: ๅคๆบ่ฝไฝๅๅๅทฅไฝ
- ๆจกๅๅ: ๆพ่ฆๅๆถๆ๏ผๆไบๆฉๅฑ
- ๅฏๆฉๅฑ: ๆฏๆๆฐๅขไธไธๆบ่ฝไฝ
- ๅฎน้ๆบๅถ: ๅฎๅ็้่ฏฏๅค็ๅๆขๅค
Python 3.8+
pip install -r requirements.txt
็ผ่พ config.py
ๆไปถ๏ผ้
็ฝฎ LLM API๏ผ
LLM API ๅผ้้พๆฅ๏ผhttps://console.bce.baidu.com/qianfan/modelcenter/model/buildIn/detail/am-c8fe1b412vwn?tab=version#ERNIE-4.5-21B-A3B
LLM_CONFIG = LLMConfig(
api_key="your-api-key", # ๆฟๆขไธบๆจ็APIๅฏ้ฅ
model="ernie-4.5-21b-a3b",
base_url="https://qianfan.baidubce.com/v2/chat/completions"
)
python start_system.py start
ๅ้ๅๅๅฎกๆฅ่ฏทๆฑๅฐๅ่ฐๅจ๏ผ
from python_a2a import A2AClient, Message, TextContent, MessageRole
# ่ฟๆฅๅฐๅ่ฐๅจ
client = A2AClient("http://localhost:7000/a2a")
# ๅ้ๅๅๆๆฌ่ฟ่กๅฎกๆฅ
contract_text = "ๆจ็ๅๅๅ
ๅฎน..."
message = Message(
content=TextContent(text=contract_text),
role=MessageRole.USER
)
# ่ทๅๅฎกๆฅ็ปๆ
response = client.send_message(message)
print(response.content.text)
- ่่ดฃ: ไธปๅ่ฐๅจ๏ผ่ด่ดฃๆฅๆถ็จๆท่ฏทๆฑ๏ผๅๅไปปๅก๏ผๆดๅ็ปๆ
- ๅ่ฝ: ๅทฅไฝๆต็จ่งๅ๏ผไปปๅก่ฐๅบฆ๏ผ็ปๆๆฑๆป
- ่พๅ ฅ: ็จๆท็ๅๅๅฎกๆฅ่ฏทๆฑ
- ่พๅบ: ็ปผๅๆงๅๅๅฎกๆฅๆฅๅ
- ่่ดฃ: ๆๆกฃ่งฃๆๅ็ปๆๅๆ
- ๅ่ฝ:
- ๆๆกฃ็ปๆ่ฏๅซ๏ผ็ซ ่ใๆกๆฌพใ้ไปถ๏ผ
- ๅ ณ้ฎไฟกๆฏๆๅ๏ผๅฝไบไบบใ้้ขใๆฅๆ๏ผ
- ๅๅ็ฑปๅ่ฏๅซ
- ๆๆฌ็ป่ฎกๅๆ
- ่พๅบ: ็ปๆๅ็ๆๆกฃๅๆๆฅๅ
- ่่ดฃ: ๆณๅพๅ่งๆงๅๆๅ้ฃ้ฉ่ฏไผฐ
- ๅ่ฝ:
- ๅๅๆๅ่ฆไปถๆฃๆฅ
- ๅฟ ่ฆๆกๆฌพๅฎๆดๆงๅๆ
- ๆณๅพ้ฃ้ฉ่ฏๅซๅ่ฏ็บง
- ่ฟ็บฆ่ดฃไปปๆกๆฌพๅๆ
- ไบ่ฎฎ่งฃๅณๆบๅถ่ฏไผฐ
- ่พๅบ: ๆณๅพ้ฃ้ฉๆฅๅๅๅ่งๅปบ่ฎฎ
- ่่ดฃ: ๅไธๆกๆฌพๅ่ดขๅกๅๆ
- ๅ่ฝ:
- ่ดขๅกๆกๆฌพๅๆ๏ผไปทๆ ผใๆฏไปๆกไปถ๏ผ
- ๅไธ้ฃ้ฉ่ฏไผฐ
- ๆ่ตๅๆฅๅๆ
- ๅธๅบๆกไปถ่ฏไผฐ
- ่ฟ่ฅ่ฆๆฑๅๆ
- ่พๅบ: ๅไธไปทๅผๅ้ฃ้ฉ่ฏไผฐๆฅๅ
- ่่ดฃ: ๆๆกฃๆ ผๅผๅ่ง่ๆงๆฃๆฅ
- ๅ่ฝ:
- ๅๅ็ปๆ่ง่ๆงๆฃๆฅ
- ็ซ ่็ผๅทไฝ็ณปๅๆ
- ๆ ผๅผไธ่ดๆง่ฏไผฐ
- ไธไธๆงๅๅฏ่ฏปๆง่ฏไผฐ
- ่พๅบ: ๆ ผๅผ่ง่ๆงๆฅๅๅๆน่ฟๅปบ่ฎฎ
- ่่ดฃ: ้็นๅ ๅฎนๆ ๆณจๅ้ฃ้ฉๆ็คบ
- ๅ่ฝ:
- ๅ ณ้ฎๆกๆฌพ่ฏๅซๅๆ ๆณจ
- ้ฃ้ฉ็น้ซไบฎๆพ็คบ
- ้่ฆไฟกๆฏๅ็ฑปๆ ่ฎฐ
- ๆณจๆไบ้กนๆ้
- ่พๅบ: ๅธฆๆ ๆณจ็ๅๅๆๆกฃๅ้็น่ฏดๆ
- ่่ดฃ: ๅๆ็ปๆๆดๅๅๆ็ปๆฅๅ็ๆ
- ๅ่ฝ:
- ๅค็ปดๅบฆๅๆ็ปๆๆดๅ
- ็ปผๅ้ฃ้ฉ่ฏ็บง
- ๅณ็ญๆฏๆไฟกๆฏ็ๆ
- ๆ ๅๅๆฅๅ่พๅบ
- ่พๅบ: ็ปผๅๅๆๆฅๅๅ่กๅจๅปบ่ฎฎ
python start_system.py start
python start_system.py status
python start_system.py stop
python start_system.py help
ๆๆๆบ่ฝไฝ้ฝๆไพๆ ๅ็ A2A ๆฅๅฃ๏ผ
- ๅ่ฐๅจ:
http://localhost:7000/a2a
- ๆณๅพๆบ่ฝไฝ:
http://localhost:7002/a2a
- ๅไธๆบ่ฝไฝ:
http://localhost:7003/a2a
- ๆ ผๅผๆบ่ฝไฝ:
http://localhost:7004/a2a
- ๆๆกฃๆบ่ฝไฝ:
http://localhost:7005/a2a
- ้ซไบฎๆบ่ฝไฝ:
http://localhost:7006/a2a
- ๆดๅๆบ่ฝไฝ:
http://localhost:7007/a2a
{
"content": {
"type": "text",
"text": "ๅๅๅ
ๅฎนๆๅๆ่ฏทๆฑ"
},
"role": "user",
"message_id": "uuid",
"conversation_id": "uuid"
}
# LLM API ้
็ฝฎ
QIANFAN_API_KEY=your-api-key
OPENAI_API_KEY=your-openai-key
ANTHROPIC_API_KEY=your-anthropic-key
็ผ่พ config.py
ๆฅไฟฎๆน๏ผ
- LLM ๆจกๅ้ ็ฝฎ
- ๆบ่ฝไฝ็ซฏๅฃ่ฎพ็ฝฎ
- ็ณป็ปๅๆฐ่ฐๆด
- ็ปงๆฟ
BaseAgent
็ฑป - ๅฎ็ฐ
process_text_message
ๆนๆณ - ๅจ
config.py
ไธญๆทปๅ ้ ็ฝฎ - ๅจ
start_system.py
ไธญๆณจๅ
็คบไพ๏ผ
from base_agent import BaseAgent
class CustomAgent(BaseAgent):
def __init__(self):
super().__init__("CustomAgent", "ๆจ็็ณป็ปๆ็คบ่ฏ")
def process_text_message(self, message):
# ๅฎ็ฐๆจ็ไธๅก้ป่พ
return self.create_response_message(message, "ๅๆ็ปๆ")
ไฟฎๆน coordinator.py
ไธญ็ๅทฅไฝๆต็จ้ป่พๆฅ้ๆๆฐๆบ่ฝไฝใ
- ็ซฏๅฃๅฒ็ช: ไฟฎๆน
config.py
ไธญ็็ซฏๅฃ่ฎพ็ฝฎ - ไพ่ต็ผบๅคฑ: ่ฟ่ก
pip install -r requirements.txt
- API ๅฏ้ฅ: ๆฃๆฅ
config.py
ไธญ็ LLM API ้ ็ฝฎ - ๅฏๅจๅคฑ่ดฅ: ๆฅ็ๆฅๅฟ่พๅบ๏ผๆฃๆฅๆไปถๆ้
็ณป็ปไผๅจๆงๅถๅฐ่พๅบ่ฏฆ็ป็่ฟ่กๆฅๅฟ๏ผๅ ๆฌ๏ผ
- ๆบ่ฝไฝๅฏๅจ็ถๆ
- ่ฏทๆฑๅค็่ฟ็จ
- ้่ฏฏไฟกๆฏๅ่ญฆๅ
- ๅ ๅญ: ่ณๅฐ 4GB RAM
- CPU: ๅคๆ ธๅค็ๅจๆจ่
- ็ฝ็ป: ็จณๅฎ็็ฝ็ป่ฟๆฅ๏ผ็จไบ LLM API ่ฐ็จ๏ผ
- ไฝฟ็จ้ซๆง่ฝ็ LLM API ๆๅก
- ้ๅฝ่ฐๆดๅนถๅๅค็ๆฐ้
- ็ผๅญๅธธ็จ็ๅๆ็ปๆ
- ็ๆง็ณป็ป่ตๆบไฝฟ็จๆ ๅต
- ๅๅๆฐๆฎไป ๅจๅ ๅญไธญๅค็๏ผไธๆไน ๅๅญๅจ
- ๆฏๆๆฌๅฐ้จ็ฝฒ๏ผๆฐๆฎไธ็ฆปๅผๆจ็็ฏๅข
- LLM API ่ฐ็จไฝฟ็จๅ ๅฏไผ ่พ
- ๅฏๅจ็ฝ็ปๅฑ้ข้ๅถ่ฎฟ้ฎ
- ๆฏๆๆทปๅ ่บซไปฝ้ช่ฏๆบๅถ
- ๅฎก่ฎกๆฅๅฟ่ฎฐๅฝๆๆๆไฝ
ๆฌ้กน็ฎๅบไบ MIT ่ฎธๅฏ่ฏๅผๆบใ
ๆฌข่ฟๆไบค Issue ๅ Pull Request ๆฅๆน่ฟ่ฟไธช้กน็ฎใ
ๅฆๆ้ฎ้ขๆๅปบ่ฎฎ๏ผ่ฏทๆไบค GitHub Issueใ
ๆณจๆ: ่ฟๆฏไธไธชๆผ็คบ็ณป็ป๏ผ่ฏทๆ นๆฎๅฎ้ ้ๆฑ่ฟ่ก้ๅฝ็ๅฎๅ จ้ ็ฝฎๅไผๅใๅจ็ไบง็ฏๅขไธญไฝฟ็จๅ๏ผ่ฏทๅ ๅๆต่ฏๅนถ็กฎไฟ็ฌฆๅๆจ็ๅฎๅ จๅๅ่ง่ฆๆฑใ