안녕하세요 shirmp task manager 설치시 이전 강의에 작업관리도구 유튜브 강의 보면서 혼자 이 부분 진행을 했었는데요 https://glama.ai/mcp/servers/cjo4m06/mcp-shrimp-task-manager?locale=ko-KR 저는 이 사이트 참고해서 npx 로 했는데 이 방법에 대해서는 따로 설명이 없어서 이렇게 해도 되는지 문의드립니다! 강의에서 node로 clone -> install -> build 이렇게 진행이 되던데 npx로 하면 따로 설치 없이 바로 추가하면 돼서 이렇게 하는게 더 편해보이는데 이렇게 해도 되는건가요? { "mcpServers": { "shrimp-task-manager": { "command": "npx", "args": ["-y", "mcp-shrimp-task-manager"], "env": { "DATA_DIR": "/mcp-shrimp-task-manager/data", "TEMPLATES_USE": "en", "ENABLE_GUI": "false" } } } }
PRD 부분 파트를 거의 5번넘게봤는데.. 업데이트 전인거 같기도하고 github 코드보면, ai한테 물어보고 공식문서를 봐도 docs폴더에 관한 내용은 안보이더라구요. 코드를 깃헙소스를 봐도, agents/ 안데도 docs가 있고, 밖에도 docs가 있는데, 헷갈려서 . 루트 폴더의 docs는 그냥 예시로 강의자님이 만든 프로젝트 구조같기한데 맞는지는 모르겠네요. agents/ 안에 docs 파일 안에 md는 서브에이전트같은데 ? 현재 서브 에이전트를 만들면 docs안에 들어가는게 아니라 agents/폴더안에 바로 md 형태로 만들어지더라구요. 스킬같은 경우는 루트디렉토리에 skills안에 그 스킬 이름의 폴더명으로 안에 스킬.md로 찍히던데, subagent의 스킬은 agents 안에서 skill.md를 만들어서 작동하도록해주는걸까요? 개념을 확실히 잡고 개발하고 싶은데, 뭔가 애매하게 알고 있는거 같아서 여쭤봅니다. 그래서, 업데이트 전후로 비교해서 skills.md 방식때문에 그런것인지 물어봐도. 그 부분이 아니고 의도적 설계라고 나옵니다. 공식문서 폴더 디렉토리 best pratice도 보고 구글링도 해봣는데, docs관련해서는 안나와서요. 서브 에이전트도 그냥 만들어지는데 일부러 agents 안에 docs를 만들거나 dev폴더 만들어서 넣은건가요? 만약 그렇다면 그것도 제대로 작동하는건지. 여러번 돌려보고 찾아봐도 이 부분이 조금 헷갈립니다. 마지막으로, 하네스 엔지니어링은 subagent를 병렬로 돌리는것을 말하는거로 이해했는데, 명시적으로 서브에이전트를 활용하라고 안해도, 클로드가 본인이 서브에이전트돌리면서 할때가 있고 아닐때가있어서요. 이 부분을 다른 커뮤니티 물어봐도 다 이상하게 대답해서, 그래도 저자님이 생각하시는 것의 개념은 무엇일까요? 제미나이 기준은 아래와 같은데, 제가 생각하기에는 이렇게하면 하나의 ai에게 모두 일임하는거라서 agents. team만들어서 클로드 코덱스 재미니나 kimi이렇게 돌리면서 하는게 하네스가 아닐까하는생각도 드는데, 그러면 프로젝트 저 디렉토리(예전으로 치면 손코딩 폴더패턴 mvc패터니나 repositorty패턴이런 것처럼 규격화 말하는거 같다고 이해합니다.) 구조를 만들고, 거기에 다양한 ai모델로 돌리는게 맞을까요?
안녕하세요. 좋은 강의 만들어주셔서 감사합니다. 강의 2.3 에서 강사님 코드와 동일하게 작성하고 gpt 모델만 'gpt-5.4-mini' 로 변경 후에 전체 실행 했을 때, 답변이 이렇게 돌아옵니다. {'query': '연봉 5천만원 세금', 'context': [Document(id='9814d06b-07f0-47e3-866c-fdf3940e2649', metadata={'source': 'income_tax.txt'}, page_content='5년 이하: 30만원 → 납입연수\n5년 초과 10년 이하: 150만원 + 50만원 × (납입연수 - 5년)\n10년 초과 20년 이하: 400만원 + 80만원 × (납입연수 - 10년)\n20년 초과: 1,200만원 + 120만원 × (납입연수 - 20년)\n\n② 직장근로자 초과관세환급금을 분배하여 지급받는 경우 세액의 계산 방법 등 필요한 사항은 대통령령으로 정한다. \n<대통령 2014. 12. 23.>\n<전문개정 2009. 12. 31.>\n제64조(부동산매매업자에 대한 세액 계산의 특례)\n1) 대통령령으로 정하는 부동산매매업(이하 “부동산매매업”이라 한다)을 영위하는 거주자가 이하 “부동산매매업자”라 한다)로서 종합소득세법에 제104조제1항제1호(본항을 포함한다) 및 제103조 또는 같은 조 제7항 각 호의 어느 하나에 해당하는 자산의 매매자익(이하 “주택등매매차익”이라 한다)이 있는 자의 종합소득 산출세액은 다음 각 호의 세액 중 많은 것으로 한다. \n<개정 2014. 12. 23., 2017. 12. 19., 2020. 12. 29.>\n1. 종합소득 산출세액\n\n다음 각 목에 따른 세액의 합계액\n 가. 주택등매매차익에 따른 세율을 적용하여 산출한 세액의 합계액\n 나. 종합소득세법 제55조에 따라 주택등매매차익에 대한 개별세액을 공제한 금액을 과세표준으로 하고 이에 제55조에 따른 세율을 적용하여 산출세액'), Document(id='74dc15eb-b151-49b8-9106-1399b7722dd3', metadata={'source': 'income_tax.txt'}, page_content='1. 근속연수에 따라 정한 다음의 금액\n근속연수 | 공제액\n--- | ---\n5년 이하 | 100만원 공제소득\n5년 초과 10년 이하 | 500만원+200만원×(근속연수−5)\n10년 초과 20년 이하 | 1천500만원+250만원×(근속연수−10)\n법제처 | 31 | 국가법령정보센터'), Document(id='1c1ccbad-e1fe-45f7-b08f-223a475212c4', metadata={'source': 'income_tax.txt'}, page_content='소특별판\n경우에는 100분의 30에 해당하는 금액을 해당 과세기간의 종합소득세법에서 공제한다. \n<개정 2014. 12. 23., 2016. 12. 20., 2017. 12. 19, 2021. 12. 8, 2023. 12. 31.>')], 'answer': AIMessage(content='연봉 5천만원의 세금은 공제 항목(4대보험, 근로소득공제, 인적공제 등)에 따라 달라져 정확히 한 숫자로 말하기 어렵습니다. \n제공된 자료만으로는 5천만원 연봉의 실제 세액을 계산할 수 없습니다. \n원하시면 **연봉 5천만원, 1인 가구/부양가족 여부** 기준으로 대략 계산해드릴게요.', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 108, 'prompt_tokens': 848, 'total_tokens': 956, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-5.4-mini-2026-03-17', 'system_fingerprint': None, 'id': 'chatcmpl-DtSMXJU8oQmhDi4TWrlNkXhmwuADF', 'service_tier': 'default', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019eedff-fd63-79f1-bb50-9fe5bb58b7c8-0', tool_calls=[], invalid_tool_calls=[], usage_metadata={'input_tokens': 848, 'output_tokens': 108, 'total_tokens': 956, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})} 결국 답변은 정보가 부족하다는 것 같아 보이는데, retrieve 할 때, k의 개수도 4로 늘려보았지만 답변은 같았습니다. 이러한 경우 어떻게 하는 게 답변을 개선하기 좋을까요?
강의에서 class AgentState(TypeDict): messages: list[Annotated[AnyMessage, add_messages]] 라고 하셨는데, 위와 같이 하면 AIMessage만 결과로 출력되게 된 걸로 보아 덮어진 것 같습니다. class AgentState(TypedDict): messages: Annotated[list[AnyMessage], add_messages] 위와 같이 Annotated 가 밖으로 나와야 하는 것이 맞는지 확인해주세요. 이때는 결과가 HumanMessage, AIMessage 둘 다 출력되더라구요.