Skip to main content
Glama
mkXultra
by mkXultra
agent-a-messaging.md4.32 kB
# エージェントA: メッセージング機能実装タスク ## 背景 spec.md(行112-148)に記載されたAgent Communication MCP Serverのメッセージング機能を完全実装する。 ## タスク 以下のドキュメントを**全セクション**読んで実装してください: 1. 仕様書(/home/miyagi/dev/personal_pj/agent-communication-mcp/spec.md)の行112-148 2. 実装方針(/home/miyagi/dev/personal_pj/agent-communication-mcp/implementation-policy.md) 3. 並列実装計画書(/home/miyagi/dev/personal_pj/agent-communication-mcp/parallel-implementation-plan.md)の行59-114 ## 実装項目(優先順位順) 【最高優先度】必須機能 1. MessageService.sendMessage() - spec.md行112-125の仕様を**完全に**実装 - パラメータ: agentName, roomName, message, metadata(オプション) - 戻り値: success, messageId, roomName, timestamp, mentions配列 - メッセージIDはUUIDv4形式で生成 - タイムスタンプはISO 8601形式 2. MessageService.getMessages() - spec.md行128-148の仕様を**完全に**実装 - パラメータ: roomName, agentName(オプション), limit(デフォルト50), offset(デフォルト0), mentionsOnly(デフォルトfalse) - 戻り値: roomName, messages配列, count, hasMore - ページネーション完全対応 【高優先度】コア機能 3. メンション解析機能 - 正規表現: /@([a-zA-Z0-9_-]+)/g - 抽出したメンションをmentions配列に格納 - 重複除去を実施 4. JSONLファイル操作 - ファイルパス: data/rooms/{roomName}/messages.jsonl - 追記専用(append only) - ファイルが存在しない場合は自動作成 - ディレクトリが存在しない場合も自動作成 5. バリデーション(Zodスキーマ) ```typescript // src/schemas/message.schema.ts sendMessageSchema = z.object({ agentName: z.string().min(1).max(50), roomName: z.string().regex(/^[a-zA-Z0-9-_]+$/), message: z.string().min(1).max(1000), metadata: z.record(z.any()).optional() }); ``` 【中優先度】最適化機能 6. MessageCache実装 - LRUキャッシュ(最大1000メッセージ) - ルーム別にキャッシュ管理 - mentionsOnlyクエリの高速化 7. パフォーマンス最適化 - ストリーミング読み込み(大量メッセージ対応) - 1000メッセージ/秒の処理性能 ## エラーハンドリング 以下のエラーを実装(implementation-policy.md参照): ```typescript // メッセージ送信時 throw new RoomNotFoundError(roomName); // ルームが存在しない場合 throw new ValidationError('Invalid message format', 'INVALID_MESSAGE_FORMAT'); // メッセージ取得時 throw new StorageError('Failed to read messages', 'STORAGE_ERROR'); ``` ## テスト要件 1. **単体テスト**(tests/messaging/unit/) - MessageService.test.ts - MessageCache.test.ts - カバレッジ90%以上必須 2. **統合テスト**(tests/messaging/integration/) - messaging-flow.test.ts(送信→取得の一連フロー) 3. **パフォーマンステスト**(tests/messaging/performance/) - throughput.test.ts(1000msg/秒の検証) ## 公開API(src/features/messaging/index.ts) ```typescript export interface IMessagingAPI { sendMessage(params: SendMessageParams): Promise<Message>; getMessages(params: GetMessagesParams): Promise<MessageListResponse>; getMessageCount(roomName: string): Promise<number>; } export class MessagingAPI implements IMessagingAPI { // 実装 } // MCPツール定義もエクスポート export { messagingTools } from './tools/messaging.tools'; ``` ## 完了条件 - [ ] spec.md行112-148の**すべて**の仕様を満たしている - [ ] implementation-policy.mdのエラーハンドリング方針に準拠 - [ ] 単体テストカバレッジ90%以上 - [ ] パフォーマンステスト(1000msg/秒)合格 - [ ] src/features/messaging/README.mdにAPIドキュメント作成 ## 注意事項 - ルーム存在確認は一旦モック(mockRoomChecker)を使用 - ファイルロックは実装不要(エージェントDが統合時に追加) - 他エージェントの機能に依存しないこと

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mkXultra/agent-communication-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server